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.

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

Information about the enum.

Required methods

The values of the discriminants of each variant.

Whether discriminant is one of the valid discriminants for this enum in this context.

Implementors