2 个版本 (1 个稳定版)

使用旧的 Rust 2015

1.0.0 2016年1月15日
0.1.0 2015年6月13日

#2215算法

Download history 9/week @ 2023-11-20 89/week @ 2023-11-27 61/week @ 2023-12-04 80/week @ 2023-12-11 48/week @ 2024-01-01 10/week @ 2024-01-08 226/week @ 2024-01-15 153/week @ 2024-01-22 167/week @ 2024-02-05 14/week @ 2024-02-12 2/week @ 2024-02-19 31/week @ 2024-02-26 42/week @ 2024-03-04

89 每月下载量

MIT 许可证

5KB
72

MicroState

Build Status

最小化有限状态机。

描述

有限状态机一次只处于一个状态。从那里,当由触发事件(转换)启动时,它可以从一个状态转换到另一个状态。有限状态机完全由状态列表以及触发状态之间转换的转换定义。

这正是这个crate所做的事情:它让您定义状态和转换。其余的由您自己完成。

@soveranmicromachine 在 Ruby 中的启发。

文档

在线文档

用法

首先需要导入宏

#[macro_use] extern crate microstate;

然后您可以创建一个新的状态机并调用转换。

microstate!{
    MicroMachine { New };
    states { New, Confirmed, Ignored };

    confirm {
        New => Confirmed
    }

    ignore {
        New => Ignored
    }

    reset {
        Confirmed => New
        Ignored   => New
    }
}

let mut machine = MicroMachine::new();

machine.confirm(); // => Some(Confirmed)
machine.state();   // => Confirmed

machine.ignore();  // => None
machine.state();   // => Confirmed

machine.reset();   // => Some(New)
machine.state();   // => New

machine.ignore();  // => Some(Ignored)
machine.state();   // => Ignored

贡献

如果您发现错误或想以其他方式帮忙,请 打开一个问题

许可证

MIT。见 LICENSE

无运行时依赖