From c05bfcc2775f0e11db6e856bfcf06d0419c35d54 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Fri, 27 Feb 2026 14:40:15 +0100 Subject: ui changed before object slices --- database/src/helper.rs | 23 +++++++++++++++++++++++ database/src/lib.rs | 1 + 2 files changed, 24 insertions(+) create mode 100644 database/src/helper.rs (limited to 'database/src') 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 +*/ + +use crate::{Database, Transaction}; +use anyhow::Result; + +pub trait DatabaseReturnExt: Database { + fn transaction_ret( + &self, + mut t: impl FnMut(&mut dyn Transaction) -> Result, + ) -> Result { + let mut ret = None; + self.transaction(&mut |x| { + ret = Some(t(x)?); + Ok(()) + })?; + Ok(ret.unwrap()) + } +} +impl 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}; -- cgit v1.3