diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2024-04-24 23:43:54 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2024-04-25 00:20:55 +0200 |
commit | b3940437e9541ca7d3345d54051a3d3d9908cbb3 (patch) | |
tree | b5bc212335f2e6fa6b87e075c27dbc7cc90d5947 | |
parent | e9107ac8101b1d8211737327216c0af1cbaa81ab (diff) | |
download | rebel-b3940437e9541ca7d3345d54051a3d3d9908cbb3.tar rebel-b3940437e9541ca7d3345d54051a3d3d9908cbb3.zip |
rebel-parse: ast: derive Eq for all types
-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, } |