Zig Snippets: string to enum
Zig で []const u8 から enum に変換する
たぶん builtin にも存在しない気がする?のですが、逆 (enum → string) は @tagName で可能なので、 @typeInfo や inline for をくみあわせて以下のように書くことができます。
const std = @import("std"); const E = enum { a, b }; fn strToE(s: []const u8) ?E { inline for (@typeInfo(E).Enum.fields) |f| { if (std.mem.eql(u8, f.name, s)) { return @intToEnum(@This(), f.value); } } return null; }
inline for 便利。