diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-02-27 14:40:15 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-02-27 14:40:15 +0100 |
| commit | c05bfcc2775f0e11db6e856bfcf06d0419c35d54 (patch) | |
| tree | ffd0e9fcf6b476a6198287085a514cfa7940c200 /database/src | |
| parent | 4ba86694e393c61107e27c4127efc0455b329524 (diff) | |
| download | jellything-c05bfcc2775f0e11db6e856bfcf06d0419c35d54.tar jellything-c05bfcc2775f0e11db6e856bfcf06d0419c35d54.tar.bz2 jellything-c05bfcc2775f0e11db6e856bfcf06d0419c35d54.tar.zst | |
ui changed before object slices
Diffstat (limited to 'database/src')
| -rw-r--r-- | database/src/helper.rs | 23 | ||||
| -rw-r--r-- | database/src/lib.rs | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/database/src/helper.rs b/database/src/helper.rs new file mode 100644 index 0000000..28ab1fa --- /dev/null +++ b/database/src/helper.rs @@ -0,0 +1,23 @@ +/* + 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::{Database, Transaction}; +use anyhow::Result; + +pub trait DatabaseReturnExt: Database { + fn transaction_ret<T>( + &self, + mut t: impl FnMut(&mut dyn Transaction) -> Result<T>, + ) -> Result<T> { + let mut ret = None; + self.transaction(&mut |x| { + ret = Some(t(x)?); + Ok(()) + })?; + Ok(ret.unwrap()) + } +} +impl<D: Database> DatabaseReturnExt for D {} diff --git a/database/src/lib.rs b/database/src/lib.rs index 13e4a0d..b8a67c9 100644 --- a/database/src/lib.rs +++ b/database/src/lib.rs @@ -8,6 +8,7 @@ pub mod kv; pub mod query_syntax; #[cfg(test)] pub mod test_shared; +pub mod helper; use anyhow::Result; use jellyobject::{ObjectBuffer, Path, Value}; |