Enum Error

enum Error

An error that occurred during parsing or compiling a regular expression.

Variants

Syntax(alloc::string::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.

Implementations

impl Clone for Error

fn clone(self: &Self) -> Error

impl Debug for Error

fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result

impl Display for Error

fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result

impl Error for Error

fn description(self: &Self) -> &str

impl Freeze for Error

impl PartialEq for Error

fn eq(self: &Self, other: &Error) -> bool

impl RefUnwindSafe for Error

impl Send for Error

impl StructuralPartialEq for Error

impl Sync for Error

impl Unpin for Error

impl UnsafeUnpin for Error

impl UnwindSafe for Error

impl<T> Any for Error

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for Error

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for Error

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> CloneToUninit for Error

unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)

impl<T> From for Error

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for Error

fn to_owned(self: &Self) -> T
fn clone_into(self: &Self, target: &mut T)

impl<T> ToString for Error

fn to_string(self: &Self) -> String

impl<T, U> Into for Error

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for Error

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for Error

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>