//! The LLVM IR generator loop. /// The LLVM IR generator loop. #[derive(Debug, Clone)] pub struct Loop<'ctx> { /// The loop current block. pub body_block: inkwell::basic_block::BasicBlock<'ctx>, /// The increment block before the body. pub continue_block: inkwell::basic_block::BasicBlock<'ctx>, /// The join block after the body. pub join_block: inkwell::basic_block::BasicBlock<'ctx>, } impl<'ctx> Loop<'ctx> { /// A shortcut constructor. pub fn new( body_block: inkwell::basic_block::BasicBlock<'ctx>, continue_block: inkwell::basic_block::BasicBlock<'ctx>, join_block: inkwell::basic_block::BasicBlock<'ctx>, ) -> Self { Self { body_block, continue_block, join_block, } } }