commit 5acf2a5068f762d69c406bc61309a9ab349aca72 (tree)
parent bf0afaa876391571f6072650bf450356b26c928d
Author: Alexandros Naskos <alex_naskos@hotmail.com>
Date: Thu, 1 Oct 2020 23:59:00 +0300
Merge pull request #6419 from tadeokondrak/std.fmt.comptimePrint
std.fmt: add comptimePrint
Diffstat:
1 file changed, 10 insertions(+), 0 deletions(-)
diff --git a/lib/std/fmt.zig b/lib/std/fmt.zig
@@ -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;