我有一个用 Rust 编写的状态机,它需要对两个状态执行相同的操作。
这两种状态都是枚举的变体,但包含不同数量的元素。
match self.state {
RunState::ACCUMULATE(byte, count) | RunState::ESCAPE(count) => todo!(),
_ => todo!()
}
Run Code Online (Sandbox Code Playgroud)
该示例是无效的源代码,因为byte未绑定在所有模式中。
这可以通过byte在第二个模式中绑定到文字零来解决,但我不知道如何存档。
我目前正在分别匹配这两种模式,这会导致我想避免的代码重复。
感谢您的关注。