Commit 119ac13eda

daurnimator <quae@daurnimator.com>
2020-02-07 04:17:40
std: add .startsWith and .endsWith to std.ArrayList
1 parent fa46bcb
Changed files (2)
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);
+        }
     };
 }
 
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 {