43f71ae82f
Implements the new backend trait for the FinitoPostgres type which now represents instances of the Postgres backend. This refactoring is not yet fully complete, as some restructuring of the code is in order. |
||
---|---|---|
finito-core | ||
finito-door | ||
finito-postgres | ||
.gitignore | ||
Cargo.toml | ||
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.