From 364d2904bd4c9928a08b9e083fa2d3251d6cf836 Mon Sep 17 00:00:00 2001 From: patrick-scho Date: Fri, 9 May 2025 19:23:11 +0200 Subject: [PATCH] changes --- src/db.zig | 24 ++++++++++++------------ src/lmdb.zig | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/db.zig b/src/db.zig index 4e8126d..3e1b186 100644 --- a/src/db.zig +++ b/src/db.zig @@ -96,7 +96,7 @@ fn SetListBase(comptime K: type, comptime V: type) type { idx: ?Index = null, fn open_dbi(txn: lmdb.Txn) !lmdb.Dbi { - return try txn.dbi("SetList"); + return try txn.dbi(null); } pub fn init(txn: lmdb.Txn) !Self { const head = View.Head{}; @@ -144,6 +144,15 @@ fn SetListViewBase(comptime K: type, comptime V: type) type { idx: SetListBase(K, V).Index, head: Head, + fn gen(self: @This()) !Key { + // TODO: limit loop + while (true) { + const key = try Prng.gen(self.dbi, Key); + if (!try self.dbi.has(self.item_idx(key))) { + return key; + } + } + } fn item_idx(self: Self, k: K) ItemIndex { return .{ self.idx, k }; } @@ -171,7 +180,7 @@ fn SetListViewBase(comptime K: type, comptime V: type) type { try self.item_put(item.next.?, next); } - if (self.head.first == k) self.head.first = item.next; + if (std.mem.eql(K, self.head.first, k)) self.head.first = item.next; if (self.head.last == k) self.head.last = item.prev; self.head.len -= 1; try self.head_update(); @@ -312,15 +321,6 @@ pub fn List(comptime V: type) type { base: ViewBase, - fn gen(self: @This()) !Key { - // TODO: limit loop - while (true) { - const key = try Prng.gen(self.base.dbi, Key); - if (!try self.base.dbi.has(self.base.item_idx(key))) { - return key; - } - } - } pub fn del(self: *@This(), key: Key) !void { try self.base.del(key); } @@ -331,7 +331,7 @@ pub fn List(comptime V: type) type { return self.base.len(); } pub fn append(self: *@This(), val: Val) !Key { - const key = try self.gen(); + const key = try self.base.gen(); try self.base.append(key, val); return key; } diff --git a/src/lmdb.zig b/src/lmdb.zig index 88c8e22..3c8ac3a 100644 --- a/src/lmdb.zig +++ b/src/lmdb.zig @@ -207,7 +207,7 @@ pub const Txn = struct { ptr: ?*lmdb.MDB_txn = undefined, env: Env = undefined, - pub fn dbi(self: Txn, name: [:0]const u8) !Dbi { + pub fn dbi(self: Txn, name: ?[:0]const u8) !Dbi { var result = Dbi{ .env = self.env, .txn = self }; // TODO: lmdb.MDB_INTEGERKEY? switch (lmdb.mdb_dbi_open(self.ptr, @ptrCast(name), lmdb.MDB_CREATE, &result.ptr)) { -- 2.50.1