Skip to main content

luaur_bytecode/records/
bc_block.rs

1use crate::records::bc_op::BcOp;
2use crate::type_aliases::bc_edges::BcEdges;
3use alloc::collections::VecDeque;
4
5#[derive(Debug, Clone, PartialEq, Eq)]
6pub struct BcBlock {
7    pub flags: u8,
8    pub useCount: u32,
9    pub ops: VecDeque<BcOp>,
10    pub successors: BcEdges,
11    pub predecessors: BcEdges,
12    pub sortkey: u32,
13    pub chainkey: u32,
14    pub startpc: u32,
15}
16
17impl BcBlock {
18    pub const K_BLOCK_NO_START_PC: u32 = !0u32;
19}
20
21impl Default for BcBlock {
22    fn default() -> Self {
23        Self {
24            flags: 0,
25            useCount: 0,
26            ops: VecDeque::new(),
27            successors: BcEdges::default(),
28            predecessors: BcEdges::default(),
29            sortkey: !0u32,
30            chainkey: 0,
31            startpc: Self::K_BLOCK_NO_START_PC,
32        }
33    }
34}