aboutsummaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig15
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;
}