diff options
Diffstat (limited to 'crates/rebel-parse/src/ast.rs')
-rw-r--r-- | crates/rebel-parse/src/ast.rs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/crates/rebel-parse/src/ast.rs b/crates/rebel-parse/src/ast.rs index 9eed70a..c7ddb7a 100644 --- a/crates/rebel-parse/src/ast.rs +++ b/crates/rebel-parse/src/ast.rs @@ -1,6 +1,6 @@ pub type Recipe<'a> = Vec<RecipeStmt<'a>>; -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum RecipeStmt<'a> { BodyStmt(BodyStmt<'a>), Fetch { @@ -16,7 +16,7 @@ pub enum RecipeStmt<'a> { pub type Body<'a> = Vec<BodyStmt<'a>>; -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum BodyStmt<'a> { Assign { left: Box<TypedExpr<'a>>, @@ -35,7 +35,7 @@ impl<'a> BodyStmt<'a> { } } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum Expr<'a> { Binary { left: Box<Expr<'a>>, @@ -118,19 +118,19 @@ impl<'a> Expr<'a> { } } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct TypedExpr<'a> { pub expr: Expr<'a>, pub typ: Option<Expr<'a>>, } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct FuncParam<'a> { pub name: Ident<'a>, pub typ: Expr<'a>, } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum Literal<'a> { Unit, Boolean(bool), @@ -158,19 +158,19 @@ impl<'a> Literal<'a> { } } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct MapEntry<'a> { pub key: &'a str, pub value: Expr<'a>, } -#[derive(Debug, Clone, Copy)] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum OpUnary { Not, Neg, } -#[derive(Debug, Clone, Copy)] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum OpBinary { Add, Sub, @@ -187,12 +187,12 @@ pub enum OpBinary { Gt, } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct Path<'a> { pub components: Vec<Ident<'a>>, } -#[derive(Debug, Clone, Copy)] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] pub struct Ident<'a> { pub name: &'a str, } |