FluentStateMachine 1.0.1
.NET 6.0
.NET Standard 2.0
.NET Framework 4.5
Install-Package FluentStateMachine -Version 1.0.1
dotnet add package FluentStateMachine --version 1.0.1
<PackageReference Include="FluentStateMachine" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FluentStateMachine --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: FluentStateMachine, 1.0.1"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install FluentStateMachine as a Cake Addin
#addin nuget:?package=FluentStateMachine&version=1.0.1
// Install FluentStateMachine as a Cake Tool
#tool nuget:?package=FluentStateMachine&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
FluentStateMachine 
.NET Finite-state machine (FSM) with a fluent interface
Example
enum State { S1, S2, S3 }
enum Event { E1, E2, E3 }
var fsm = new FsmBuilder<State, Event>(State.S1)
.OnJump(x => Console.WriteLine($"State change to {x.Fsm.Current} from {x.PrevState}"))
.State(State.S1)
.On(Event.E1).Execute(x => { /* some operations */ return "some data"; })
.On(Event.E2).JumpTo(State.S2)
.State(State.S2)
.On(Event.E3).Enable(x => /* some conditions */ true).JumpTo(State.S3)
.State(State.S3)
.OnEnter(x => Console.WriteLine($"Enter to final state"))
.Build();
fsm.Trigger(Event.E2);
fsm.Trigger(Event.E3);
// Console output:
// State change to S2 from S1
// State change to S3 from S2
// Enter to final state
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
-
.NETFramework 4.5
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.1 | 184 | 11/13/2021 |
1.0.0 | 158 | 10/1/2021 |
1.0.0-rc.3 | 111 | 10/1/2021 |
1.0.0-rc.2 | 107 | 10/1/2021 |
1.0.0-rc.1 | 73 | 10/1/2021 |