use PhantomData;
use Builder;
use Getters;
use crate*;
/// And edge is a path taking from a state to another given an input message.
/// An edge can optionally have a mutation function registered, which will run
/// when the state changes and can mutate the machine context.