tvl-depot/users/tazjin/finito
sterni 4d5fdb781d chore(3p/sources): Bump channels & overlays
* //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
2022-10-27 12:05:44 +00:00
..
finito-core fix(users/tazjin): rustfmt code with non-default settings 2022-02-07 16:58:59 +00:00
finito-door fix(users/tazjin): rustfmt code with non-default settings 2022-02-07 16:58:59 +00:00
finito-postgres fix(users/tazjin): rustfmt code with non-default settings 2022-02-07 16:58:59 +00:00
.gitignore chore(tazjin/finito): Add build configuration 2020-06-30 04:14:27 +00:00
Cargo.lock chore(tazjin/finito): Add build configuration 2020-06-30 04:14:27 +00:00
Cargo.toml feat(tazjin/finito): Check in my old Rust state-machine library 2020-06-30 04:35:58 +01:00
default.nix chore(3p/sources): Bump channels & overlays 2022-10-27 12:05:44 +00:00
README.md feat(tazjin/finito): Check in my old Rust state-machine library 2020-06-30 04:35:58 +01:00

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 Finito
  • finito-door: Example implementation of a simple, lockable door
  • finito-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.