Trait SplitStorage

Source
pub unsafe trait SplitStorage {
    type Discriminant;
    type Payload;

    // Required method
    fn decompose(self) -> (Self::Discriminant, ManuallyDrop<Self::Payload>);
}
Expand description

A trait for enums which can be decomposed into a separate discriminant and data payload.

§Safety

Do not implement this manually. Use the derive macro provided by this crate.

Required Associated Types§

Source

type Discriminant

The data-less discriminant enum for this enum’s split storage.

Source

type Payload

The payload union for this enum’s split storage.

Required Methods§

Source

fn decompose(self) -> (Self::Discriminant, ManuallyDrop<Self::Payload>)

Split the enum’s discriminant and payload for separate storage.

Implementors§