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, w: *Writer) Writer.Error!void { try printEscapedString(data.metadata_string.slice(data.builder), .always_quote, w); } fn fmt(self: MetadataString, builder: *const Builder) std.fmt.Alt(FormatData, format) { return .{ .data = .{ .metadata_string = self, .builder = builder } }; } }