summaryrefslogtreecommitdiff
path: root/examples/15-struct-generic/src
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-09-21 20:57:36 +0100
committerMichael Williamson <mike@zwobble.org>2026-09-21 20:57:36 +0100
commit2bf02785d9aef8b7b265d41cd45e2519a7e04bb4 (patch)
tree72765bd081280ca0a36ad5f820a0659b35ff66ee /examples/15-struct-generic/src
parent8b601565c9e14aa673dca94bd79c84ad6f2f04f3 (diff)
Support Option in typescript-types
Diffstat (limited to 'examples/15-struct-generic/src')
-rw-r--r--examples/15-struct-generic/src/point.hob33
1 files changed, 33 insertions, 0 deletions
diff --git a/examples/15-struct-generic/src/point.hob b/examples/15-struct-generic/src/point.hob
new file mode 100644
index 0000000..5beed86
--- /dev/null
+++ b/examples/15-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;
+}