code_gen/rust/var/
with_var_params.rs1use crate::rust::Var;
2use crate::{CodeBuffer, Expression};
3
4pub trait WithVarParams: Sized {
6 fn params(&self) -> &[Var];
8
9 fn add_param<V>(&mut self, param: V)
11 where
12 V: Into<Var>;
13
14 fn with_param<V>(mut self, param: V) -> Self
16 where
17 V: Into<Var>,
18 {
19 self.add_param(param);
20 self
21 }
22
23 fn write_params(&self, b: &mut CodeBuffer) {
25 if let Some((first, rest)) = self.params().split_first() {
26 first.write(b);
27 for param in rest {
28 b.write(", ");
29 param.write(b);
30 }
31 }
32 }
33}