summaryrefslogtreecommitdiff
path: root/examples/04-sum/output/rust/src/shapes.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/04-sum/output/rust/src/shapes.rs')
-rw-r--r--examples/04-sum/output/rust/src/shapes.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/examples/04-sum/output/rust/src/shapes.rs b/examples/04-sum/output/rust/src/shapes.rs
new file mode 100644
index 0000000..2712e41
--- /dev/null
+++ b/examples/04-sum/output/rust/src/shapes.rs
@@ -0,0 +1,32 @@
+// Generated by hobgoblin.
+
+/// A 2D shape.
+#[derive(Clone, Debug, Hash, PartialEq)]
+pub enum Shape {
+ Rectangle(crate::shapes::Rectangle),
+ Triangle(crate::shapes::Triangle),
+}
+
+impl ::std::convert::From::<crate::shapes::Rectangle> for crate::shapes::Shape {
+ fn from(value: crate::shapes::Rectangle) -> Self {
+ Self::Rectangle(value)
+ }
+}
+
+impl ::std::convert::From::<crate::shapes::Triangle> for crate::shapes::Shape {
+ fn from(value: crate::shapes::Triangle) -> Self {
+ Self::Triangle(value)
+ }
+}
+
+#[derive(Clone, Debug, Hash, PartialEq)]
+pub struct Rectangle {
+ pub width: ::core::primitive::i32,
+ pub height: ::core::primitive::i32,
+}
+
+#[derive(Clone, Debug, Hash, PartialEq)]
+pub struct Triangle {
+ pub width: ::core::primitive::i32,
+ pub height: ::core::primitive::i32,
+}