#[non_exhaustive]pub enum Error {
Syntax(String),
CompiledTooBig(usize),
}
Expand description
An error that occurred during parsing or compiling a regular expression.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
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§
Source§impl Error for Error
impl Error for Error
Source§fn description(&self) -> &str
fn description(&self) -> &str
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
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 UnwindSafe for Error
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes
Size for each variant:
Syntax
: 24 bytesCompiledTooBig
: 16 bytes