4d5fdb781d
* //users/grfn/system/home/modules: The MultiMC saga continues with: > PolyMC has been removed from nixpkgs due to a hostile takeover > by a rogue maintainer. The rest of the maintainers have made a > fork which is packaged as 'prismlauncher'. * //third_party/overlays: Override tdlib to 1.8.7 while waiting for nixpkgs to catch up. * //users/tazjin/finito: Disable on CI temporarily as it has been broken by some change in nixpkgs, now failing to compile a dependency. Change-Id: Ide038a8d466bfdc19dc9016beb03ae4817939a2b Reviewed-on: https://cl.tvl.fyi/c/depot/+/7066 Reviewed-by: tazjin <tazjin@tvl.su> Reviewed-by: grfn <grfn@gws.fyi> Autosubmit: sterni <sternenseemann@systemli.org> 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.