diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-08-14 11:07:46 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-08-14 11:07:46 +0100 |
| commit | 6eb866fe831d85fbc5a492df711afcda26b2df6f (patch) | |
| tree | ef43539883b91a238f1826ce5183e997fdfc4b85 /examples/03-struct-generic/output | |
| parent | 00cfa7a56b31f0b629a54a77e1934d25471f8156 (diff) | |
Support generic structs in rust-types
Diffstat (limited to 'examples/03-struct-generic/output')
6 files changed, 73 insertions, 0 deletions
diff --git a/examples/03-struct-generic/output/rust/.gitignore b/examples/03-struct-generic/output/rust/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/examples/03-struct-generic/output/rust/.gitignore @@ -0,0 +1 @@ +/target diff --git a/examples/03-struct-generic/output/rust/Cargo.lock b/examples/03-struct-generic/output/rust/Cargo.lock new file mode 100644 index 0000000..9dc6e3e --- /dev/null +++ b/examples/03-struct-generic/output/rust/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "example" +version = "0.1.0" diff --git a/examples/03-struct-generic/output/rust/Cargo.toml b/examples/03-struct-generic/output/rust/Cargo.toml new file mode 100644 index 0000000..5d4c622 --- /dev/null +++ b/examples/03-struct-generic/output/rust/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "example" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/examples/03-struct-generic/output/rust/rust-toolchain.toml b/examples/03-struct-generic/output/rust/rust-toolchain.toml new file mode 100644 index 0000000..4fedb95 --- /dev/null +++ b/examples/03-struct-generic/output/rust/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.96" diff --git a/examples/03-struct-generic/output/rust/src/lib.rs b/examples/03-struct-generic/output/rust/src/lib.rs new file mode 100644 index 0000000..75ae1f1 --- /dev/null +++ b/examples/03-struct-generic/output/rust/src/lib.rs @@ -0,0 +1,16 @@ +mod point; + +#[cfg(test)] +mod test { + use super::point::{Line, Point2D}; + + #[test] + fn line() { + let line = Line { + start: Point2D { x: 10, y: 25 }, + end: Point2D { x: 42, y: 47 }, + }; + assert_eq!(line.start.x, 10); + assert_eq!(line.end.y, 47); + } +} diff --git a/examples/03-struct-generic/output/rust/src/point.rs b/examples/03-struct-generic/output/rust/src/point.rs new file mode 100644 index 0000000..ae6a1ee --- /dev/null +++ b/examples/03-struct-generic/output/rust/src/point.rs @@ -0,0 +1,41 @@ +// Generated by hobgoblin. + +/// A set of drawings. +#[derive(Clone, Debug, Hash, PartialEq)] +pub struct OwnedLineDrawing<TPoint> { + pub drawing: crate::point::LineDrawing::<TPoint>, + pub owner: ::std::string::String, +} + +/// A 2D drawing made up of straight lines. +#[derive(Clone, Debug, Hash, PartialEq)] +pub struct LineDrawing2D { + pub lines: ::std::vec::Vec::<crate::point::Line::<crate::point::Point2D>>, +} + +/// A drawing made up of straight lines. +#[derive(Clone, Debug, Hash, PartialEq)] +pub struct LineDrawing<TPoint> { + pub lines: ::std::vec::Vec::<crate::point::Line::<TPoint>>, +} + +/// A cubic Bezier curve. +#[derive(Clone, Debug, Hash, PartialEq)] +pub struct BezierCurve<TPoint> { + pub start: crate::point::Line::<TPoint>, + pub end: crate::point::Line::<TPoint>, +} + +/// A straight line from one point to another. +#[derive(Clone, Debug, Hash, PartialEq)] +pub struct Line<TPoint> { + pub start: TPoint, + pub end: TPoint, +} + +/// A 2D point. +#[derive(Clone, Debug, Hash, PartialEq)] +pub struct Point2D { + pub x: ::core::primitive::i32, + pub y: ::core::primitive::i32, +} |
