├── .clippy.toml ├── .github └── workflows │ ├── ci.yml │ └── deploy-book.yml ├── .gitignore ├── .vscode └── settings.json ├── CITATION.cff ├── CONTRIBUTING.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── articles ├── cola22.pdf ├── sblp21.pdf └── thesis.pdf ├── assets ├── DotLightBulb.svg ├── DotSmartBulb.svg ├── UmlLightBulb.svg └── UmlSmartBulb.svg ├── examples ├── bulbs │ ├── dead_bulb.rs │ ├── light_bulb.rs │ └── smart_bulb.rs ├── generics.rs └── traffic_light.rs ├── justfile ├── src └── lib.rs ├── tests ├── fail │ ├── complex_unreachable_state.rs │ ├── complex_unreachable_state.stderr │ ├── conflicting_automata_attr.rs │ ├── conflicting_automata_attr.stderr │ ├── conflicting_state_attr.rs │ ├── conflicting_state_attr.stderr │ ├── duplicate_automata_attr.rs │ ├── duplicate_automata_attr.stderr │ ├── duplicate_state_attr.rs │ ├── duplicate_state_attr.stderr │ ├── empty_automata.rs │ ├── empty_automata.stderr │ ├── missing_initial_final_states.rs │ ├── missing_initial_final_states.stderr │ ├── nested_enums.rs │ ├── nested_enums.stderr │ ├── undeclared_variant.rs │ ├── undeclared_variant.stderr │ ├── unsupported_variant.rs │ └── unsupported_variant.stderr ├── macro_tests.rs └── pass │ ├── empty_constructors.rs │ ├── empty_enumerate.rs │ ├── empty_module.rs │ ├── generics_automata.rs │ ├── lifetimes_automata.rs │ ├── non-deterministic_initial_state.rs │ ├── stateful_automata.rs │ ├── stateful_automata_constructors.rs │ └── stateful_automata_enumerate.rs ├── typestate-book ├── .gitignore ├── book.toml └── src │ ├── SUMMARY.md │ ├── annex_1.md │ ├── chapter_1.md │ ├── chapter_2.md │ ├── chapter_3.md │ ├── chapter_4.md │ ├── features │ ├── compilation_flags.md │ ├── features.md │ └── macro_attributes.md │ └── static │ ├── DotLightBulb.svg │ ├── DotSmartBulb.svg │ ├── UmlLightBulb.svg │ └── UmlSmartBulb.svg └── typestate-proc-macro ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src ├── igraph ├── export.rs ├── mod.rs └── validate.rs ├── lib.rs └── visitors ├── decision.rs ├── mod.rs ├── state.rs └── transition.rs /.clippy.toml: -------------------------------------------------------------------------------- 1 | msrv = "1.42.0" -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/deploy-book.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/.github/workflows/deploy-book.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/.gitignore -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.rulers": [100] 3 | } -------------------------------------------------------------------------------- /CITATION.cff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/CITATION.cff -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/LICENSE-APACHE -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/LICENSE-MIT -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/README.md -------------------------------------------------------------------------------- /articles/cola22.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/articles/cola22.pdf -------------------------------------------------------------------------------- /articles/sblp21.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/articles/sblp21.pdf -------------------------------------------------------------------------------- /articles/thesis.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/articles/thesis.pdf -------------------------------------------------------------------------------- /assets/DotLightBulb.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/assets/DotLightBulb.svg -------------------------------------------------------------------------------- /assets/DotSmartBulb.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/assets/DotSmartBulb.svg -------------------------------------------------------------------------------- /assets/UmlLightBulb.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/assets/UmlLightBulb.svg -------------------------------------------------------------------------------- /assets/UmlSmartBulb.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/assets/UmlSmartBulb.svg -------------------------------------------------------------------------------- /examples/bulbs/dead_bulb.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/examples/bulbs/dead_bulb.rs -------------------------------------------------------------------------------- /examples/bulbs/light_bulb.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/examples/bulbs/light_bulb.rs -------------------------------------------------------------------------------- /examples/bulbs/smart_bulb.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/examples/bulbs/smart_bulb.rs -------------------------------------------------------------------------------- /examples/generics.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/examples/generics.rs -------------------------------------------------------------------------------- /examples/traffic_light.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/examples/traffic_light.rs -------------------------------------------------------------------------------- /justfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/justfile -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/src/lib.rs -------------------------------------------------------------------------------- /tests/fail/complex_unreachable_state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/complex_unreachable_state.rs -------------------------------------------------------------------------------- /tests/fail/complex_unreachable_state.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/complex_unreachable_state.stderr -------------------------------------------------------------------------------- /tests/fail/conflicting_automata_attr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/conflicting_automata_attr.rs -------------------------------------------------------------------------------- /tests/fail/conflicting_automata_attr.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/conflicting_automata_attr.stderr -------------------------------------------------------------------------------- /tests/fail/conflicting_state_attr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/conflicting_state_attr.rs -------------------------------------------------------------------------------- /tests/fail/conflicting_state_attr.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/conflicting_state_attr.stderr -------------------------------------------------------------------------------- /tests/fail/duplicate_automata_attr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/duplicate_automata_attr.rs -------------------------------------------------------------------------------- /tests/fail/duplicate_automata_attr.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/duplicate_automata_attr.stderr -------------------------------------------------------------------------------- /tests/fail/duplicate_state_attr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/duplicate_state_attr.rs -------------------------------------------------------------------------------- /tests/fail/duplicate_state_attr.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/duplicate_state_attr.stderr -------------------------------------------------------------------------------- /tests/fail/empty_automata.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/empty_automata.rs -------------------------------------------------------------------------------- /tests/fail/empty_automata.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/empty_automata.stderr -------------------------------------------------------------------------------- /tests/fail/missing_initial_final_states.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/missing_initial_final_states.rs -------------------------------------------------------------------------------- /tests/fail/missing_initial_final_states.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/missing_initial_final_states.stderr -------------------------------------------------------------------------------- /tests/fail/nested_enums.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/nested_enums.rs -------------------------------------------------------------------------------- /tests/fail/nested_enums.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/nested_enums.stderr -------------------------------------------------------------------------------- /tests/fail/undeclared_variant.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/undeclared_variant.rs -------------------------------------------------------------------------------- /tests/fail/undeclared_variant.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/undeclared_variant.stderr -------------------------------------------------------------------------------- /tests/fail/unsupported_variant.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/unsupported_variant.rs -------------------------------------------------------------------------------- /tests/fail/unsupported_variant.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/fail/unsupported_variant.stderr -------------------------------------------------------------------------------- /tests/macro_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/macro_tests.rs -------------------------------------------------------------------------------- /tests/pass/empty_constructors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/pass/empty_constructors.rs -------------------------------------------------------------------------------- /tests/pass/empty_enumerate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/pass/empty_enumerate.rs -------------------------------------------------------------------------------- /tests/pass/empty_module.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/pass/empty_module.rs -------------------------------------------------------------------------------- /tests/pass/generics_automata.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/pass/generics_automata.rs -------------------------------------------------------------------------------- /tests/pass/lifetimes_automata.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/pass/lifetimes_automata.rs -------------------------------------------------------------------------------- /tests/pass/non-deterministic_initial_state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/pass/non-deterministic_initial_state.rs -------------------------------------------------------------------------------- /tests/pass/stateful_automata.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/pass/stateful_automata.rs -------------------------------------------------------------------------------- /tests/pass/stateful_automata_constructors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/pass/stateful_automata_constructors.rs -------------------------------------------------------------------------------- /tests/pass/stateful_automata_enumerate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/tests/pass/stateful_automata_enumerate.rs -------------------------------------------------------------------------------- /typestate-book/.gitignore: -------------------------------------------------------------------------------- 1 | book 2 | -------------------------------------------------------------------------------- /typestate-book/book.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-book/book.toml -------------------------------------------------------------------------------- /typestate-book/src/SUMMARY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-book/src/SUMMARY.md -------------------------------------------------------------------------------- /typestate-book/src/annex_1.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /typestate-book/src/chapter_1.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-book/src/chapter_1.md -------------------------------------------------------------------------------- /typestate-book/src/chapter_2.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-book/src/chapter_2.md -------------------------------------------------------------------------------- /typestate-book/src/chapter_3.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-book/src/chapter_3.md -------------------------------------------------------------------------------- /typestate-book/src/chapter_4.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-book/src/chapter_4.md -------------------------------------------------------------------------------- /typestate-book/src/features/compilation_flags.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-book/src/features/compilation_flags.md -------------------------------------------------------------------------------- /typestate-book/src/features/features.md: -------------------------------------------------------------------------------- 1 | # Features 2 | -------------------------------------------------------------------------------- /typestate-book/src/features/macro_attributes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-book/src/features/macro_attributes.md -------------------------------------------------------------------------------- /typestate-book/src/static/DotLightBulb.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-book/src/static/DotLightBulb.svg -------------------------------------------------------------------------------- /typestate-book/src/static/DotSmartBulb.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-book/src/static/DotSmartBulb.svg -------------------------------------------------------------------------------- /typestate-book/src/static/UmlLightBulb.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-book/src/static/UmlLightBulb.svg -------------------------------------------------------------------------------- /typestate-book/src/static/UmlSmartBulb.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-book/src/static/UmlSmartBulb.svg -------------------------------------------------------------------------------- /typestate-proc-macro/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-proc-macro/Cargo.toml -------------------------------------------------------------------------------- /typestate-proc-macro/LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-proc-macro/LICENSE-APACHE -------------------------------------------------------------------------------- /typestate-proc-macro/LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-proc-macro/LICENSE-MIT -------------------------------------------------------------------------------- /typestate-proc-macro/src/igraph/export.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-proc-macro/src/igraph/export.rs -------------------------------------------------------------------------------- /typestate-proc-macro/src/igraph/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-proc-macro/src/igraph/mod.rs -------------------------------------------------------------------------------- /typestate-proc-macro/src/igraph/validate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-proc-macro/src/igraph/validate.rs -------------------------------------------------------------------------------- /typestate-proc-macro/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-proc-macro/src/lib.rs -------------------------------------------------------------------------------- /typestate-proc-macro/src/visitors/decision.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-proc-macro/src/visitors/decision.rs -------------------------------------------------------------------------------- /typestate-proc-macro/src/visitors/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-proc-macro/src/visitors/mod.rs -------------------------------------------------------------------------------- /typestate-proc-macro/src/visitors/state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-proc-macro/src/visitors/state.rs -------------------------------------------------------------------------------- /typestate-proc-macro/src/visitors/transition.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustype/typestate-rs/HEAD/typestate-proc-macro/src/visitors/transition.rs --------------------------------------------------------------------------------