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:
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 {