pub struct BuildError { /* private fields */ }
Expand description

An error that occurs when construction of a Regex fails.

A build error is generally a result of one of two possible failure modes. First is a parse or syntax error in the concrete syntax of a pattern. Second is that the construction of the underlying regex matcher fails, usually because it gets too big with respect to limits like Config::nfa_size_limit.

This error provides very little introspection capabilities. You can:

  • Ask for the PatternID of the pattern that caused an error, if one is available. This is available for things like syntax errors, but not for cases where build limits are exceeded.
  • Ask for the underlying syntax error, but only if the error is a syntax error.
  • Ask for a human readable message corresponding to the underlying error.
  • The BuildError::source method (from the std::error::Error trait implementation) may be used to query for an underlying error if one exists. There are no API guarantees about which error is returned.

When the std feature is enabled, this implements std::error::Error.

Implementations§

If it is known which pattern ID caused this build error to occur, then this method returns it.

Some errors are not associated with a particular pattern. However, any errors that occur as part of parsing a pattern are guaranteed to be associated with a pattern ID.

Example
use regex_automata::{meta::Regex, PatternID};

let err = Regex::new_many(&["a", "b", r"\p{Foo}", "c"]).unwrap_err();
assert_eq!(Some(PatternID::must(2)), err.pattern());

If this error occurred because the regex exceeded the configured size limit before being built, then this returns the configured size limit.

The limit returned is what was configured, and corresponds to the maximum amount of heap usage in bytes.

If this error corresponds to a syntax error, then a reference to it is returned by this method.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

🔬This is a nightly-only experimental API. (provide_any)
Data providers should implement this method to provide all values they are able to provide by using demand. Read more
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.