Function core::mem::variant_count
const: unstable · source · pub fn variant_count<T>() -> usize
🔬This is a nightly-only experimental API. (
variant_count
#73662)Expand description
返回枚举类型 T
中的变体数。
如果 T
不是枚举,则调用此函数不会导致未定义的行为,但返回值是未指定的。
同样,如果 T
是变体数大于 usize::MAX
的枚举,则未指定返回值。
无人居住的变体将被计算在内。
请注意,枚举将来可能会使用额外的变体进行扩展,作为非破坏性更改,例如,如果它标记为 #[non_exhaustive]
,这将更改此函数的结果。
Examples
use std::mem;
enum Void {}
enum Foo { A(&'static str), B(i32), C(i32) }
assert_eq!(mem::variant_count::<Void>(), 0);
assert_eq!(mem::variant_count::<Foo>(), 3);
assert_eq!(mem::variant_count::<Option<!>>(), 2);
assert_eq!(mem::variant_count::<Result<!, !>>(), 2);
Run