DoxigAlpha

replaceRange

Grows or shrinks the list as necessary. Invalidates element pointers if additional capacity is allocated. Asserts that the range is in bounds.

Function parameters

Parameters

#
self:*Self
start:usize
len:usize
new_items:[]const T

Deprecated.

Functions

#
Managed
Deprecated.
AlignedManaged
Deprecated.
Aligned
A contiguous, growable list of arbitrarily aligned items in memory.

Source

Implementation

#
pub fn replaceRange(
    self: *Self,
    gpa: Allocator,
    start: usize,
    len: usize,
    new_items: []const T,
) Allocator.Error!void {
    const after_range = start + len;
    const range = self.items[start..after_range];
    if (range.len < new_items.len) {
        const first = new_items[0..range.len];
        const rest = new_items[range.len..];
        @memcpy(range[0..first.len], first);
        try self.insertSlice(gpa, after_range, rest);
    } else {
        self.replaceRangeAssumeCapacity(start, len, new_items);
    }
}