summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/01-struct/output/rust/src/point.rs4
-rw-r--r--examples/02-sum/output/rust/src/shapes.rs6
-rw-r--r--examples/03-inductive-data-types/output/rust/src/arithmetic.rs6
-rw-r--r--examples/04-enum/output/rust/src/numbers.rs2
-rw-r--r--examples/05-list/output/rust/src/point.rs4
-rw-r--r--examples/06-native-type/output/rust/src/gen/point.rs2
-rw-r--r--examples/06-native-type/output/rust/src/point.rs2
-rw-r--r--examples/07-native-type-custom-config/output/rust/src/main.rs2
-rw-r--r--examples/07-native-type-custom-config/output/rust/src/point.rs2
-rw-r--r--examples/08-shared/output/rust/src/point.rs4
-rw-r--r--examples/09-custom-code/output/rust/src/gen/shapes.rs2
-rw-r--r--examples/10-imports/output/rust/src/line.rs2
-rw-r--r--examples/10-imports/output/rust/src/point.rs2
-rw-r--r--examples/11-transient-0/output/rust/src/gen/data.rs32
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java2
15 files changed, 37 insertions, 37 deletions
diff --git a/examples/01-struct/output/rust/src/point.rs b/examples/01-struct/output/rust/src/point.rs
index 30b661f..6a90a6e 100644
--- a/examples/01-struct/output/rust/src/point.rs
+++ b/examples/01-struct/output/rust/src/point.rs
@@ -1,14 +1,14 @@
// Generated by hobgoblin.
/// A straight line from one point to another.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Line {
pub start: crate::point::Point,
pub end: crate::point::Point,
}
/// A 2D point.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Point {
pub x: ::core::primitive::i32,
pub y: ::core::primitive::i32,
diff --git a/examples/02-sum/output/rust/src/shapes.rs b/examples/02-sum/output/rust/src/shapes.rs
index 1d2d00f..a0a9b7f 100644
--- a/examples/02-sum/output/rust/src/shapes.rs
+++ b/examples/02-sum/output/rust/src/shapes.rs
@@ -1,7 +1,7 @@
// Generated by hobgoblin.
/// A 2D shape.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub enum Shape {
Rectangle(crate::shapes::Rectangle),
Triangle(crate::shapes::Triangle),
@@ -19,13 +19,13 @@ impl ::std::convert::From::<crate::shapes::Triangle> for crate::shapes::Shape {
}
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Rectangle {
pub width: ::core::primitive::i32,
pub height: ::core::primitive::i32,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Triangle {
pub width: ::core::primitive::i32,
pub height: ::core::primitive::i32,
diff --git a/examples/03-inductive-data-types/output/rust/src/arithmetic.rs b/examples/03-inductive-data-types/output/rust/src/arithmetic.rs
index 9461bc4..121c355 100644
--- a/examples/03-inductive-data-types/output/rust/src/arithmetic.rs
+++ b/examples/03-inductive-data-types/output/rust/src/arithmetic.rs
@@ -1,6 +1,6 @@
// Generated by hobgoblin.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub enum Expression {
Add(::std::boxed::Box::<crate::arithmetic::Add>),
Const(crate::arithmetic::Const),
@@ -18,13 +18,13 @@ impl ::std::convert::From::<crate::arithmetic::Const> for crate::arithmetic::Exp
}
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Add {
pub left: crate::arithmetic::Expression,
pub right: crate::arithmetic::Expression,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Const {
pub value: ::core::primitive::i32,
}
diff --git a/examples/04-enum/output/rust/src/numbers.rs b/examples/04-enum/output/rust/src/numbers.rs
index a4dfa4a..1c62012 100644
--- a/examples/04-enum/output/rust/src/numbers.rs
+++ b/examples/04-enum/output/rust/src/numbers.rs
@@ -1,7 +1,7 @@
// Generated by hobgoblin.
/// A small number.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub enum SmallNumber {
Zero,
One,
diff --git a/examples/05-list/output/rust/src/point.rs b/examples/05-list/output/rust/src/point.rs
index d80a831..2625f9f 100644
--- a/examples/05-list/output/rust/src/point.rs
+++ b/examples/05-list/output/rust/src/point.rs
@@ -1,11 +1,11 @@
// Generated by hobgoblin.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Path {
pub points: ::std::vec::Vec::<crate::point::Point>,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Point {
pub x: ::core::primitive::i32,
pub y: ::core::primitive::i32,
diff --git a/examples/06-native-type/output/rust/src/gen/point.rs b/examples/06-native-type/output/rust/src/gen/point.rs
index e29c94b..d383b15 100644
--- a/examples/06-native-type/output/rust/src/gen/point.rs
+++ b/examples/06-native-type/output/rust/src/gen/point.rs
@@ -1,7 +1,7 @@
// Generated by hobgoblin.
/// A straight line from one point to another.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Line {
pub start: crate::point::Point,
pub end: crate::point::Point,
diff --git a/examples/06-native-type/output/rust/src/point.rs b/examples/06-native-type/output/rust/src/point.rs
index 8d7c0bf..c5b73d7 100644
--- a/examples/06-native-type/output/rust/src/point.rs
+++ b/examples/06-native-type/output/rust/src/point.rs
@@ -1,4 +1,4 @@
include!("gen/point.rs");
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Point(pub i32, pub i32);
diff --git a/examples/07-native-type-custom-config/output/rust/src/main.rs b/examples/07-native-type-custom-config/output/rust/src/main.rs
index 0300d5a..10dc437 100644
--- a/examples/07-native-type-custom-config/output/rust/src/main.rs
+++ b/examples/07-native-type-custom-config/output/rust/src/main.rs
@@ -1,6 +1,6 @@
mod point;
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
struct Point(i32, i32);
#[cfg(test)]
diff --git a/examples/07-native-type-custom-config/output/rust/src/point.rs b/examples/07-native-type-custom-config/output/rust/src/point.rs
index 74ac8cd..6ab4330 100644
--- a/examples/07-native-type-custom-config/output/rust/src/point.rs
+++ b/examples/07-native-type-custom-config/output/rust/src/point.rs
@@ -1,7 +1,7 @@
// Generated by hobgoblin.
/// A straight line from one point to another.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Line {
pub start: crate::Point,
pub end: crate::Point,
diff --git a/examples/08-shared/output/rust/src/point.rs b/examples/08-shared/output/rust/src/point.rs
index ef7593b..dea7678 100644
--- a/examples/08-shared/output/rust/src/point.rs
+++ b/examples/08-shared/output/rust/src/point.rs
@@ -1,14 +1,14 @@
// Generated by hobgoblin.
/// A straight line from one point to another.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Line {
pub start: ::std::sync::Arc::<crate::point::Point>,
pub end: ::std::sync::Arc::<crate::point::Point>,
}
/// A 2D point.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Point {
pub x: ::core::primitive::i32,
pub y: ::core::primitive::i32,
diff --git a/examples/09-custom-code/output/rust/src/gen/shapes.rs b/examples/09-custom-code/output/rust/src/gen/shapes.rs
index c5f8af5..815db2a 100644
--- a/examples/09-custom-code/output/rust/src/gen/shapes.rs
+++ b/examples/09-custom-code/output/rust/src/gen/shapes.rs
@@ -1,6 +1,6 @@
// Generated by hobgoblin.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Square {
pub width: ::core::primitive::i32,
}
diff --git a/examples/10-imports/output/rust/src/line.rs b/examples/10-imports/output/rust/src/line.rs
index e29c94b..d383b15 100644
--- a/examples/10-imports/output/rust/src/line.rs
+++ b/examples/10-imports/output/rust/src/line.rs
@@ -1,7 +1,7 @@
// Generated by hobgoblin.
/// A straight line from one point to another.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Line {
pub start: crate::point::Point,
pub end: crate::point::Point,
diff --git a/examples/10-imports/output/rust/src/point.rs b/examples/10-imports/output/rust/src/point.rs
index a0ca4c7..943331f 100644
--- a/examples/10-imports/output/rust/src/point.rs
+++ b/examples/10-imports/output/rust/src/point.rs
@@ -1,7 +1,7 @@
// Generated by hobgoblin.
/// A 2D point.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct Point {
pub x: ::core::primitive::i32,
pub y: ::core::primitive::i32,
diff --git a/examples/11-transient-0/output/rust/src/gen/data.rs b/examples/11-transient-0/output/rust/src/gen/data.rs
index cdc5aab..4ec0524 100644
--- a/examples/11-transient-0/output/rust/src/gen/data.rs
+++ b/examples/11-transient-0/output/rust/src/gen/data.rs
@@ -1,61 +1,61 @@
// Generated by hobgoblin.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct StructWithBool {
pub a: ::core::primitive::bool,
pub b: ::core::primitive::bool,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct StructWithInt32 {
pub a: ::core::primitive::i32,
pub b: ::core::primitive::i32,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct StructWithInt64 {
pub a: ::core::primitive::i64,
pub b: ::core::primitive::i64,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct StructWithString {
pub a: ::std::string::String,
pub b: ::std::string::String,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct StructWithStruct {
pub inner: crate::data::StructWithInt32,
pub c: ::core::primitive::i32,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct StructWithList {
pub a: ::std::vec::Vec::<::core::primitive::i64>,
pub b: ::std::vec::Vec::<crate::data::StructWithInt32>,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct StructWithOption {
pub a: ::std::option::Option::<::core::primitive::i64>,
pub b: ::std::option::Option::<crate::data::StructWithInt32>,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub enum EnumWithVariants {
Zero,
One,
Two,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct StructWithEnum {
pub inner: crate::data::EnumWithVariants,
pub c: ::core::primitive::i32,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub enum SumWithVariants {
VariantOne(crate::data::VariantOne),
VariantTwo(crate::data::VariantTwo),
@@ -73,35 +73,35 @@ impl ::std::convert::From::<crate::data::VariantTwo> for crate::data::SumWithVar
}
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct VariantOne {
pub a: ::core::primitive::i32,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct VariantTwo {
pub a: ::core::primitive::i64,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct StructWithSum {
pub inner: crate::data::SumWithVariants,
pub b: ::core::primitive::i32,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct StructWithListOfShared {
pub inner: ::std::vec::Vec::<::std::sync::Arc::<crate::data::StructWithInt32>>,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct StructWithDifferentSharedTypes {
pub a: ::std::sync::Arc::<crate::data::StructWithInt32>,
pub b: ::std::sync::Arc::<crate::data::StructWithInt64>,
pub c: ::std::sync::Arc::<crate::data::StructWithInt32>,
}
-#[derive(Debug, PartialEq)]
+#[derive(Debug, Hash, PartialEq)]
pub struct StructWithSharedSumAndVariant {
pub a: ::std::sync::Arc::<crate::data::SumWithVariants>,
pub b: ::std::sync::Arc::<crate::data::VariantOne>,
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java
index c6cf7c4..42e46cb 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java
@@ -115,7 +115,7 @@ public class RustTypesGenerator implements Generator {
private static final RustOuterAttribute DERIVE_ATTRIBUTE = new RustOuterAttribute(
RustPath.of("derive"),
- Optional.of("(Debug, PartialEq)")
+ Optional.of("(Debug, Hash, PartialEq)")
);
private List<RustItem> generateStructDefinition(