pub struct GcStructLayout {
pub size: u32,
pub align: u32,
pub fields: Vec<GcStructLayoutField>,
pub is_exception: bool,
}Expand description
The layout for a GC-managed struct type or exception type.
This layout is only valid for use with the GC runtime that created it. It is not valid to use one GC runtime’s layout with another GC runtime, doing so is memory safe but will lead to general incorrectness like panics and wrong results.
All offsets are from the start of the object; that is, the size of the GC header (for example) is included in the offset.
Note that these are reused between structs and exceptions to avoid
unnecessary code duplication. In both cases, the objects are
tuples of typed fields with a certain size. The only difference in
practice is that an exception object also carries a tag reference
(at a fixed offset as per GcTypeLayouts::exception_tag_offset).
Fields§
§size: u32The size (in bytes) of this struct.
align: u32The alignment (in bytes) of this struct.
fields: Vec<GcStructLayoutField>The fields of this struct. The ith entry contains information about
the ith struct field’s layout.
is_exception: boolWhether this is an exception object layout.
Implementations§
Trait Implementations§
Source§impl Clone for GcStructLayout
impl Clone for GcStructLayout
Source§fn clone(&self) -> GcStructLayout
fn clone(&self) -> GcStructLayout
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GcStructLayout
impl Debug for GcStructLayout
Source§impl From<GcStructLayout> for GcLayout
impl From<GcStructLayout> for GcLayout
Source§fn from(layout: GcStructLayout) -> Self
fn from(layout: GcStructLayout) -> Self
Auto Trait Implementations§
impl Freeze for GcStructLayout
impl RefUnwindSafe for GcStructLayout
impl Send for GcStructLayout
impl Sync for GcStructLayout
impl Unpin for GcStructLayout
impl UnwindSafe for GcStructLayout
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)