FluentStateMachine 1.0.1

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 NuGet version

.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
  • .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 92 11/13/2021
1.0.0 107 10/1/2021
1.0.0-rc.3 72 10/1/2021
1.0.0-rc.2 72 10/1/2021
1.0.0-rc.1 37 10/1/2021