From 26ab534795dcced8ae6e7b4898b50748b73c930e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 25 Jul 2026 19:09:59 +0100 Subject: Derive Hash for generated Rust types --- examples/01-struct/output/rust/src/point.rs | 4 +-- examples/02-sum/output/rust/src/shapes.rs | 6 ++-- .../output/rust/src/arithmetic.rs | 6 ++-- examples/04-enum/output/rust/src/numbers.rs | 2 +- examples/05-list/output/rust/src/point.rs | 4 +-- .../06-native-type/output/rust/src/gen/point.rs | 2 +- examples/06-native-type/output/rust/src/point.rs | 2 +- .../output/rust/src/main.rs | 2 +- .../output/rust/src/point.rs | 2 +- examples/08-shared/output/rust/src/point.rs | 4 +-- .../09-custom-code/output/rust/src/gen/shapes.rs | 2 +- examples/10-imports/output/rust/src/line.rs | 2 +- examples/10-imports/output/rust/src/point.rs | 2 +- .../11-transient-0/output/rust/src/gen/data.rs | 32 +++++++++++----------- 14 files changed, 36 insertions(+), 36 deletions(-) (limited to 'examples') 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:: 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::), Const(crate::arithmetic::Const), @@ -18,13 +18,13 @@ impl ::std::convert::From:: 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::, } -#[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::, pub end: ::std::sync::Arc::, } /// 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::, } -#[derive(Debug, PartialEq)] +#[derive(Debug, Hash, PartialEq)] pub struct StructWithOption { pub a: ::std::option::Option::<::core::primitive::i64>, pub b: ::std::option::Option::, } -#[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:: 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::>, } -#[derive(Debug, PartialEq)] +#[derive(Debug, Hash, PartialEq)] pub struct StructWithDifferentSharedTypes { pub a: ::std::sync::Arc::, pub b: ::std::sync::Arc::, pub c: ::std::sync::Arc::, } -#[derive(Debug, PartialEq)] +#[derive(Debug, Hash, PartialEq)] pub struct StructWithSharedSumAndVariant { pub a: ::std::sync::Arc::, pub b: ::std::sync::Arc::, -- cgit v1.2.3