From 123076ea88a809888692b308ab5bb214dc3a2caf Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Fri, 18 Feb 2022 19:35:39 -0700 Subject: [PATCH] ArrayList: add unusedCapacitySlice to the unmanaged API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This function is super nice thank you whoever added it 👍 --- lib/std/array_list.zig | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/std/array_list.zig b/lib/std/array_list.zig index 76e73a49b5..eb726f4dfa 100644 --- a/lib/std/array_list.zig +++ b/lib/std/array_list.zig @@ -780,6 +780,14 @@ pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?u29) typ pub fn allocatedSlice(self: Self) Slice { return self.items.ptr[0..self.capacity]; } + + /// Returns a slice of only the extra capacity after items. + /// This can be useful for writing directly into an ArrayList. + /// Note that such an operation must be followed up with a direct + /// modification of `self.items.len`. + pub fn unusedCapacitySlice(self: Self) Slice { + return self.allocatedSlice()[self.items.len..]; + } }; }