summaryrefslogtreecommitdiff
path: root/examples/14-struct-generic/src
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-09-04 09:17:09 +0100
committerMichael Williamson <mike@zwobble.org>2026-09-04 09:17:09 +0100
commit483caabcb688e71eaadf9ee93fca52483a9ea06d (patch)
treef9a976cc00b942a1915c2c74ba025a1b12593043 /examples/14-struct-generic/src
parentc8749de4b3677f5db1c78eb5ec6818d648f2f6e1 (diff)
Reorder examples
Diffstat (limited to 'examples/14-struct-generic/src')
-rw-r--r--examples/14-struct-generic/src/point.hob33
1 files changed, 33 insertions, 0 deletions
diff --git a/examples/14-struct-generic/src/point.hob b/examples/14-struct-generic/src/point.hob
new file mode 100644
index 0000000..5beed86
--- /dev/null
+++ b/examples/14-struct-generic/src/point.hob
@@ -0,0 +1,33 @@
+/// A set of drawings.
+struct OwnedLineDrawing[TPoint] {
+ field drawing: LineDrawing[TPoint];
+ field owner: String;
+}
+
+/// A 2D drawing made up of straight lines.
+struct LineDrawing2D {
+ field lines: List[Line[Point2D]];
+}
+
+/// A drawing made up of straight lines.
+struct LineDrawing[TPoint] {
+ field lines: List[Line[TPoint]];
+}
+
+/// A cubic Bezier curve.
+struct BezierCurve[TPoint] {
+ field start: Line[TPoint];
+ field end: Line[TPoint];
+}
+
+/// A straight line from one point to another.
+struct Line[TPoint] {
+ field start: TPoint;
+ field end: TPoint;
+}
+
+/// A 2D point.
+struct Point2D {
+ field x: Int32;
+ field y: Int32;
+}