Enum Error
#[non_exhaustive]
pub enum Error
An error that occurred during parsing or compiling a regular expression.
Variants
-
Syntax(String) A syntax error.
-
CompiledTooBig(usize) The compiled program exceeded the set size limit. The argument is the size limit imposed by
RegexBuilder::size_limit. Even when not configured explicitly, it defaults to a reasonable limit.If you're getting this error, it occurred because your regex has been compiled to an intermediate state that is too big. It is important to note that exceeding this limit does not mean the regex is too big to work, but rather, the regex is big enough that it may wind up being surprisingly slow when used in a search. In other words, this error is meant to be a practical heuristic for avoiding a performance footgun, and especially so for the case where the regex pattern is coming from an untrusted source.
There are generally two ways to move forward if you hit this error. The first is to find some way to use a smaller regex. The second is to increase the size limit via
RegexBuilder::size_limit. However, if your regex pattern is not from a trusted source, then neither of these approaches may be appropriate. Instead, you'll have to determine just how big of a regex you want to allow.
Trait Implementations
impl Clone for Error
fn clone(&self) -> Self
impl Debug for Error
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Display for Error
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Error for Error
fn description(&self) -> &str
impl PartialEq for Error
fn eq(&self, other: &Self) -> bool
impl StructuralPartialEq for Error
Auto Trait Implementations
impl Freeze for Error
impl RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl UnsafeUnpin for Error
impl UnwindSafe for Error
Blanket Implementations
impl<T> Any for Error
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Error
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Error
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for Error
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for Error
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for Error
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T> ToString for Error
where
T: Display + ?Sized,
fn to_string(&self) -> String
impl<T, U> Into<U> for Error
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for Error
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for Error
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>