#fsm #default #default-value #derive #state #state2 #option-like

taker

为具有默认值的一切提供类似 Option 的获取方式

1 个不稳定版本

0.1.0 2021 年 3 月 23 日

#1668Rust 模式

MIT 许可证

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...");
    }
}

无运行时依赖项