Skip to main content

## codegen_tag_value

# Function codegen_tag_value

Source

    pub(super) fn codegen_tag_value<'tcx, V>(
        cx: &impl CodegenMethods<'tcx, Value = V>,
        variant_index: VariantIdx,
        layout: TyAndLayout<'tcx>,
    ) -> Result<Option<(FieldIdx, V)>, UninhabitedVariantError>

Expand description

Calculates the value that needs to be stored to mark the discriminant.

This might be `None` for a `struct` or a niched variant (like `Some(&3)`).

If it’s `Some`, it returns the value to store and the field in which to store it. Note that this value is not the same as the discriminant, in general, as it might be a niche value or have a different size.

It might also be an `Err` because the variant is uninhabited.