pub struct Layout<'a>(pub Interned<'a, LayoutS>);
Tuple Fields§
§0: Interned<'a, LayoutS>
Implementations§
source§impl<'a> Layout<'a>
impl<'a> Layout<'a>
pub fn fields(self) -> &'a FieldsShape
pub fn variants(self) -> &'a Variants
pub fn abi(self) -> Abi
pub fn largest_niche(self) -> Option<Niche>
pub fn align(self) -> AbiAndPrefAlign
pub fn size(self) -> Size
pub fn max_repr_align(self) -> Option<Align>
pub fn unadjusted_abi_align(self) -> Align
sourcepub fn is_pointer_like(self, data_layout: &TargetDataLayout) -> bool
pub fn is_pointer_like(self, data_layout: &TargetDataLayout) -> bool
Whether the layout is from a type that implements std::marker::PointerLike
.
Currently, that means that the type is pointer-sized, pointer-aligned, and has a scalar ABI.
Trait Implementations§
source§impl<'a, __CTX> HashStable<__CTX> for Layout<'a>where
__CTX: HashStableContext,
impl<'a, __CTX> HashStable<__CTX> for Layout<'a>where __CTX: HashStableContext,
fn hash_stable(&self, __hcx: &mut __CTX, __hasher: &mut StableHasher)
source§impl<'a> PartialEq<Layout<'a>> for Layout<'a>
impl<'a> PartialEq<Layout<'a>> for Layout<'a>
impl<'a> Copy for Layout<'a>
impl<'a> Eq for Layout<'a>
impl<'a> StructuralEq for Layout<'a>
impl<'a> StructuralPartialEq for Layout<'a>
Auto Trait Implementations§
impl<'a> RefUnwindSafe for Layout<'a>
impl<'a> Send for Layout<'a>
impl<'a> Sync for Layout<'a>
impl<'a> Unpin for Layout<'a>
impl<'a> UnwindSafe for Layout<'a>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes