Macro vex_rt::state_machine[][src]

macro_rules! state_machine {
    {
        $(#[$attr:meta])*
        $vis:vis $name:ident $(($($iname:ident: $itype:ty),+ $(,)?))? $({
            $(
                $(#[$vattr:meta])*
                $vname:ident: $vtype:ty = $vinit:expr
            ),+ $(,)?
        })? = $init:ident($($arg:expr),*);

        $(
            $(#[$fattr:meta])*
            $state:ident ($ctx:ident $(, $pname:ident: $ptype:ty)* $(,)?) $([$($vref:ident),*])? $(-> $fret:ty)? $body:block
        )*
    } => { ... };
}
Expand description

Creates an asynchronous state machine with the given visibility, name and state definitions.