pub fn metadataString(self: *Builder, bytes: []const u8) Allocator.Error!Metadata.String self: *Builderbytes: []const u813283
13284
13285
13286
13287
13288
13289
13290
13291
13292
13293
13294
13295
13296
13297
13298
13299
13300pub fn metadataString(self: *Builder, bytes: []const u8) Allocator.Error!Metadata.String {
assert(bytes.len > 0);
try self.metadata_string_bytes.ensureUnusedCapacity(self.gpa, bytes.len);
try self.metadata_string_indices.ensureUnusedCapacity(self.gpa, 1);
try self.metadata_string_map.ensureUnusedCapacity(self.gpa, 1);
const gop = self.metadata_string_map.getOrPutAssumeCapacityAdapted(
bytes,
Metadata.String.Adapter{ .builder = self },
);
if (!gop.found_existing) {
self.metadata_string_bytes.appendSliceAssumeCapacity(bytes);
self.metadata_string_indices.appendAssumeCapacity(
@intCast(self.metadata_string_bytes.items.len),
);
}
return @fromBackingInt(@intCast(gop.index));
}