pub fn tagName(comptime E: type, e: E) ?[:0]const u8 E: typee: E63
64
65
66
67
68
69
70pub fn tagName(comptime E: type, e: E) ?[:0]const u8 {
const field_names = @typeInfo(E).@"enum".field_names;
const field_values = @typeInfo(E).@"enum".field_values;
@setEvalBranchQuota(field_names.len);
return inline for (field_names, field_values) |f_name, f_value| {
if (@backingInt(e) == f_value) break f_name;
} else null;
}
A safe alternative to @tagName() for non-exhaustive enums that doesn't panic when
ehas no tagged value. Returns the tag name foreor null if no tag exists.