]> gitweb.ps.run Git - ziglmdb/commitdiff
add clear method
authorpatrick-scho <patrick.schoenberger@posteo.de>
Sun, 16 Mar 2025 16:18:46 +0000 (17:18 +0100)
committerpatrick-scho <patrick.schoenberger@posteo.de>
Sun, 16 Mar 2025 16:18:46 +0000 (17:18 +0100)
src/db.zig

index 5d7a8242c83bf0b2f0a58b609d2dfbb9bb3a1bb2..6279a1ba6c834beed506a54efd80d5821c392a32 100644 (file)
@@ -183,6 +183,12 @@ pub fn SetView(comptime K: type) type {
 
             try self.dbi.del(self.item_idx(k));
         }
+        pub fn clear(self: *Self) !void {
+            var it = self.iterator();
+            while (it.next()) |i| {
+                try self.del(i);
+            }
+        }
         pub fn has(self: Self, k: K) !bool {
             return self.dbi.has(self.item_idx(k));
         }
@@ -357,6 +363,12 @@ pub fn ListView(comptime V: type) type {
 
             try self.dbi.del(self.item_idx(k));
         }
+        pub fn clear(self: *Self) !void {
+            var it = self.iterator();
+            while (it.next()) |kv| {
+                try self.del(kv.key);
+            }
+        }
         pub fn len(self: Self) usize {
             return self.head.len;
         }
@@ -513,6 +525,12 @@ pub fn SetListView(comptime K: type, comptime V: type) type {
 
             try self.dbi.del(self.item_idx(k));
         }
+        pub fn clear(self: *Self) !void {
+            var it = self.iterator();
+            while (it.next()) |kv| {
+                try self.del(kv.key);
+            }
+        }
         pub fn has(self: Self, k: K) !bool {
             return self.dbi.has(self.item_idx(k));
         }