aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--std/fmt/index.zig14
1 files changed, 14 insertions, 0 deletions
diff --git a/std/fmt/index.zig b/std/fmt/index.zig
index 812f5e72cd..82e9a5ba39 100644
--- a/std/fmt/index.zig
+++ b/std/fmt/index.zig
@@ -166,6 +166,11 @@ pub fn formatType(
if (has_cust_fmt) return value.format(fmt, context, Errors, output);
try output(context, @typeName(T));
+ if (comptime @typeId(T) == builtin.TypeId.Enum) {
+ try output(context, ".");
+ try formatType(@tagName(value), "", context, Errors, output);
+ return;
+ }
comptime var field_i = 0;
inline while (field_i < @memberCount(T)) : (field_i += 1) {
if (field_i == 0) {
@@ -935,6 +940,15 @@ test "fmt.format" {
try testFmt("struct: Struct{ .field = 42 }\n", "struct: {}\n", &value);
}
{
+ const Enum = enum {
+ One,
+ Two,
+ };
+ const value = Enum.Two;
+ try testFmt("enum: Enum.Two\n", "enum: {}\n", value);
+ try testFmt("enum: Enum.Two\n", "enum: {}\n", &value);
+ }
+ {
var buf1: [32]u8 = undefined;
const value: f32 = 1.34;
const result = try bufPrint(buf1[0..], "f32: {e}\n", value);