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§
Sourcetype Discriminant
type Discriminant
The data-less discriminant enum for this enum’s split storage.
Required Methods§
Sourcefn decompose(self) -> (Self::Discriminant, ManuallyDrop<Self::Payload>)
fn decompose(self) -> (Self::Discriminant, ManuallyDrop<Self::Payload>)
Split the enum’s discriminant and payload for separate storage.