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.rs15
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]
+ }
+}