rustfmt only sometimes detects path-based nested config files (probably some kind of race?), so my users folder uses a separate formatting check for rustfmt to avoid flaky CI. Enough flakes around already ... Change-Id: Ifd862f9974f071b3a256643dd8e56c019116156a Reviewed-on: https://cl.tvl.fyi/c/depot/+/5242 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI |
||
|---|---|---|
| .. | ||
| finito-core | ||
| finito-door | ||
| finito-postgres | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| default.nix | ||
| README.md | ||
Finito
This is a Rust port of the Haskell state-machine library Finito. It is slightly less featureful because it loses the ability to ensure that side-effects are contained and because of a slight reduction in expressivity, which makes it a bit more restrictive.
However, it still implements the FSM model well enough.
Components
Finito is split up into multiple independent components (note: not all of these exist yet), separating functionality related to FSM persistence from other things.
finito: Core abstraction implemented by Finitofinito-door: Example implementation of a simple, lockable doorfinito-postgres: Persistent state-machines using Postgres
Note: The finito core library does not contain any tests. Its
coverage is instead provided by the finito-door library, which
actually implements an example FSM.
These are split out because the documentation for finito-door is
interesting regardless and because other Finito packages also need an
example implementation.