diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-02-06 14:02:14 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-02-06 14:02:14 +0100 |
| commit | e3d5e9d29a558173d5e6c499695480bed83008be (patch) | |
| tree | a64ced22a1a63bbac589e26e21c8f291b3d6d929 /database/src/kv/helpers.rs | |
| parent | c914529348b8aa74a142b12f2a3b7532350d3f04 (diff) | |
| download | jellything-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.rs | 19 |
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)) +} |