pub struct PremultipliedByteClass<T: AsRef<[S]>, S: StateID>(/* private fields */);
Expand description

The default configuration of a dense DFA, which uses byte classes and premultiplies its state identifiers.

Generally, it isn’t necessary to use this type directly, since a DenseDFA can be used for searching directly. One possible reason why one might want to use this type directly is if you are implementing your own search routines by walking a DFA’s transitions directly. In that case, you’ll want to use this type (or any of the other DFA variant types) directly, since they implement next_state more efficiently.

Trait Implementations§

source§

impl<T: Clone + AsRef<[S]>, S: Clone + StateID> Clone for PremultipliedByteClass<T, S>

source§

fn clone(&self) -> PremultipliedByteClass<T, S>

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<T: AsRef<[S]>, S: StateID> DFA for PremultipliedByteClass<T, S>

§

type ID = S

The representation used for state identifiers in this DFA. Read more
source§

fn start_state(&self) -> S

Return the identifier of this DFA’s start state.
source§

fn is_match_state(&self, id: S) -> bool

Returns true if and only if the given identifier corresponds to a match state.
source§

fn is_dead_state(&self, id: S) -> bool

Returns true if and only if the given identifier corresponds to a dead state. When a DFA enters a dead state, it is impossible to leave and thus can never lead to a match.
source§

fn is_match_or_dead_state(&self, id: S) -> bool

Returns true if and only if the given identifier corresponds to either a dead state or a match state, such that one of is_match_state(id) or is_dead_state(id) must return true. Read more
source§

fn is_anchored(&self) -> bool

Returns true if and only if this DFA is anchored. Read more
source§

fn next_state(&self, current: S, input: u8) -> S

Given the current state that this DFA is in and the next input byte, this method returns the identifier of the next state. The identifier returned is always valid, but it may correspond to a dead state.
source§

unsafe fn next_state_unchecked(&self, current: S, input: u8) -> S

Like next_state, but its implementation may look up the next state without memory safety checks such as bounds checks. As such, callers must ensure that the given identifier corresponds to a valid DFA state. Implementors must, in turn, ensure that this routine is safe for all valid state identifiers and for all possible u8 values.
source§

fn is_match(&self, bytes: &[u8]) -> bool

Returns true if and only if the given bytes match this DFA. Read more
source§

fn shortest_match(&self, bytes: &[u8]) -> Option<usize>

Returns the first position at which a match is found. Read more
source§

fn find(&self, bytes: &[u8]) -> Option<usize>

Returns the end offset of the longest match. If no match exists, then None is returned. Read more
source§

fn rfind(&self, bytes: &[u8]) -> Option<usize>

Returns the start offset of the longest match in reverse, by searching from the end of the input towards the start of the input. If no match exists, then None is returned. In other words, this has the same match semantics as find, but in reverse. Read more
source§

fn is_match_at(&self, bytes: &[u8], start: usize) -> bool

Returns the same as is_match, but starts the search at the given offset. Read more
source§

fn shortest_match_at(&self, bytes: &[u8], start: usize) -> Option<usize>

Returns the same as shortest_match, but starts the search at the given offset. Read more
source§

fn find_at(&self, bytes: &[u8], start: usize) -> Option<usize>

Returns the same as find, but starts the search at the given offset. Read more
source§

fn rfind_at(&self, bytes: &[u8], start: usize) -> Option<usize>

Returns the same as rfind, but starts the search at the given offset. Read more
source§

impl<T: Debug + AsRef<[S]>, S: Debug + StateID> Debug for PremultipliedByteClass<T, S>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T, S> Freeze for PremultipliedByteClass<T, S>
where S: Ord + PartialOrd + PartialEq + Hash + Eq + Debug + Copy + Clone + Freeze, T: Freeze,

§

impl<T, S> RefUnwindSafe for PremultipliedByteClass<T, S>

§

impl<T, S> Send for PremultipliedByteClass<T, S>
where S: Ord + PartialOrd + PartialEq + Hash + Eq + Debug + Copy + Clone + Send, T: Send,

§

impl<T, S> Sync for PremultipliedByteClass<T, S>
where S: Ord + PartialOrd + PartialEq + Hash + Eq + Debug + Copy + Clone + Sync, T: Sync,

§

impl<T, S> Unpin for PremultipliedByteClass<T, S>
where S: Ord + PartialOrd + PartialEq + Hash + Eq + Debug + Copy + Clone + Unpin, T: Unpin,

§

impl<T, S> UnwindSafe for PremultipliedByteClass<T, S>

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> 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,

§

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>,

§

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>,

§

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.