1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#[derive(Debug, Clone, PartialEq)]
pub enum HIR {
Lit(String),
Expr(Box<syn::Expr>),
Safe(Box<syn::Expr>),
Each(Box<Each>),
IfElse(Box<IfElse>),
Local(Box<syn::Local>),
}
#[derive(Debug, Clone, PartialEq)]
pub struct IfElse {
pub ifs: (syn::Expr, Vec<HIR>),
pub if_else: Vec<(syn::Expr, Vec<HIR>)>,
pub els: Option<Vec<HIR>>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Each {
pub args: syn::Expr,
pub body: Vec<HIR>,
pub expr: syn::Expr,
}