E4214#
Compiler diagnostic name: cannot_extend_non_extensible_enum.
只有 extenum 声明可以被扩展。
普通 enum 声明是封闭的:它的所有构造器都必须出现在原始声明中。如果需要之后再添加构造器,请一开始就将该类型声明为 extenum。
错误示例#
pub enum Event {
Started
}
pub extenum Event += {
Stopped
}
这段代码尝试扩展一个普通 enum。
建议#
先单独声明公开的 extenum 类型,再通过扩展添加其初始构造器。
pub extenum Event
pub(all) extenum Event += {
Started
}
pub extenum Event += {
Stopped
}
pub fn all() -> (Event, Event) {
(Started, Stopped)
}