enum MetadataString [src]

Fields

none = 0
_

Members

Source

pub const MetadataString = enum(u32) { none = 0, _, pub fn slice(self: MetadataString, builder: *const Builder) []const u8 { const index = @intFromEnum(self); const start = builder.metadata_string_indices.items[index]; const end = builder.metadata_string_indices.items[index + 1]; return builder.metadata_string_bytes.items[start..end]; } const Adapter = struct { builder: *const Builder, pub fn hash(_: Adapter, key: []const u8) u32 { return @truncate(std.hash.Wyhash.hash(0, key)); } pub fn eql(ctx: Adapter, lhs_key: []const u8, _: void, rhs_index: usize) bool { const rhs_metadata_string: MetadataString = @enumFromInt(rhs_index); return std.mem.eql(u8, lhs_key, rhs_metadata_string.slice(ctx.builder)); } }; const FormatData = struct { metadata_string: MetadataString, builder: *const Builder, }; fn format( data: FormatData, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype, ) @TypeOf(writer).Error!void { try printEscapedString(data.metadata_string.slice(data.builder), .always_quote, writer); } fn fmt(self: MetadataString, builder: *const Builder) std.fmt.Formatter(format) { return .{ .data = .{ .metadata_string = self, .builder = builder } }; } }