如何在Rust中指定枚举的基础类型?

16

假设有一个简单的枚举类型,其中包含一些未指定的值,可能希望该枚举类型的大小使用比默认类型更小的整数类型。例如,这提供了将枚举类型存储在u8数组中的能力。

enum MyEnum { 
    A = 0,
    B,
    C,
}

可以使用u8数组并将其与某些常量进行比较,但我希望能够使用枚举的好处,在匹配语句中确保处理所有可能性。

如何指定它的size_of与所需的整数类型相匹配?


1
请注意,已经有一些类似的问题了,但是它们是关于与其他编程语言进行接口交互的(这使我最初尝试查找此信息失败!),因此我提出了新的问题。 - ideasman42
虽然这被标记为重复,但另一个问题是关于C++ FFI的。 - ideasman42
1个回答

37

这可以使用表示(repr)指示符来完成。

#[repr(u8)]
enum MyEnum { A = 0, B, C, }

赋值给超出类型范围的值会引发编译器警告。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接