authorgravatar for kris.tate+github@gmail.comkristopher tate <kris.tate+github@gmail.com> 2018-11-15 01:12:10+09:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-11-16 10:22:33-05:00
loge198417687c43081f31668ecf747db54629d8560
treef695d4f5da9041a2ecb7b51bb2d8a9e94d56d5a5
parentbe9bb0a8572577f5e5bbac83ff25b88467906d70

std/fmt/index.zig: support printing hex bytes on slices;


1 files changed, 6 insertions(+), 0 deletions(-)

std/fmt/index.zig+6
...@@ -229,6 +229,9 @@ pub fn formatType(...@@ -229,6 +229,9 @@ pub fn formatType(
229 return format(context, Errors, output, "{}@{x}", @typeName(T.Child), @ptrToInt(value));229 return format(context, Errors, output, "{}@{x}", @typeName(T.Child), @ptrToInt(value));
230 },230 },
231 builtin.TypeInfo.Pointer.Size.Slice => {231 builtin.TypeInfo.Pointer.Size.Slice => {
232 if (fmt.len > 0 and ((fmt[0] == 'x') or (fmt[0] == 'X'))) {
233 return formatText(value, fmt, context, Errors, output);
234 }
232 const casted_value = ([]const u8)(value);235 const casted_value = ([]const u8)(value);
233 return output(context, casted_value);236 return output(context, casted_value);
234 },237 },
...@@ -1293,6 +1296,9 @@ test "fmt.format" {...@@ -1293,6 +1296,9 @@ test "fmt.format" {
1293 const some_bytes = "\xCA\xFE\xBA\xBE";1296 const some_bytes = "\xCA\xFE\xBA\xBE";
1294 try testFmt("lowercase: cafebabe\n", "lowercase: {x}\n", some_bytes);1297 try testFmt("lowercase: cafebabe\n", "lowercase: {x}\n", some_bytes);
1295 try testFmt("uppercase: CAFEBABE\n", "uppercase: {X}\n", some_bytes);1298 try testFmt("uppercase: CAFEBABE\n", "uppercase: {X}\n", some_bytes);
1299 //Test Slices
1300 try testFmt("uppercase: CAFE\n", "uppercase: {X}\n", some_bytes[0..2]);
1301 try testFmt("lowercase: babe\n", "lowercase: {x}\n", some_bytes[2..]);
1296 const bytes_with_zeros = "\x00\x0E\xBA\xBE";1302 const bytes_with_zeros = "\x00\x0E\xBA\xBE";
1297 try testFmt("lowercase: 000ebabe\n", "lowercase: {x}\n", bytes_with_zeros);1303 try testFmt("lowercase: 000ebabe\n", "lowercase: {x}\n", bytes_with_zeros);
1298 }1304 }