ferogram-derive
Procedural macros for the ferogram workspace. Currently exposes #[derive(FsmState)].
Most people get this through ferogram with the derive feature flag. Direct usage is only needed when building on top of the FSM layer without the full client.
For installation instructions see the ferogram README.
#[derive(FsmState)]
Implements the ferogram::fsm::FsmState trait for an enum. Only unit variants are supported; tuple or struct variants produce a compile error.
What gets generated: as_key(&self) -> String and from_key(key: &str) -> Option<Self>, both using the variant name as written in source.
use FsmState;
Keys are the variant names as written. Renaming a variant changes its key and breaks any stored state.
Using FsmState in a dispatcher
use ;
use Arc;
dp.with_state_storage;
dp.on_message_fsm;
dp.on_message_fsm;
Stack position
ferogram
└ ferogram-derive <-- here (proc-macro crate, compile-time only)
License
MIT or Apache-2.0, at your option. See LICENSE-MIT and LICENSE-APACHE.
Ankit Chaubey - github.com/ankit-chaubey