aboutsummaryrefslogtreecommitdiff
path: root/examples/multi-step/src/main.zig
diff options
context:
space:
mode:
authorDavid Czihak <git@dcz.at>2026-05-09 13:01:50 +0200
committerDavid Czihak <git@dcz.at>2026-05-09 13:01:50 +0200
commit4b6f66fd512c254b5a82220dc77411fe391dd258 (patch)
tree7d77d7966e9ad2e296986ea8cfeb607088028195 /examples/multi-step/src/main.zig
parent64e9c56fc665972fdde5234c4fb2f2a882e237dc (diff)
Chore: Rework examples for thorough extension testing
Diffstat (limited to 'examples/multi-step/src/main.zig')
-rw-r--r--examples/multi-step/src/main.zig35
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/multi-step/src/main.zig b/examples/multi-step/src/main.zig
new file mode 100644
index 0000000..a984b18
--- /dev/null
+++ b/examples/multi-step/src/main.zig
@@ -0,0 +1,35 @@
+const std = @import("std");
+const lib = @import("multi_step");
+
+pub fn main(init: std.process.Init) !void {
+ const io = init.io;
+ var buf: [4096]u8 = undefined;
+ var fw: std.Io.File.Writer = .init(.stdout(), io, &buf);
+ defer fw.interface.flush() catch {};
+ const w = &fw.interface;
+
+ const args = try init.minimal.args.toSlice(init.arena.allocator());
+ const mode = if (args.len > 1) args[1] else "";
+
+ if (std.mem.eql(u8, mode, "--server")) {
+ try w.print("Server mode (simulated)\n", .{});
+ return;
+ }
+
+ if (std.mem.eql(u8, mode, "--bench")) {
+ const data = [_]i32{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+ var i: u32 = 0;
+ while (i < 1_000_000) : (i += 1) {
+ _ = lib.sum(&data);
+ }
+ try w.print("bench: 1M sum() calls completed\n", .{});
+ return;
+ }
+
+ const data = [_]i32{ 10, 20, 30, 40, 50 };
+ try w.print("data: {any}\n", .{data});
+ try w.print("sum = {d}\n", .{lib.sum(&data)});
+ try w.print("product = {d}\n", .{lib.product(&data)});
+ try w.print("min = {?d}\n", .{lib.min(&data)});
+ try w.print("max = {?d}\n", .{lib.max(&data)});
+}