diff options
Diffstat (limited to 'examples/multi-step/src/main.zig')
| -rw-r--r-- | examples/multi-step/src/main.zig | 35 |
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)}); +} |
