This library provides developers with a macro to design typestated objects.
[dependencies]
typestate = "0.8.0"
Compiler support: requires rustc 1.42+
If you're only interested in getting up and running with typestate
,
the documentation might be more useful for you.
You can consult it in https://docs.rs/typestate/0.8.0/typestate/
If you're interested in learning more about the typestate
crate, or typestates in Rust,
you can read The Typestate Book in https://rustype.github.io/typestate-rs/.
If you find typestate
useful in your work, we kindly request you cite the following paper:
@inproceedings{10.1145/3475061.3475082,
author = {Duarte, Jos\'{e} and Ravara, Ant\'{o}nio},
title = {Retrofitting Typestates into Rust},
year = {2021},
url = {https://doi.org/10.1145/3475061.3475082},
doi = {10.1145/3475061.3475082},
booktitle = {25th Brazilian Symposium on Programming Languages},
pages = {83–91},
numpages = {9},
series = {SBLP'21}
}
Alternatively, you can cite the extended version:
@article{10.1016/j.cola.2022.101154,
title = {Taming stateful computations in Rust with typestates},
journal = {Journal of Computer Languages},
pages = {101154},
year = {2022},
issn = {2590-1184},
doi = {10.1016/j.cola.2022.101154},
url = {https://doi.org/10.1016/j.cola.2022.101154},
author = {Duarte, Jos\'{e} and Ravara, Ant\'{o}nio},