authorgravatar for marc@tiehu.isMarc Tiehuis <marc@tiehu.is> 2025-07-20 13:57:31+12:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-20 10:30:17+02:00
log4780cc50cf7e42f6af3eb71ef3897f4b341215b4
tree219298a750b54a6b962211da188e0606e9e6c2fd
parente43617e686f62af55d6663b695ec725e21bff210

std.Io.Writer: support alignment for `{t}` specifier


1 files changed, 10 insertions(+), 2 deletions(-)

lib/std/Io/Writer.zig+10-2
...@@ -1123,8 +1123,8 @@ pub fn printValue(...@@ -1123,8 +1123,8 @@ pub fn printValue(
1123 else => invalidFmtError(fmt, value),1123 else => invalidFmtError(fmt, value),
1124 },1124 },
1125 't' => switch (@typeInfo(T)) {1125 't' => switch (@typeInfo(T)) {
1126 .error_set => return w.writeAll(@errorName(value)),1126 .error_set => return w.alignBufferOptions(@errorName(value), options),
1127 .@"enum", .@"union" => return w.writeAll(@tagName(value)),1127 .@"enum", .@"union" => return w.alignBufferOptions(@tagName(value), options),
1128 else => invalidFmtError(fmt, value),1128 else => invalidFmtError(fmt, value),
1129 },1129 },
1130 else => {},1130 else => {},
...@@ -2134,6 +2134,14 @@ test "bytes.hex" {...@@ -2134,6 +2134,14 @@ test "bytes.hex" {
2134 try testing.expectFmt("lowercase: 000ebabe\n", "lowercase: {x}\n", .{bytes_with_zeros});2134 try testing.expectFmt("lowercase: 000ebabe\n", "lowercase: {x}\n", .{bytes_with_zeros});
2135}2135}
21362136
2137test "padding" {
2138 const foo: enum { foo } = .foo;
2139 try testing.expectFmt("tag: |foo |\n", "tag: |{t:<4}|\n", .{foo});
2140
2141 const bar: error{bar} = error.bar;
2142 try testing.expectFmt("error: |bar |\n", "error: |{t:<4}|\n", .{bar});
2143}
2144
2137test fixed {2145test fixed {
2138 {2146 {
2139 var buf: [255]u8 = undefined;2147 var buf: [255]u8 = undefined;