code_gen/rust/control/loops/
loop.rs

1use crate::{CodeBuffer, Statement, WithStatements};
2
3/// A forever `loop` statement.
4#[derive(Default)]
5pub struct Loop {
6    statements: Vec<Box<dyn Statement>>,
7}
8
9impl WithStatements for Loop {
10    fn statements(&self) -> &[Box<dyn Statement>] {
11        self.statements.as_slice()
12    }
13
14    fn add_boxed_statement(&mut self, statement: Box<dyn Statement>) {
15        self.statements.push(statement);
16    }
17}
18
19impl Statement for Loop {
20    fn write(&self, b: &mut CodeBuffer, level: usize) {
21        b.indent(level);
22        b.write("loops ");
23        self.write_curly_statement_block(b, level);
24        b.end_line();
25    }
26}