15 releases

0.9.0-rc2 Sep 2, 2021
0.9.0-rc1 Aug 29, 2021
0.8.0 Jul 16, 2021
0.7.3 Jun 18, 2021
0.7.2 May 18, 2021

#3 in #typestate

34 downloads per month
Used in 4 crates (via typestate)

MIT/Apache

76KB
2K SLoC

#[typestate]

github

This library provides developers with a macro to design typestated objects.

[dependencies]
typestate = "0.8.0"

Compiler support: requires rustc 1.42+

Documentation

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/.

Citing typestate

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},

Publications

Dependencies

~1.5MB
~41K SLoC