luaur_bytecode/records/
bc_block.rs1use 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}