1 个不稳定版本
0.1.0 | 2021 年 3 月 23 日 |
---|
#1668 在 Rust 模式
3KB
taker
为具有 Default
实现的任何东西创建有限状态机。
如何使用它
#[derive(Debug, PartialEq, Eq)]
enum Fsm {
State1,
State2,
Transition,
}
impl Default for Fsm {
fn default() -> Self {
Self::Transition
}
}
let mut fsm = Fsm::State1;
match fsm.take() {
Fsm::State1 => {
fsm.set(Fsm::State2);
}
Fsm::State2 => {
fsm.set(Fsm::State1);
}
_ => {
panic!("Stucked in transition state...");
}
}