Skip to main content

luaur_code_gen/functions/
append_block_set.rs

1use crate::functions::append::append;
2use crate::functions::to_string_ir_dump_alt_c::to_string_ir_to_string_context_ir_block_u32;
3use crate::records::block_iterator_wrapper::BlockIteratorWrapper;
4use crate::records::ir_to_string_context::IrToStringContext;
5
6pub fn append_block_set(ctx: &mut IrToStringContext, blocks: BlockIteratorWrapper) {
7    let mut comma = false;
8
9    // Iterate using the wrapper's raw pointer range: [begin, end)
10    let mut it = blocks.begin();
11    let end = blocks.end();
12
13    while it < end {
14        let target = unsafe { *it };
15        it = unsafe { it.add(1) };
16
17        if comma {
18            append(&mut ctx.result, format_args!(", "));
19        }
20        comma = true;
21
22        let block: &crate::records::ir_block::IrBlock = &ctx.blocks[target as usize];
23        to_string_ir_to_string_context_ir_block_u32(ctx, block, target);
24    }
25}