use crate::{CodeBuffer, Statement};
pub trait WithFalseStatements {
fn false_statements(&self) -> &[Box<dyn Statement>];
fn with_false_statement<S>(self, false_statement: S) -> Self
where
S: 'static + Statement;
fn add_false_statement<S>(&mut self, false_statement: S)
where
S: 'static + Statement;
fn write_false_statements(&self, b: &mut CodeBuffer, level: usize) {
for statement in self.false_statements() {
statement.write(b, level);
}
}
fn write_false_curly_statement_block(&self, b: &mut CodeBuffer, level: usize) {
if self.false_statements().is_empty() {
b.write("{}");
} else {
b.write("{");
b.end_line();
self.write_false_statements(b, level + 1);
b.indent(level);
b.write("}");
}
}
}