[][src]Module abi_stable::nonexhaustive_enum

Contains types and traits for nonexhaustive enums.

The most important type here is NonExhaustive, which allows passing an enum which used the #[derive(StableAbi)] #[sabi(kind(WithNonExhaustive(...)))] attributes through ffi.

Structs

DiscrAndEnumInfo

A struct storing the discriminant and EnumInfo of some enum.

EnumInfo

Contains miscelaneous information about an enum.

NonExhaustive

A generic type for all ffi-safe non-exhaustive enums.

UnwrapEnumError

An error for a situation where a NonExhaustive<> could not be unwrapped into the enum because the discriminant wasn't valid in this context (likely because it is from a newer version of the library).

Traits

DeserializeEnum

Describes how a nonexhaustive enum is deserialized.

GetEnumInfo

Describes the discriminant of an enum,and its valid values.

GetNonExhaustive

Gets the type whose type layout is used to represent this enum in NonExhaustive<>.

GetVTable

Gets the vtable of NonExhaustive<Self,S,I>.

NonExhaustiveSharedOps

Used to abstract over the reference-ness of NonExhaustive<> inside UnwrapEnumError.

SerializeEnum

Describes how some enum is serialized.

ValidDiscriminant

Marker trait for types that abi_stable supports as enum discriminants.

Functions

assert_nonexhaustive

Asserts that the size and alignment of an enum are valid for its default storage.

Type Definitions

NonExhaustiveFor

The type of a NonExhaustive<> wrapping the enum E, using the E's default storage and interface.

NonExhaustiveWI

The type of a NonExhaustive<> wrapping the enum E, using the E's default storage and a custom interface.

NonExhaustiveWS

The type of a NonExhaustive<> wrapping the enum E, using a custom storage and the E's default interface.