1个不稳定版本
0.1.0 | 2020年9月9日 |
---|
#220 在 解析器工具
3KB
statemachine
一个提供与状态机一起工作的实用工具的Rust包。文档可在docs.rs上找到。
注意:将来,这个模块将包含更多的机器和自动机。目前,它仅提供定义状态机的方法。
用法
将此添加到您的 Cargo.toml
[dependencies]
statemachine = "0.1"
入门指南
use statemachine::statemachine;
statemachine! {
#[derive(Default)]
struct Foo {}
enum FooState consumes [char] from Start accepts [NonEmpty];
Start => {
char match _ => NonEmpty
},
NonEmpty => {
_ => NonEmpty
}
}
fn main() {
let mut foo: Foo = Default::default();
assert!(!foo.is_accepting());
foo.consume('a');
assert!(foo.is_accepting());
foo.consume('b');
assert!(foo.is_accepting());
foo.consume('c');
assert!(foo.is_accepting());
}
许可证
此包根据MIT许可证的条款发布。有关详细信息,请参阅LICENSE文件。
依赖关系
~1.5MB
~35K SLoC