std.fmt: add comptimePrint

This commit is contained in:
Tadeo Kondrak 2020-09-25 10:51:57 -06:00
parent f8b3543cab
commit 236af776fd
No known key found for this signature in database
GPG Key ID: D41E092CA43F1D8B

View File

@ -1181,6 +1181,16 @@ fn bufPrintIntToSlice(buf: []u8, value: anytype, base: u8, uppercase: bool, opti
return buf[0..formatIntBuf(buf, value, base, uppercase, options)];
}
pub fn comptimePrint(comptime fmt: []const u8, args: anytype) *const [count(fmt, args)]u8 {
comptime var buf: [count(fmt, args)]u8 = undefined;
_ = bufPrint(&buf, fmt, args) catch |err| @compileError(err);
return &buf;
}
test "comptimePrint" {
std.testing.expectEqualSlices(u8, "100", comptime comptimePrint("{}", .{100}));
}
test "parse u64 digit too big" {
_ = parseUnsigned(u64, "123a", 10) catch |err| {
if (err == error.InvalidCharacter) return;