regex_automata::nfa::thompson

Enum WhichCaptures

Source
pub enum WhichCaptures {
    All,
    Implicit,
    None,
}
Available on crate features syntax and nfa-thompson only.
Expand description

A configuration indicating which kinds of State::Capture states to include.

This configuration can be used with Config::which_captures to control which capture states are compiled into a Thompson NFA.

The default configuration is WhichCaptures::All.

Variants§

§

All

All capture states, including those corresponding to both implicit and explicit capture groups, are included in the Thompson NFA.

§

Implicit

Only capture states corresponding to implicit capture groups are included. Implicit capture groups appear in every pattern implicitly and correspond to the overall match of a pattern.

This is useful when one only cares about the overall match of a pattern. By excluding capture states from explicit capture groups, one might be able to reduce the memory usage of a multi-pattern regex substantially if it was otherwise written to have many explicit capture groups.

§

None

No capture states are compiled into the Thompson NFA.

This is useful when capture states are either not needed (for example, if one is only trying to build a DFA) or if they aren’t supported (for example, a reverse NFA).

Implementations§

Source§

impl WhichCaptures

Source

pub fn is_none(&self) -> bool

Returns true if this configuration indicates that no capture states should be produced in an NFA.

Source

pub fn is_any(&self) -> bool

Returns true if this configuration indicates that some capture states should be added to an NFA. Note that this might only include capture states for implicit capture groups.

Trait Implementations§

Source§

impl Clone for WhichCaptures

Source§

fn clone(&self) -> WhichCaptures

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for WhichCaptures

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for WhichCaptures

Source§

fn default() -> WhichCaptures

Returns the “default value” for a type. Read more
Source§

impl Copy for WhichCaptures

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

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

Source§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.

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: 1 byte

Size for each variant:

  • All: 0 bytes
  • Implicit: 0 bytes
  • None: 0 bytes