aboutsummaryrefslogtreecommitdiff
path: root/database/src/kv/helpers.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-02-06 14:02:14 +0100
committermetamuffin <metamuffin@disroot.org>2026-02-06 14:02:14 +0100
commite3d5e9d29a558173d5e6c499695480bed83008be (patch)
treea64ced22a1a63bbac589e26e21c8f291b3d6d929 /database/src/kv/helpers.rs
parentc914529348b8aa74a142b12f2a3b7532350d3f04 (diff)
downloadjellything-e3d5e9d29a558173d5e6c499695480bed83008be.tar
jellything-e3d5e9d29a558173d5e6c499695480bed83008be.tar.bz2
jellything-e3d5e9d29a558173d5e6c499695480bed83008be.tar.zst
idk
Diffstat (limited to 'database/src/kv/helpers.rs')
-rw-r--r--database/src/kv/helpers.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/database/src/kv/helpers.rs b/database/src/kv/helpers.rs
new file mode 100644
index 0000000..0764fe6
--- /dev/null
+++ b/database/src/kv/helpers.rs
@@ -0,0 +1,19 @@
+/*
+ This file is part of jellything (https://codeberg.org/metamuffin/jellything)
+ which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
+ Copyright (C) 2026 metamuffin <metamuffin.org>
+*/
+
+use crate::{RowNum, kv::SubtreeNum};
+use anyhow::Result;
+
+pub fn write_counter(txn: &mut dyn jellykv::Transaction, t: SubtreeNum, value: u64) -> Result<()> {
+ txn.set(&t.to_be_bytes(), &value.to_be_bytes())
+}
+pub fn read_counter(txn: &dyn jellykv::Transaction, t: SubtreeNum, default: u64) -> Result<u64> {
+ Ok(txn
+ .get(&t.to_be_bytes())?
+ .map(|k| k.as_slice().try_into().map(RowNum::from_be_bytes).ok())
+ .flatten()
+ .unwrap_or(default))
+}