[−][src]Struct regex_automata::sparse::ByteClass
A sparse DFA that shrinks its alphabet.
Alphabet shrinking is achieved by using a set of equivalence classes instead of using all possible byte values. Any two bytes belong to the same equivalence class if and only if they can be used interchangeably anywhere in the DFA while never discriminating between a match and a non-match.
Unlike dense DFAs, sparse DFAs do not tend to benefit nearly as much from using byte classes. In some cases, using byte classes can even marginally increase the size of a sparse DFA's transition table. The reason for this is that a sparse DFA already compacts each state's transitions separate from whether byte classes are used.
Generally, it isn't necessary to use this type directly, since a
SparseDFA
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
impl<T: AsRef<[u8]>, S: StateID> DFA for ByteClass<T, S>
[src]
type ID = S
The representation used for state identifiers in this DFA. Read more
fn start_state(&self) -> S
[src]
fn is_match_state(&self, id: S) -> bool
[src]
fn is_dead_state(&self, id: S) -> bool
[src]
fn is_match_or_dead_state(&self, id: S) -> bool
[src]
fn is_anchored(&self) -> bool
[src]
fn next_state(&self, current: S, input: u8) -> S
[src]
unsafe fn next_state_unchecked(&self, current: S, input: u8) -> S
[src]
fn is_match(&self, bytes: &[u8]) -> bool
[src]
Returns true if and only if the given bytes match this DFA. Read more
fn shortest_match(&self, bytes: &[u8]) -> Option<usize>
[src]
Returns the first position at which a match is found. Read more
fn find(&self, bytes: &[u8]) -> Option<usize>
[src]
Returns the end offset of the longest match. If no match exists, then None
is returned. Read more
fn rfind(&self, bytes: &[u8]) -> Option<usize>
[src]
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
fn is_match_at(&self, bytes: &[u8], start: usize) -> bool
[src]
Returns the same as is_match
, but starts the search at the given offset. Read more
fn shortest_match_at(&self, bytes: &[u8], start: usize) -> Option<usize>
[src]
Returns the same as shortest_match
, but starts the search at the given offset. Read more
fn find_at(&self, bytes: &[u8], start: usize) -> Option<usize>
[src]
Returns the same as find
, but starts the search at the given offset. Read more
fn rfind_at(&self, bytes: &[u8], start: usize) -> Option<usize>
[src]
Returns the same as rfind
, but starts the search at the given offset. Read more
impl<T: Debug + AsRef<[u8]>, S: Debug + StateID> Debug for ByteClass<T, S>
[src]
impl<T: Clone + AsRef<[u8]>, S: Clone + StateID> Clone for ByteClass<T, S>
[src]
Auto Trait Implementations
impl<T, S> Unpin for ByteClass<T, S> where
S: Unpin,
T: Unpin,
S: Unpin,
T: Unpin,
impl<T, S> Send for ByteClass<T, S> where
S: Send,
T: Send,
S: Send,
T: Send,
impl<T, S> Sync for ByteClass<T, S> where
S: Sync,
T: Sync,
S: Sync,
T: Sync,
impl<T, S> UnwindSafe for ByteClass<T, S> where
S: UnwindSafe,
T: UnwindSafe,
S: UnwindSafe,
T: UnwindSafe,
impl<T, S> RefUnwindSafe for ByteClass<T, S> where
S: RefUnwindSafe,
T: RefUnwindSafe,
S: RefUnwindSafe,
T: RefUnwindSafe,
Blanket Implementations
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,