Skip to main content

luaur_code_gen/records/
idf_context.rs

1use crate::records::block_and_ordering::BlockAndOrdering;
2use crate::records::block_ordering::BlockOrdering;
3use crate::records::idf_visit_marks::IdfVisitMarks;
4use alloc::collections::BinaryHeap;
5use alloc::vec::Vec;
6
7#[derive(Debug, Clone, Default)]
8#[repr(C)]
9pub struct IdfContext {
10    pub queue: BinaryHeap<BlockAndOrdering>,
11    pub worklist: Vec<u32>,
12    pub visits: Vec<IdfVisitMarks>,
13    pub idf: Vec<u32>,
14}
15
16impl IdfContext {
17    #[allow(dead_code)]
18    fn block_and_ordering_field_shape(block_idx: u32, ordering: BlockOrdering) -> BlockAndOrdering {
19        BlockAndOrdering {
20            block_idx: block_idx,
21            ordering: ordering,
22        }
23    }
24
25    #[allow(dead_code)]
26    fn idf_visit_marks_field_shape(seen_in_queue: bool, seen_in_worklist: bool) -> IdfVisitMarks {
27        IdfVisitMarks {
28            seen_in_queue: seen_in_queue,
29            seen_in_worklist: seen_in_worklist,
30        }
31    }
32}