wasmtime_environ/gc/
null.rs1use super::*;
4
5pub const HEADER_SIZE: u32 = 8;
7
8pub const HEADER_ALIGN: u32 = 8;
10
11pub const ARRAY_LENGTH_OFFSET: u32 = HEADER_SIZE;
13
14pub const EXCEPTION_TAG_INSTANCE_OFFSET: u32 = HEADER_SIZE;
16
17pub const EXCEPTION_TAG_DEFINED_OFFSET: u32 = HEADER_SIZE + 4;
19
20#[derive(Default)]
22pub struct NullTypeLayouts;
23
24impl GcTypeLayouts for NullTypeLayouts {
25 fn array_length_field_offset(&self) -> u32 {
26 ARRAY_LENGTH_OFFSET
27 }
28
29 fn exception_tag_instance_offset(&self) -> u32 {
30 EXCEPTION_TAG_INSTANCE_OFFSET
31 }
32
33 fn exception_tag_defined_offset(&self) -> u32 {
34 EXCEPTION_TAG_DEFINED_OFFSET
35 }
36
37 fn array_layout(&self, ty: &WasmArrayType) -> GcArrayLayout {
38 common_array_layout(ty, HEADER_SIZE, HEADER_ALIGN, ARRAY_LENGTH_OFFSET)
39 }
40
41 fn struct_layout(&self, ty: &WasmStructType) -> GcStructLayout {
42 common_struct_layout(ty, HEADER_SIZE, HEADER_ALIGN)
43 }
44
45 fn exn_layout(&self, ty: &WasmExnType) -> GcStructLayout {
46 common_exn_layout(ty, HEADER_SIZE, HEADER_ALIGN)
47 }
48}