xenon_codegen/
loop_statement.rs

1use core::fmt;
2
3use crate::statement::Statement;
4
5#[derive(Debug, Clone, Default)]
6pub struct LoopStatement {
7    pub body: Box<Statement>,
8}
9impl LoopStatement {
10    pub fn new(body: Statement) -> LoopStatement {
11        LoopStatement {
12            body: Box::new(body),
13        }
14    }
15
16    pub fn is_valid(&self) -> bool {
17        if !self.body.is_valid() {
18            return false;
19        }
20        true
21    }
22}
23impl fmt::Display for LoopStatement {
24    fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
25        match write!(fmt, "loop {}", self.body) {
26            Ok(_) => (),
27            Err(e) => return Err(e),
28        }
29        Ok(())
30    }
31}