test "print u8 with {q}" {
const expected: u8 = 'a';
const actual: u8 = '\t';
// this does not compile
// errdefer std.debug.print("expected {q}, found {q}\n", .{
// expected,
// actual,
// });
// this does not escape control characters
errdefer std.debug.print("expected '{c}', found '{c}'\n", .{
expected,
actual,
});
// this prints double quotes instead of single quotes
errdefer std.debug.print("expected {q}, found {q}\n", .{
(&expected)[0..1],
(&actual)[0..1],
});
// this prints numbers instead of characters
try std.testing.expectEqual(expected, actual);
}
It would be nice to print ASCII characters with "{qc}" and Unicode with "{qu}". Is this already planned? Did I miss the announcement?
Edit: I fail to understand "{u}" documentation. How can a 21-bit integer be an UTF-8 sequence?