diff options
Diffstat (limited to 'src/InternPool.zig')
| -rw-r--r-- | src/InternPool.zig | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/InternPool.zig b/src/InternPool.zig index 195ebfedd6..eb8af10bb5 100644 --- a/src/InternPool.zig +++ b/src/InternPool.zig @@ -1723,6 +1723,19 @@ pub const FileIndex = enum(u32) { .index = @intFromEnum(file_index) & ip.getIndexMask(u32), }; } + pub fn toOptional(i: FileIndex) Optional { + return @enumFromInt(@intFromEnum(i)); + } + pub const Optional = enum(u32) { + none = std.math.maxInt(u32), + _, + pub fn unwrap(opt: Optional) ?FileIndex { + return switch (opt) { + .none => null, + _ => @enumFromInt(@intFromEnum(opt)), + }; + } + }; }; const File = struct { |
