Type Alias predicates::str::RegexError

source ·
pub type RegexError = Error;
Expand description

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

Aliased Type§

enum RegexError {
    Syntax(String),
    CompiledTooBig(usize),
}

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.