summaryrefslogtreecommitdiff
path: root/examples/15-struct-generic/src/point.hob
diff options
context:
space:
mode:
Diffstat (limited to 'examples/15-struct-generic/src/point.hob')
-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;
+}