Proxima.SelfEdu.FiniteState
1.0.1
dotnet add package Proxima.SelfEdu.FiniteState --version 1.0.1
NuGet\Install-Package Proxima.SelfEdu.FiniteState -Version 1.0.1
<PackageReference Include="Proxima.SelfEdu.FiniteState" Version="1.0.1" />
paket add Proxima.SelfEdu.FiniteState --version 1.0.1
#r "nuget: Proxima.SelfEdu.FiniteState, 1.0.1"
// Install Proxima.SelfEdu.FiniteState as a Cake Addin #addin nuget:?package=Proxima.SelfEdu.FiniteState&version=1.0.1 // Install Proxima.SelfEdu.FiniteState as a Cake Tool #tool nuget:?package=Proxima.SelfEdu.FiniteState&version=1.0.1
Proxima.SelfEdu.FiniteState
Simple generic Finite State Machine implementation for .NET.
Main implementation is FiniteStateMachine
, that accepts three parameters:
- Instance of
FiniteStateMachineOptions
that describes the behaviour of the state machine during configuration and operation, in particular, what situations should be considered exceptional and which should be just ignored. - Implementation of
IFiniteStateMachineEventHandler
that provides callbacks for machine to invoke, for example when it achieves a particular state or applies a certain state-transition rule. - Configuration action on
FiniteStateMachineBuilder
that should be used to define a set of states and state-transition rules for the machine.
State-transition rules operate on messages sent to Handle method. They're differentiated by their runtime type. Transitions can be cyclical. Transitions can be conditional based on the payload of a message.
Machine can contain zero or more states that are final. Upon achieving a final state, no further transitions can happen. A machine without final states will accept new messages indefinitely. Machine must have exactly one starting state.
Please refer to .Tests project for examples of setup or operation.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- Microsoft.Extensions.Options (>= 6.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.