code_gen/rust/var/
var_init.rs1use crate::rust::{Var, WithVar};
2use crate::{CodeBuffer, Expression, Statement};
3
4pub struct VarInit {
6 var: Var,
7 expression: Box<dyn Expression>,
8}
9
10impl WithVar for VarInit {
11 fn var(&self) -> &Var {
12 &self.var
13 }
14}
15
16impl<V: Into<Var>, E: 'static + Expression> From<(V, E)> for VarInit {
17 fn from(t: (V, E)) -> Self {
18 Self {
19 var: t.0.into(),
20 expression: Box::new(t.1),
21 }
22 }
23}
24
25impl Statement for VarInit {
26 fn write(&self, b: &mut CodeBuffer, level: usize) {
27 b.indent(level);
28 b.write("let ");
29 self.write_var(b);
30 b.write(" = ");
31 self.expression.write(b);
32 b.write(";");
33 b.end_line();
34 }
35}