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: u32
The size (in bytes) of this struct.
align: u32
The alignment (in bytes) of this struct.
fields: Vec<GcStructLayoutField>
The fields of this struct. The i
th entry contains information about
the i
th struct field’s layout.
is_exception: bool
Whether 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 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more