Struct regex_automata::dfa::onepass::Epsilons
source · struct Epsilons(u64);
Expand description
Epsilons represents all of the NFA epsilons transitions that went into a single transition in a single DFA state. In this case, it only represents the epsilon transitions that have some kind of non-consuming side effect: either the transition requires storing the current position of the search into a slot, or the transition is conditional and requires the current position in the input to satisfy an assertion before the transition may be taken.
This folds the cumulative effect of a group of NFA states (all connected by epsilon transitions) down into a single set of bits. While these bits can represent all possible conditional epsilon transitions, it only permits storing up to a somewhat small number of slots.
Epsilons is represented as a 42-bit integer. For example, it is packed into
the lower 42 bits of a Transition
. (Where the high 22 bits contains a
StateID
and a special “match wins” property.)
Tuple Fields§
§0: u64
Implementations§
source§impl Epsilons
impl Epsilons
const SLOT_MASK: u64 = 4_398_046_510_080u64
const SLOT_SHIFT: u64 = 10u64
const LOOK_MASK: u64 = 1_023u64
sourcefn empty() -> Epsilons
fn empty() -> Epsilons
Create a new empty epsilons. It has no slots and no assertions that need to be satisfied.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Epsilons
impl RefUnwindSafe for Epsilons
impl Send for Epsilons
impl Sync for Epsilons
impl Unpin for Epsilons
impl UnwindSafe for Epsilons
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)