Trait abi_stable::nonexhaustive_enum::GetEnumInfo
source · pub unsafe trait GetEnumInfo: Sized {
type Discriminant: ValidDiscriminant;
type DefaultStorage;
type DefaultInterface;
const ENUM_INFO: &'static EnumInfo;
const DISCRIMINANTS: &'static [Self::Discriminant];
// Required method
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.
The Discriminant
associated type must correspond to the type of
this enum’s discriminant.
The DISCRIMINANTS
associated constant must be the values of
this enum’s discriminants.
Required Associated Types§
sourcetype Discriminant: ValidDiscriminant
type Discriminant: ValidDiscriminant
The type of the discriminant.
sourcetype 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.
sourcetype DefaultInterface
type DefaultInterface
The default InterfaceType,
used to determine the traits that are required when constructing a NonExhaustive<>
,
and are then usable afterwards.
Required Associated Constants§
sourceconst DISCRIMINANTS: &'static [Self::Discriminant]
const DISCRIMINANTS: &'static [Self::Discriminant]
The values of the discriminants of each variant.
Required Methods§
sourcefn 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.