MagicStateMachines 0.1.2

Ergonomic typestate wrappers for compiler-enforced state machines with separable contracts
Documentation
[package]
name = "MagicStateMachines"
version = "0.1.2"
edition = "2024"
license = "MIT OR Apache-2.0"
description = "Ergonomic typestate wrappers for compiler-enforced state machines with separable contracts"
keywords = ["state-machine", "typestate", "compile-time", "zero-cost", "async"]
categories = [
    "rust-patterns",
    "data-structures",
    "no-std",
    "asynchronous",
    "concurrency",
]
repository = "https://github.com/sirati/MagicStateMachines"
homepage = "https://github.com/sirati/MagicStateMachines"
documentation = "https://docs.rs/MagicStateMachines"
readme = "README.md"
exclude = [
    ".direnv/",
    ".envrc",
    "devel.nix",
    "flake.lock",
    "flake.nix",
    "test_def/",
    "test_use/",
]

[features]
default = ["std"]
std = ["alloc"]
alloc = []
no-std = []
decompose = []
decompose-rand = ["decompose", "dep:rand"]
dynZST = ["dep:dynzst"]
nightly-random = []
gen_no_unsafe = []
tracing = ["alloc"]
unique-rc-arc = ["std"]

[workspace]
members = ["test_def", "test_use"]
resolver = "3"

[workspace.package]
edition = "2024"
license = "MIT OR Apache-2.0"
version = "0.1.0"

[workspace.dependencies]
dynzst = "0.1.2"
magicstatemachines = { path = ".", package = "MagicStateMachines" }
test_def = { path = "test_def" }

[dependencies]
dynzst = { workspace = true, optional = true }
paste = "1.0.15"
rand = { version = "0.9.2", default-features = false, features = ["os_rng"], optional = true }

[lib]
name = "magicstatemachines"
path = "src/lib.rs"