diff options
author | Mathias Magnusson <mathias@magnusson.space> | 2025-07-29 23:01:38 +0200 |
---|---|---|
committer | Mathias Magnusson <mathias@magnusson.space> | 2025-07-29 23:01:38 +0200 |
commit | b368fe65bb45dc4414c9cc2dabc7d84fa7690c36 (patch) | |
tree | 2b6b8cb675318e24e1a9b49e4b75843685d16f2b /src/main.zig | |
parent | 9f728121a17cbb997c18752d01d7529539966e94 (diff) | |
download | huginn-b368fe65bb45dc4414c9cc2dabc7d84fa7690c36.tar.gz |
store local variables on the stack
Diffstat (limited to 'src/main.zig')
-rw-r--r-- | src/main.zig | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/main.zig b/src/main.zig index 55b7e0e..d0e94db 100644 --- a/src/main.zig +++ b/src/main.zig @@ -74,15 +74,24 @@ fn HashMapFormatter(HashMap: type) type { options: std.fmt.FormatOptions, writer: anytype, ) !void { - _ = fmt; + const k_fmt, const v_fmt = comptime blk: { + var fmt_it = std.mem.splitScalar(u8, fmt, ','); + const k_fmt = fmt_it.next() orelse ""; + const v_fmt = fmt_it.next() orelse ""; + break :blk .{ k_fmt, v_fmt }; + }; _ = options; try writer.writeAll("{"); var it = hash_map.iterator(); var first = true; while (it.next()) |kv| { try writer.print( - "{s} {" ++ (if (@TypeOf(kv.key_ptr.*) == []const u8) "s" else "any") ++ "}: {any}", - .{ if (first) "" else ",", kv.key_ptr.*, kv.value_ptr.* }, + "{s} {" ++ k_fmt ++ "}: {" ++ v_fmt ++ "}", + .{ + if (first) "" else ",", + kv.key_ptr.*, + kv.value_ptr.*, + }, ); first = false; } |