#状态机 #状态 #机器 #fsm #rust

nefsm

一个简单的 Rust 状态机库

3 个版本

0.1.3 2023年4月4日
0.1.2 2023年4月3日
0.1.0 2023年2月24日

#2497 in 算法

27 每月下载

MIT 许可证

17KB
265

nefsm

nefsm 是一个用于实现有限状态机的 Rust 库。它提供了一种灵活且可重用的方式来创建状态机,使开发者能够更轻松地思考复杂系统并设计更稳健可靠的软件。

安装

要在 Rust 项目中使用 nefsm,只需将其添加到您的 Cargo.toml 文件中

[dependencies]
nefsm = "0.1.0"

lib.rs:

一个简单的 Rust 状态机库,使用枚举定义状态和事件。

此库提供了一种简单、灵活的方式来在 Rust 中定义状态机。状态和事件使用 Rust 枚举定义,而状态机本身是一个泛型结构体,可以使用任何特定的枚举集进行实例化。

此库中使用的核心特质是 FsmEnumStateful

  • FsmEnum 是一个特质,它定义了如何根据给定的枚举值创建一个新的状态机状态。这用于在状态转换发生时实例化新的状态机状态。

  • Stateful 是一个特质,它定义了状态应该如何处理状态转换事件。

  • StateMachine 是表示状态机实例的主要结构体。它跟踪当前状态,并提供初始化状态机、处理事件和获取当前状态的方法。

此库旨在易于使用,同时足够灵活,可以处理各种状态机设计。

依赖关系

~0.6–1.2MB
~23K SLoC