Trait EtableSet

Source
pub trait EtableSet {
    type State;
    type Handle;
    type Trap;

    // Required method
    fn eval(
        &self,
        machine: &mut Machine<Self::State>,
        handle: &mut Self::Handle,
        position: usize,
    ) -> Control<Self::Trap>;
}
Expand description

An etable “set” that can be evaluated. This is the generic trait to support all types of dispatching strategies (via match or an actual etable array).

Required Associated Types§

Required Methods§

Source

fn eval( &self, machine: &mut Machine<Self::State>, handle: &mut Self::Handle, position: usize, ) -> Control<Self::Trap>

Evaluate the etable.

§Safety

The interpreter guarantee that the byte at position exists.

Implementors§

Source§

impl<S, H, Tr, E1, E2> EtableSet for Chained<E1, E2>
where E1: EtableSet<State = S, Handle = H, Trap = Tr>, E2: EtableSet<State = S, Handle = H, Trap = Tr>,

Source§

type State = S

Source§

type Handle = H

Source§

type Trap = Tr

Source§

impl<S, H, Tr, EPre, E, EPost> EtableSet for Tracing<EPre, E, EPost>
where EPre: EtableSet<State = S, Handle = H, Trap = Tr>, E: EtableSet<State = S, Handle = H, Trap = Tr>, EPost: EtableSet<State = S, Handle = H, Trap = Tr>,

Source§

type State = S

Source§

type Handle = H

Source§

type Trap = Tr

Source§

impl<S, H, Tr, F> EtableSet for Etable<S, H, Tr, F>
where F: Fn(&mut Machine<S>, &mut H, usize) -> Control<Tr>,

Source§

type State = S

Source§

type Handle = H

Source§

type Trap = Tr

Source§

impl<S, H, Tr, F> EtableSet for MultiEtable<S, H, Tr, F>
where F: Fn(&mut Machine<S>, &mut H, usize) -> Control<Tr>,

Source§

type State = S

Source§

type Handle = H

Source§

type Trap = Tr

Source§

impl<S, H, Tr, F> EtableSet for Single<S, H, Tr, F>
where F: Fn(&mut Machine<S>, &mut H, usize) -> Control<Tr>,

Source§

type State = S

Source§

type Handle = H

Source§

type Trap = Tr