id_effect 0.4.0

Effect<A, E, R> (sync + async), capability DI, pipe — interpreter-style, no bundled executor
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Transition tables

Build tables fluently, then freeze them into a [`StateMachine`](../../id_effect_fsm/src/machine.rs):

```rust
use id_effect_fsm::{StateMachine, TransitionTable};

let table = TransitionTable::new()
    .on("idle", "start", "running")
    .on("running", "stop", "idle");

let mut m = StateMachine::new("idle", table);
m.step("start")?;
```

Missing edges return [`FsmError::NoTransition`](../../id_effect_fsm/src/error.rs). Reset with [`StateMachine::reset`](../../id_effect_fsm/src/machine.rs) or set state directly after loading a durable snapshot.