pub struct TransitionFunctions {
state_transitions: HashMap<StateID, FunctionIdx>,
branch_to_transition: FunctionIdx,
pub make_current_transitions: FunctionIdx,
}
Expand description
This struct contains a map of functions that are the transitions for each NFA state.
This corresponds to the next
function in
[PikeVM
][regex_automata::nfa::thompson::pikevm::PikeVM].
Fields§
§state_transitions: HashMap<StateID, FunctionIdx>
§branch_to_transition: FunctionIdx
§make_current_transitions: FunctionIdx
Implementations§
Source§impl TransitionFunctions
impl TransitionFunctions
Sourcepub fn new(
ctx: &mut CompileContext,
epsilon_closures: &EpsilonClosureFunctions,
transition_layout: &TransitionLayout,
) -> Self
pub fn new( ctx: &mut CompileContext, epsilon_closures: &EpsilonClosureFunctions, transition_layout: &TransitionLayout, ) -> Self
Creates and registers all WebAssembly functions required for handling NFA state transitions.
fn make_current_transitions_fn( branch_to_transition: FunctionIdx, branch_to_transition_is_match_block_sig: TypeIdx, state_id_layout: &Layout, ) -> Function
fn branch_to_transition_fn( state_transitions: &HashMap<StateID, FunctionIdx>, ) -> Function
fn transition_fn( for_sid: StateID, states: &[State], branch_to_epsilon_closure: FunctionIdx, lookup_table: Option<LookupTable>, state_id_layout: &Layout, ) -> Function
Sourcefn needs_transition_fn(nfa: &NFA, sid: StateID) -> bool
fn needs_transition_fn(nfa: &NFA, sid: StateID) -> bool
Return true if the given state needs a transition function.
fn non_terminal_transition_prefix(instructions: &mut InstructionSink<'_>)
fn non_terminal_transition_suffix( instructions: &mut InstructionSink<'_>, branch_to_epsilon_closure: FunctionIdx, )
fn sparse_transition_body( instructions: &mut InstructionSink<'_>, sparse_table: SparseTable, labels_name_map: &mut NameMap, state_id_layout: &Layout, )
fn dense_transition_body( instructions: &mut InstructionSink<'_>, table: DenseTable, state_id_layout: &Layout, )
fn byte_range_transition_body( instructions: &mut InstructionSink<'_>, trans: &Transition, )
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TransitionFunctions
impl RefUnwindSafe for TransitionFunctions
impl Send for TransitionFunctions
impl Sync for TransitionFunctions
impl Unpin for TransitionFunctions
impl UnwindSafe for TransitionFunctions
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
Mutably borrows from an owned value. Read more