plotnik_bytecode/bytecode/
sections.rs1use super::ids::StringId;
4
5#[derive(Clone, Copy, Debug, Default)]
11#[repr(C)]
12pub struct Slice {
13 pub ptr: u16,
14 pub len: u16,
15}
16
17impl Slice {
18 #[inline]
19 pub fn range(self) -> std::ops::Range<usize> {
20 let start = self.ptr as usize;
21 start..start + self.len as usize
22 }
23}
24
25#[derive(Clone, Copy, Debug)]
27#[repr(C)]
28pub struct NodeSymbol {
29 pub id: u16,
31 pub name: StringId,
33}
34
35impl NodeSymbol {
36 pub fn new(id: u16, name: StringId) -> Self {
38 Self { id, name }
39 }
40}
41
42#[derive(Clone, Copy, Debug)]
44#[repr(C)]
45pub struct FieldSymbol {
46 pub id: u16,
48 pub name: StringId,
50}
51
52impl FieldSymbol {
53 pub fn new(id: u16, name: StringId) -> Self {
55 Self { id, name }
56 }
57}
58
59#[derive(Clone, Copy, Debug)]
61#[repr(C)]
62pub struct TriviaEntry {
63 pub node_type: u16,
64}
65
66impl TriviaEntry {
67 pub fn new(node_type: u16) -> Self {
69 Self { node_type }
70 }
71}