about summary refs log tree commit diff
path: root/lang/zig/union.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lang/zig/union.zig')
-rw-r--r--lang/zig/union.zig15
1 files changed, 15 insertions, 0 deletions
diff --git a/lang/zig/union.zig b/lang/zig/union.zig
new file mode 100644
index 0000000..a9445fd
--- /dev/null
+++ b/lang/zig/union.zig
@@ -0,0 +1,15 @@
+const expect = @import("std").testing.expect;
+const Payload = union {
+    int: i64,
+    float: f64,
+    boolean: bool,
+};
+
+test "simple union" {
+    var payload = Payload{ .int = 1234 };
+    expect(payload.int == 1234);
+    // Nope this is not how it works.
+    // payload.float = 12.34;
+    payload = Payload{ .float = 12.34 };
+    expect(payload.float == 12.34);
+}