summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2024-04-24 23:43:54 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2024-04-25 00:20:55 +0200
commitb3940437e9541ca7d3345d54051a3d3d9908cbb3 (patch)
treeb5bc212335f2e6fa6b87e075c27dbc7cc90d5947
parente9107ac8101b1d8211737327216c0af1cbaa81ab (diff)
downloadrebel-b3940437e9541ca7d3345d54051a3d3d9908cbb3.tar
rebel-b3940437e9541ca7d3345d54051a3d3d9908cbb3.zip
rebel-parse: ast: derive Eq for all types
-rw-r--r--crates/rebel-parse/src/ast.rs22
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,
}