#[typestate]
此板条箱提供单个属性宏: #[typestate] 。
宏附加到mod并允许使用纯Rust宏DSL。
定义自动机和状态
要定义自动机并声明宏使用属性。 这些属性由宏解析,从而可以毫不费力地描述类型状态。
#[automata]属性
此属性定义主要的自动机结构。 它添加了一个通用类型参数,即State参数。 type参数将受密封的特征限制,从而禁用可接受的类型集的外部手动扩展。
#[state]属性
此属性定义自动机可能处于的状态。它实现了限制自动机状态的密封特征。
定义的状态可以包含数据,该数据仅在状态为“ on”时可用。
特殊州
除了常规状态外,我们还可以有特殊情况。 初始状态和结束状态。
声明这些状态背后的关键思想是可以将每个状态都视为构造函数或析构函数(我知道Rust使用Drop )。 由于每个函数都是一个函数,因此我们可以简单地编写函数并推断哪些状
评论0
最新资源