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.