aboutsummaryrefslogtreecommitdiff
path: root/examples/hello-zig/src/main.zig
diff options
context:
space:
mode:
authorDavid Czihak <git@dcz.at>2026-05-07 14:33:19 +0200
committerDavid Czihak <git@dcz.at>2026-05-07 14:33:19 +0200
commitddf2de739068b5ff0866ccb1d067f3cb53a4fc55 (patch)
tree1a77efe9d73a6172be3c37d29b321eadd4efe379 /examples/hello-zig/src/main.zig
Initial commitv0.1.7
Diffstat (limited to 'examples/hello-zig/src/main.zig')
-rw-r--r--examples/hello-zig/src/main.zig32
1 files changed, 32 insertions, 0 deletions
diff --git a/examples/hello-zig/src/main.zig b/examples/hello-zig/src/main.zig
new file mode 100644
index 0000000..74eb590
--- /dev/null
+++ b/examples/hello-zig/src/main.zig
@@ -0,0 +1,32 @@
+const std = @import("std");
+const hello_zig = @import("hello_zig");
+
+pub fn main() !void {
+ var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
+ defer arena.deinit();
+
+ const allocator = arena.allocator();
+ const args = try std.process.argsAlloc(allocator);
+ const name = if (args.len > 1) args[1] else "Nova";
+
+ var greeter = hello_zig.Greeter{
+ .name = name,
+ .punctuation = '!',
+ };
+
+ const stdout = std.fs.File.stdout().deprecatedWriter();
+ try greeter.write(stdout, .verbose);
+
+ const sample_values = [_]i32{ -3, -2, 0, 1, 2, 3, 4 };
+ var squares = try hello_zig.collectEvenSquares(allocator, &sample_values);
+ defer squares.deinit(allocator);
+
+ std.debug.print("even squares: {any}\n", .{squares.items});
+}
+
+test "main module can compute a summary" {
+ const greeting = try hello_zig.describeNumber(std.testing.allocator, 42);
+ defer std.testing.allocator.free(greeting);
+
+ try std.testing.expect(std.mem.startsWith(u8, greeting, "positive"));
+}