pub fn clone(self: Self, gpa: Allocator) Allocator.Error!Self 571
572
573
574
575
576
577
578
579
580
581
582
583
584
585 pub fn clone(self: Self, gpa: Allocator) Allocator.Error!Self {
var result = Self{};
errdefer result.deinit(gpa);
try result.ensureTotalCapacity(gpa, self.len);
result.len = self.len;
const self_slice = self.slice();
const result_slice = result.slice();
inline for (field_types, 0..) |field_type, i| {
if (@sizeOf(field_type) != 0) {
const field = @as(Field, @fromBackingInt(@intCast(i)));
@memcpy(result_slice.items(field), self_slice.items(field));
}
}
return result;
}
Create a copy of this list with a new backing store, using the specified allocator.