pub enum Variants<FieldIdx, VariantIdx>Scalar, tag_encoding: TagEncoding<VariantIdx>, tag_field: usize, variants: IndexVec<VariantIdx, LayoutS<FieldIdx, VariantIdx>>, }, }
Single enum variants, structs/tuples, unions, and all non-ADTs.
Enum-likes with more than one inhabited variant: each variant comes with a discriminant (usually the same as the variant index but the user can assign explicit discriminant values). That discriminant is encoded as a tag on the machine. The layout of each variant is a struct, and they all have space reserved for the tag. For enums, the tag is the sole field of the layout.
Auto Trait Implementations§
impl<FieldIdx, VariantIdx> RefUnwindSafe for Variants<FieldIdx, VariantIdx>where
impl<FieldIdx, VariantIdx> UnwindSafe for Variants<FieldIdx, VariantIdx>where
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.