Struct BuildError

pub struct BuildError { /* private fields */ }

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:

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

Implementations

impl BuildError

fn pattern(&self) -> Option<PatternID>

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());
fn size_limit(&self) -> Option<usize>

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.

fn syntax_error(&self) -> Option<&Error>

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

Trait Implementations

impl Clone for BuildError

fn clone(&self) -> Self

impl Debug for BuildError

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

impl Display for BuildError

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

impl Error for BuildError

fn source(&self) -> Option<&dyn Error + 'static>

Auto Trait Implementations

impl Freeze for BuildError

impl RefUnwindSafe for BuildError

impl Send for BuildError

impl Sync for BuildError

impl Unpin for BuildError

impl UnsafeUnpin for BuildError

impl UnwindSafe for BuildError

Blanket Implementations

impl<T> Any for BuildError where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for BuildError where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for BuildError where T: ?Sized,

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

impl<T> CloneToUninit for BuildError where T: Clone,

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

impl<T> From<T> for BuildError

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for BuildError where T: Clone,

type Owned = T;
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)

impl<T> ToString for BuildError where T: Display + ?Sized,

fn to_string(&self) -> String

impl<T, U> Into<U> for BuildError where U: From<T>,

fn into(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<U> for BuildError where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for BuildError where U: TryFrom<T>,

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