From 2bc23bdc7fe01fc5921be8e09f405a8a1fd7bd65 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 24 Jul 2026 17:59:45 +0100 Subject: Add Shared type --- examples/08-shared/hobgoblin.json5 | 19 +++++++++++++++++++ examples/08-shared/output/java/.gitignore | 2 ++ examples/08-shared/output/java/pom.xml | 1 + .../src/test/java/org/zwobble/example/PointTests.java | 16 ++++++++++++++++ examples/08-shared/src/point.hob | 11 +++++++++++ 5 files changed, 49 insertions(+) create mode 100644 examples/08-shared/hobgoblin.json5 create mode 100644 examples/08-shared/output/java/.gitignore create mode 120000 examples/08-shared/output/java/pom.xml create mode 100644 examples/08-shared/output/java/src/test/java/org/zwobble/example/PointTests.java create mode 100644 examples/08-shared/src/point.hob (limited to 'examples/08-shared') diff --git a/examples/08-shared/hobgoblin.json5 b/examples/08-shared/hobgoblin.json5 new file mode 100644 index 0000000..f9f6597 --- /dev/null +++ b/examples/08-shared/hobgoblin.json5 @@ -0,0 +1,19 @@ +{ + outputs: { + langs: { + java: { + packageName: "org.zwobble.example.types", + }, + }, + generators: [ + { + generator: "java-types", + path: "output/java/src/gen/java", + }, + { + generator: "java-precisely-matchers", + path: "output/java/src/gen/java", + }, + ], + } +} diff --git a/examples/08-shared/output/java/.gitignore b/examples/08-shared/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/08-shared/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/08-shared/output/java/pom.xml b/examples/08-shared/output/java/pom.xml new file mode 120000 index 0000000..445fa65 --- /dev/null +++ b/examples/08-shared/output/java/pom.xml @@ -0,0 +1 @@ +../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/08-shared/output/java/src/test/java/org/zwobble/example/PointTests.java b/examples/08-shared/output/java/src/test/java/org/zwobble/example/PointTests.java new file mode 100644 index 0000000..18a1961 --- /dev/null +++ b/examples/08-shared/output/java/src/test/java/org/zwobble/example/PointTests.java @@ -0,0 +1,16 @@ +package org.zwobble.example; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.zwobble.example.types.point.Point; + +public class PointTests { + @Test + public void pointFields() { + Point point = new Point(10, 25); + int x = point.x(); + int y = point.y(); + assertEquals(x, 10); + assertEquals(y, 25); + } +} diff --git a/examples/08-shared/src/point.hob b/examples/08-shared/src/point.hob new file mode 100644 index 0000000..7b9a8e6 --- /dev/null +++ b/examples/08-shared/src/point.hob @@ -0,0 +1,11 @@ +/// A straight line from one point to another. +struct Line { + field start: Shared[Point]; + field end: Shared[Point]; +} + +/// A 2D point. +struct Point { + field x: Int32; + field y: Int32; +} -- cgit v1.2.3