forma_ir/
fmir_constants.rs1pub const SIGNATURE: [u8; 8] = [137, 70, 77, 73, 13, 10, 26, 10];
4pub const HEADER_SIZE: usize = 24;
6pub const TABLE_PREFIX_SIZE: usize = 4;
8pub const SECTION_ENTRY_SIZE: usize = 12;
10pub const IR_VERSION: u16 = 3;
12pub const MAX_MODULE_SIZE: usize = 16777216;
14pub const MAX_SECTIONS: usize = 64;
16pub const MAX_STRINGS: usize = 1048576;
18pub const MAX_SLOTS: usize = 65535;
20pub const MAX_ISLANDS: usize = 4096;
22pub const MAX_SCHEMA_ITEMS: usize = 1024;
24pub const MAX_TYPE_DEPTH: usize = 16;
26pub const MAX_KEY_SEGMENTS: usize = 32;
28pub const MAX_CONTROL_DEPTH: usize = 64;
30pub const MAX_LIST_DEPTH: usize = 4;
32pub const MAX_CONTRACT_BYTES: usize = 1048576;
34pub const MAX_BINDING_RECORDS: usize = 65535;
36pub const MAX_VALUE_DEPTH: usize = 64;
38pub const MAX_PROP_PATH_SEGMENTS: usize = 1024;
40pub const MAX_CONSTANT_NODES: usize = 65535;
42pub const MAX_CONSTANT_DEPTH: usize = 1024;
44pub const MAX_CONSTANT_ARRAY_ELEMENTS: usize = 65535;
46pub const MAX_ISLAND_STATE_BYTES: usize = 1048576;
48pub const CRC_POLYNOMIAL: u32 = 3988292384;
50pub const CRC_CHECK_VALUE: u32 = 3421780262;
52pub const SECTION_BYTECODE: u16 = 1;
54pub const SECTION_STRINGS: u16 = 2;
56pub const SECTION_SLOTS: u16 = 3;
58pub const SECTION_ISLANDS: u16 = 4;
60pub const SECTION_PROPS_SCHEMA: u16 = 5;
62pub const SECTION_KEY_PATHS: u16 = 6;
64pub const SECTION_SOURCE_POSITIONS: u16 = 7;
66pub const SECTION_BUILD_IDENTITY: u16 = 8;
68pub const SECTION_DEPLOYMENT: u16 = 9;
70pub const SECTION_ISLAND_CONTRACTS: u16 = 10;
72pub const SECTION_REQUIRED: u16 = 1;
74pub const SLOT_TYPE_TEXT: u8 = 1;
76pub const SLOT_TYPE_BOOL: u8 = 2;
78pub const SLOT_TYPE_NUMBER: u8 = 3;
80pub const SLOT_TYPE_ARRAY: u8 = 4;
82pub const SLOT_TYPE_OBJECT: u8 = 5;
84pub const SLOT_SOURCE_SERVER: u8 = 0;
86pub const SLOT_SOURCE_CLIENT: u8 = 1;
88pub const TRIGGER_LOAD: u8 = 1;
90pub const TRIGGER_VISIBLE: u8 = 2;
92pub const TRIGGER_INTERACTION: u8 = 3;
94pub const TRIGGER_IDLE: u8 = 4;
96pub const SCHEMA_BOOLEAN: u8 = 1;
98pub const SCHEMA_STRING: u8 = 2;
100pub const SCHEMA_NUMBER: u8 = 3;
102pub const SCHEMA_DATE: u8 = 4;
104pub const SCHEMA_ENUM: u8 = 5;
106pub const SCHEMA_ARRAY: u8 = 6;
108pub const SCHEMA_OPTIONAL: u8 = 7;
110pub const SCHEMA_OBJECT: u8 = 8;
112pub const LOAD_101: &str = "LOAD-101";
114pub const LOAD_102: &str = "LOAD-102";
116pub const LOAD_103: &str = "LOAD-103";
118pub const LOAD_104: &str = "LOAD-104";
120pub const LOAD_105: &str = "LOAD-105";
122pub const LOAD_106: &str = "LOAD-106";
124pub const LOAD_107: &str = "LOAD-107";
126pub const LOAD_108: &str = "LOAD-108";
128pub const OP_OPEN_TAG: u8 = 1;
130pub const OP_CLOSE_TAG: u8 = 2;
132pub const OP_VOID_TAG: u8 = 3;
134pub const OP_TEXT: u8 = 4;
136pub const OP_DYN_TEXT: u8 = 5;
138pub const OP_DYN_ATTR: u8 = 6;
140pub const OP_SHOW_IF: u8 = 7;
142pub const OP_SHOW_ELSE: u8 = 8;
144pub const OP_LIST: u8 = 10;
146pub const OP_ISLAND_START: u8 = 11;
148pub const OP_ISLAND_END: u8 = 12;
150pub const OP_PROP: u8 = 18;
152pub const OP_COALESCE: u8 = 19;
154pub const OPCODE_OPERANDS: &[(u8, &str)] = &[
156 (1, "str_idx:u32 attr_count:u16 attrs:(key:u32,val:u32)[]"),
157 (2, "str_idx:u32"),
158 (3, "str_idx:u32 attr_count:u16 attrs:(key:u32,val:u32)[]"),
159 (4, "str_idx:u32"),
160 (5, "slot_id:u16 marker_id:u16"),
161 (6, "attr_str_idx:u32 slot_id:u16"),
162 (7, "slot_id:u16 then_len:u32 else_len:u32 then:bytes SHOW_ELSE else:bytes"),
163 (8, ""),
164 (10, "slot_id:u16 item_slot_id:u16 body_len:u32 body:bytes"),
165 (11, "island_id:u16"),
166 (12, "island_id:u16"),
167 (18, "src_slot_id:u16 prop_str_idx:u32 target_slot_id:u16"),
168 (19, "source_slot:u16 fallback_slot:u16 destination_slot:u16"),
169];
170pub const RESERVED_OPCODES: [u8; 6] = [9, 13, 14, 15, 16, 17];