Trait abi_stable::nonexhaustive_enum::GetEnumInfo [−][src]
pub unsafe trait GetEnumInfo: Sized {
type Discriminant: ValidDiscriminant;
type DefaultStorage;
type DefaultInterface;
const ENUM_INFO: &'static EnumInfo;
fn discriminants() -> &'static [Self::Discriminant];
fn is_valid_discriminant(discriminant: Self::Discriminant) -> bool;
}
Expand description
Describes the discriminant of an enum,and its valid values.
Safety
This must be an enum with a #[repr(C)]
or #[repr(SomeInteFgerType)]
attribute.
Associated Types
The type of the discriminant.
type DefaultStorage
type DefaultStorage
The default storage type,
used to store this enum inside NonExhaustive<>
,
and allow the enum to grow in size in newer ABI compatible versions.
The default InterfaceType,
used to determine the traits that are required when constructing a NonExhaustive<>
,
and are then usable afterwards.
Associated Constants
Required methods
fn discriminants() -> &'static [Self::Discriminant]
fn discriminants() -> &'static [Self::Discriminant]
The values of the discriminants of each variant.
fn is_valid_discriminant(discriminant: Self::Discriminant) -> bool
fn is_valid_discriminant(discriminant: Self::Discriminant) -> bool
Whether discriminant
is one of the valid discriminants for this enum in this context.