Zig 0.17.0-dev (Split by item)

Shortcut keys
?
Show these tips
S
Focus search field
Esc
Clear focus & close tips
U
Jump to source code
↑
Move up in search results
↓
Move down in search results
↵
Go to active search result
This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig standard library. Public Function

clone

Public Function
std.multi_array_list.MultiArrayList.clone
pub fn clone(self: Self, gpa: Allocator) Allocator.Error!Self

Create a copy of this list with a new backing store, using the specified allocator.

Params

File

multi_array_list.zig:571
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;
        }