Struct SizeAlign
pub struct SizeAlign { /* private fields */ }Expand description
Collect size and alignment for sub-elements of a structure
Implementations§
§impl SizeAlign
impl SizeAlign
pub fn fill(&mut self, resolve: &Resolve)
pub fn size(&self, ty: &Type) -> ArchitectureSize
pub fn align(&self, ty: &Type) -> Alignment
pub fn field_offsets<'a>( &self, types: impl IntoIterator<Item = &'a Type>, ) -> Vec<(ArchitectureSize, &'a Type)>
pub fn payload_offset<'a>( &self, tag: Int, cases: impl IntoIterator<Item = Option<&'a Type>>, ) -> ArchitectureSize
pub fn record<'a>( &self, types: impl IntoIterator<Item = &'a Type>, ) -> ElementInfo
pub fn params<'a>( &self, types: impl IntoIterator<Item = &'a Type>, ) -> ElementInfo
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SizeAlign
impl RefUnwindSafe for SizeAlign
impl Send for SizeAlign
impl Sync for SizeAlign
impl Unpin for SizeAlign
impl UnsafeUnpin for SizeAlign
impl UnwindSafe for SizeAlign
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more