├── .github └── workflows │ └── ci.yml ├── .gitignore ├── Cargo.toml ├── LICENSE ├── README.md ├── examples ├── macro │ ├── async_bench │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── async_bench_complex │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── async_blinky │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── async_io │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── barrier │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── basic │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── bench │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── bench_complex │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── blinky │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── calculator │ │ ├── Cargo.toml │ │ └── src │ │ │ ├── main.rs │ │ │ ├── state.rs │ │ │ └── ui.rs │ ├── custom_state │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── generics │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ └── history │ │ ├── Cargo.toml │ │ └── src │ │ └── main.rs └── no_macro │ ├── basic │ ├── Cargo.toml │ └── src │ │ └── main.rs │ ├── bench │ ├── Cargo.toml │ └── src │ │ └── main.rs │ ├── blinky │ ├── Cargo.toml │ └── src │ │ └── main.rs │ ├── calculator │ ├── Cargo.toml │ └── src │ │ ├── main.rs │ │ ├── state.rs │ │ └── ui.rs │ └── history │ ├── Cargo.toml │ └── src │ └── main.rs ├── macro ├── Cargo.toml └── src │ ├── analyze.rs │ ├── codegen.rs │ ├── lib.rs │ ├── lower.rs │ ├── parse.rs │ └── visitors │ ├── generic_param_visitor.rs │ ├── lifetime_visitor.rs │ └── mod.rs └── statig ├── Cargo.toml ├── src ├── awaitable │ ├── inner.rs │ ├── into_state_machine.rs │ ├── mod.rs │ ├── state.rs │ ├── state_machine.rs │ └── superstate.rs ├── blocking │ ├── inner.rs │ ├── into_state_machine.rs │ ├── mod.rs │ ├── state.rs │ ├── state_machine.rs │ └── superstate.rs ├── lib.rs ├── outcome.rs └── state_or_superstate.rs └── tests ├── async_hooks.rs ├── async_transition.rs ├── async_transition_macro.rs ├── config_macro.rs ├── default.rs ├── external_context.rs ├── generics.rs ├── hooks.rs ├── serde.rs ├── state_local_storage.rs ├── state_local_storage_macro.rs ├── transition.rs ├── transition_macro.rs ├── ui ├── custom_state.rs ├── custom_state_derive_error.rs ├── custom_state_derive_error.stderr ├── doc_comments.rs ├── doc_comments_missing_lint.rs └── doc_comments_missing_lint.stderr └── ui_tests.rs /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/README.md -------------------------------------------------------------------------------- /examples/macro/async_bench/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/async_bench/Cargo.toml -------------------------------------------------------------------------------- /examples/macro/async_bench/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/async_bench/src/main.rs -------------------------------------------------------------------------------- /examples/macro/async_bench_complex/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/async_bench_complex/Cargo.toml -------------------------------------------------------------------------------- /examples/macro/async_bench_complex/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/async_bench_complex/src/main.rs -------------------------------------------------------------------------------- /examples/macro/async_blinky/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/async_blinky/Cargo.toml -------------------------------------------------------------------------------- /examples/macro/async_blinky/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/async_blinky/src/main.rs -------------------------------------------------------------------------------- /examples/macro/async_io/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/async_io/Cargo.toml -------------------------------------------------------------------------------- /examples/macro/async_io/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/async_io/src/main.rs -------------------------------------------------------------------------------- /examples/macro/barrier/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/barrier/Cargo.toml -------------------------------------------------------------------------------- /examples/macro/barrier/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/barrier/src/main.rs -------------------------------------------------------------------------------- /examples/macro/basic/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/basic/Cargo.toml -------------------------------------------------------------------------------- /examples/macro/basic/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/basic/src/main.rs -------------------------------------------------------------------------------- /examples/macro/bench/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/bench/Cargo.toml -------------------------------------------------------------------------------- /examples/macro/bench/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/bench/src/main.rs -------------------------------------------------------------------------------- /examples/macro/bench_complex/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/bench_complex/Cargo.toml -------------------------------------------------------------------------------- /examples/macro/bench_complex/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/bench_complex/src/main.rs -------------------------------------------------------------------------------- /examples/macro/blinky/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/blinky/Cargo.toml -------------------------------------------------------------------------------- /examples/macro/blinky/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/blinky/src/main.rs -------------------------------------------------------------------------------- /examples/macro/calculator/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/calculator/Cargo.toml -------------------------------------------------------------------------------- /examples/macro/calculator/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/calculator/src/main.rs -------------------------------------------------------------------------------- /examples/macro/calculator/src/state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/calculator/src/state.rs -------------------------------------------------------------------------------- /examples/macro/calculator/src/ui.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/calculator/src/ui.rs -------------------------------------------------------------------------------- /examples/macro/custom_state/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/custom_state/Cargo.toml -------------------------------------------------------------------------------- /examples/macro/custom_state/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/custom_state/src/main.rs -------------------------------------------------------------------------------- /examples/macro/generics/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/generics/Cargo.toml -------------------------------------------------------------------------------- /examples/macro/generics/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/generics/src/main.rs -------------------------------------------------------------------------------- /examples/macro/history/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/history/Cargo.toml -------------------------------------------------------------------------------- /examples/macro/history/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/macro/history/src/main.rs -------------------------------------------------------------------------------- /examples/no_macro/basic/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/no_macro/basic/Cargo.toml -------------------------------------------------------------------------------- /examples/no_macro/basic/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/no_macro/basic/src/main.rs -------------------------------------------------------------------------------- /examples/no_macro/bench/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/no_macro/bench/Cargo.toml -------------------------------------------------------------------------------- /examples/no_macro/bench/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/no_macro/bench/src/main.rs -------------------------------------------------------------------------------- /examples/no_macro/blinky/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/no_macro/blinky/Cargo.toml -------------------------------------------------------------------------------- /examples/no_macro/blinky/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/no_macro/blinky/src/main.rs -------------------------------------------------------------------------------- /examples/no_macro/calculator/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/no_macro/calculator/Cargo.toml -------------------------------------------------------------------------------- /examples/no_macro/calculator/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/no_macro/calculator/src/main.rs -------------------------------------------------------------------------------- /examples/no_macro/calculator/src/state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/no_macro/calculator/src/state.rs -------------------------------------------------------------------------------- /examples/no_macro/calculator/src/ui.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/no_macro/calculator/src/ui.rs -------------------------------------------------------------------------------- /examples/no_macro/history/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/no_macro/history/Cargo.toml -------------------------------------------------------------------------------- /examples/no_macro/history/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/examples/no_macro/history/src/main.rs -------------------------------------------------------------------------------- /macro/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/macro/Cargo.toml -------------------------------------------------------------------------------- /macro/src/analyze.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/macro/src/analyze.rs -------------------------------------------------------------------------------- /macro/src/codegen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/macro/src/codegen.rs -------------------------------------------------------------------------------- /macro/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/macro/src/lib.rs -------------------------------------------------------------------------------- /macro/src/lower.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/macro/src/lower.rs -------------------------------------------------------------------------------- /macro/src/parse.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/macro/src/parse.rs -------------------------------------------------------------------------------- /macro/src/visitors/generic_param_visitor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/macro/src/visitors/generic_param_visitor.rs -------------------------------------------------------------------------------- /macro/src/visitors/lifetime_visitor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/macro/src/visitors/lifetime_visitor.rs -------------------------------------------------------------------------------- /macro/src/visitors/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/macro/src/visitors/mod.rs -------------------------------------------------------------------------------- /statig/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/Cargo.toml -------------------------------------------------------------------------------- /statig/src/awaitable/inner.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/awaitable/inner.rs -------------------------------------------------------------------------------- /statig/src/awaitable/into_state_machine.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/awaitable/into_state_machine.rs -------------------------------------------------------------------------------- /statig/src/awaitable/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/awaitable/mod.rs -------------------------------------------------------------------------------- /statig/src/awaitable/state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/awaitable/state.rs -------------------------------------------------------------------------------- /statig/src/awaitable/state_machine.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/awaitable/state_machine.rs -------------------------------------------------------------------------------- /statig/src/awaitable/superstate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/awaitable/superstate.rs -------------------------------------------------------------------------------- /statig/src/blocking/inner.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/blocking/inner.rs -------------------------------------------------------------------------------- /statig/src/blocking/into_state_machine.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/blocking/into_state_machine.rs -------------------------------------------------------------------------------- /statig/src/blocking/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/blocking/mod.rs -------------------------------------------------------------------------------- /statig/src/blocking/state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/blocking/state.rs -------------------------------------------------------------------------------- /statig/src/blocking/state_machine.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/blocking/state_machine.rs -------------------------------------------------------------------------------- /statig/src/blocking/superstate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/blocking/superstate.rs -------------------------------------------------------------------------------- /statig/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/lib.rs -------------------------------------------------------------------------------- /statig/src/outcome.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/outcome.rs -------------------------------------------------------------------------------- /statig/src/state_or_superstate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/src/state_or_superstate.rs -------------------------------------------------------------------------------- /statig/tests/async_hooks.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/async_hooks.rs -------------------------------------------------------------------------------- /statig/tests/async_transition.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/async_transition.rs -------------------------------------------------------------------------------- /statig/tests/async_transition_macro.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/async_transition_macro.rs -------------------------------------------------------------------------------- /statig/tests/config_macro.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/config_macro.rs -------------------------------------------------------------------------------- /statig/tests/default.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/default.rs -------------------------------------------------------------------------------- /statig/tests/external_context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/external_context.rs -------------------------------------------------------------------------------- /statig/tests/generics.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/generics.rs -------------------------------------------------------------------------------- /statig/tests/hooks.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/hooks.rs -------------------------------------------------------------------------------- /statig/tests/serde.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/serde.rs -------------------------------------------------------------------------------- /statig/tests/state_local_storage.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/state_local_storage.rs -------------------------------------------------------------------------------- /statig/tests/state_local_storage_macro.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/state_local_storage_macro.rs -------------------------------------------------------------------------------- /statig/tests/transition.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/transition.rs -------------------------------------------------------------------------------- /statig/tests/transition_macro.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/transition_macro.rs -------------------------------------------------------------------------------- /statig/tests/ui/custom_state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/ui/custom_state.rs -------------------------------------------------------------------------------- /statig/tests/ui/custom_state_derive_error.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/ui/custom_state_derive_error.rs -------------------------------------------------------------------------------- /statig/tests/ui/custom_state_derive_error.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/ui/custom_state_derive_error.stderr -------------------------------------------------------------------------------- /statig/tests/ui/doc_comments.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/ui/doc_comments.rs -------------------------------------------------------------------------------- /statig/tests/ui/doc_comments_missing_lint.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/ui/doc_comments_missing_lint.rs -------------------------------------------------------------------------------- /statig/tests/ui/doc_comments_missing_lint.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/ui/doc_comments_missing_lint.stderr -------------------------------------------------------------------------------- /statig/tests/ui_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdeloof/statig/HEAD/statig/tests/ui_tests.rs --------------------------------------------------------------------------------