Finite state machines in rust; bendns fork to add types.
Diffstat (limited to 'doc-example/src/lib.rs')
| -rw-r--r-- | doc-example/src/lib.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/doc-example/src/lib.rs b/doc-example/src/lib.rs new file mode 100644 index 0000000..18c0978 --- /dev/null +++ b/doc-example/src/lib.rs @@ -0,0 +1,15 @@ +use rust_fsm::state_machine; + +state_machine! { + /// A dummy implementation of the Circuit Breaker pattern to demonstrate + /// capabilities of its library DSL for defining finite state machines. + /// https://martinfowler.com/bliki/CircuitBreaker.html + pub circuit_breaker(Closed) + + Closed(Unsuccessful) => Open [SetupTimer], + Open(TimerTriggered) => HalfOpen, + HalfOpen => { + Successful => Closed, + Unsuccessful => Open [SetupTimer] + } +} |