StateAlchemist 1.3.0
dotnet add package StateAlchemist --version 1.3.0
NuGet\Install-Package StateAlchemist -Version 1.3.0
<PackageReference Include="StateAlchemist" Version="1.3.0" />
<PackageVersion Include="StateAlchemist" Version="1.3.0" />
<PackageReference Include="StateAlchemist" />
paket add StateAlchemist --version 1.3.0
#r "nuget: StateAlchemist, 1.3.0"
#:package StateAlchemist@1.3.0
#addin nuget:?package=StateAlchemist&version=1.3.0
#tool nuget:?package=StateAlchemist&version=1.3.0
StateAlchemist
A source-generated hierarchical state machine library for .NET. Your states own their data, your transitions own the transformation, and the compiler writes the machine — no dictionaries, no delegates, no reflection, and nothing allocated on a synchronous path.
public struct Connected : IRootState { public int Width; public int Height; }
[Initial] public struct Idle : IState<Connected> { }
[Module] public static class TelnetCore
{
[Transition(From = typeof(Idle), To = typeof(Command)), On(255)]
public static void Escape(ref Command to) { }
}
[Machine(Root = typeof(Connected), Value = typeof(byte))]
[Include(typeof(TelnetCore))]
public sealed partial class MudTelnet;
await machine.StartAsync(); then await machine.FireAsync(buffer); — the generator writes the dispatch, the
hierarchy, the entry and exit actions, the diagnostics that catch mistakes at compile time, and a Mermaid diagram
of the whole thing as a constant.
Referencing this package brings the generator, the analyzers and their code fixes with it.
Documentation: https://github.com/HarryCordewener/StateAlchemist
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. net11.0 is compatible. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.12)
- System.Memory (>= 4.6.3)
-
net10.0
- No dependencies.
-
net11.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on StateAlchemist:
| Package | Downloads |
|---|---|
|
TelnetNegotiationCore
A Client and Server compatible library to create telnet applications, with a mind to MUDs. |
GitHub repositories
This package is not used by any popular GitHub repositories.