zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 119ac13eda7fe95b6c1139b4bd20e05928abe427 (tree)
parent fa46bcb36864e6616ce4449965063f3b8720f8e1
Author: daurnimator <quae@daurnimator.com>
Date:   Fri,  7 Feb 2020 14:17:40 +1100

std: add .startsWith and .endsWith to std.ArrayList

Diffstat:
Mlib/std/array_list.zig | 11+++++++++++
Mlib/std/buffer.zig | 2+-
2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/lib/std/array_list.zig b/lib/std/array_list.zig @@ -248,6 +248,17 @@ pub fn AlignedArrayList(comptime T: type, comptime alignment: ?u29) type { if (self.len == 0) return null; return self.pop(); } + + pub fn startsWith(self: Self, m: []const T) bool { + if (self.len < m.len) return false; + return mem.eql(T, self.items[0..m.len], m); + } + + pub fn endsWith(self: Self, m: []const T) bool { + if (self.len < m.len) return false; + const start = self.len - m.len; + return mem.eql(T, self.items[start..self.len], m); + } }; } diff --git a/lib/std/buffer.zig b/lib/std/buffer.zig @@ -133,7 +133,7 @@ pub const Buffer = struct { pub fn startsWith(self: Buffer, m: []const u8) bool { if (self.len() < m.len) return false; - return mem.eql(u8, self.list.items[0..m.len], m); + return self.list.startsWith(m); } pub fn endsWith(self: Buffer, m: []const u8) bool {