[][src]Struct rustc_target::abi::Layout

pub struct Layout {
    pub fields: FieldsShape,
    pub variants: Variants,
    pub abi: Abi,
    pub largest_niche: Option<Niche>,
    pub align: AbiAndPrefAlign,
    pub size: Size,


fields: FieldsShape

Says where the fields are located within the layout.

variants: Variants

Encodes information about multi-variant layouts. Even with Multiple variants, a layout still has its own fields! Those are then shared between all variants. One of them will be the discriminant, but e.g. generators can have more.

To access all fields of this layout, both fields and the fields of the active variant must be taken into account.

abi: Abi

The abi defines how this data is passed between functions, and it defines value restrictions via valid_range.

Note that this is entirely orthogonal to the recursive structure defined by variants and fields; for example, ManuallyDrop<Result<isize, isize>> has Abi::ScalarPair! So, even with non-Aggregate abi, fields and variants have to be taken into account to find all fields of this layout.

largest_niche: Option<Niche>

The leaf scalar with the largest number of invalid values (i.e. outside of its valid_range), if it exists.

align: AbiAndPrefAlignsize: Size


impl Layout[src]

pub fn scalar<C: HasDataLayout>(cx: &C, scalar: Scalar) -> Self[src]

Trait Implementations

impl Debug for Layout[src]

impl Eq for Layout[src]

impl Hash for Layout[src]

impl<__CTX> HashStable<__CTX> for Layout where
    __CTX: HashStableContext

impl PartialEq<Layout> for Layout[src]

impl StructuralEq for Layout[src]

impl StructuralPartialEq for Layout[src]

Auto Trait Implementations

impl RefUnwindSafe for Layout[src]

impl Send for Layout[src]

impl Sync for Layout[src]

impl Unpin for Layout[src]

impl UnwindSafe for Layout[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 

impl<T> MaybeResult<T> for T[src]

type Error = !

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.