pub trait StateMachineImpl {
    type Input;
    type State;
    type Output;

    const INITIAL_STATE: Self::State;

    fn transition(
        state: &Self::State,
        input: &Self::Input
    ) -> Option<Self::State>; fn output(state: &Self::State, input: &Self::Input) -> Option<Self::Output>; }
Expand description

This trait is designed to describe any possible deterministic finite state machine/transducer. This is just a formal definition that may be inconvenient to be used in practical programming, but it is used throughout this library for more practical things.

Required Associated Types§

The input alphabet.

The set of possible states.

The output alphabet.

Required Associated Constants§

The initial state of the machine.

Required Methods§

The transition fuction that outputs a new state based on the current state and the provided input. Outputs None when there is no transition for a given combination of the input and the state.

The output function that outputs some value from the output alphabet based on the current state and the given input. Outputs None when there is no output for a given combination of the input and the state.

Implementors§