From 9b59c0e2c64711d0355513db0bd445d2e119c9e3 Mon Sep 17 00:00:00 2001 From: Fintan Halpenny Date: Thu, 16 Jan 2025 10:42:18 +0000 Subject: [PATCH] radicle: add Op::load method Adds an `Op::load` helper method for loading an `Entry`, given its `Oid` and the `store` it is stored in. This can be useful for downstream consumers to inspect operations on COBs given a single `Oid`, without having to load the entire object and/or graph. It can also be useful when looking at implementing COB stream primitives. --- crates/radicle/src/cob/op.rs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/crates/radicle/src/cob/op.rs b/crates/radicle/src/cob/op.rs index 80804f52..c253e94c 100644 --- a/crates/radicle/src/cob/op.rs +++ b/crates/radicle/src/cob/op.rs @@ -35,17 +35,15 @@ pub struct ManifestError { /// Error loading an `Op` from storage. #[derive(Error, Debug)] pub enum LoadError { - #[error("failed to load Op at '{object}': {err}")] + #[error("failed to load Op at '{object}': {source}")] Load { object: git::Oid, - #[source] - err: Box, + source: Box, }, - #[error("failed to decode Op at '{object}': {err}")] + #[error("failed to decode Op at '{object}': {source}")] Encoding { object: git::Oid, - #[source] - err: OpEncodingError, + source: OpEncodingError, }, } @@ -146,9 +144,12 @@ impl Op { { let entry = store.load(id).map_err(|err| LoadError::Load { object: id, - err: Box::new(err), + source: Box::new(err), })?; - Op::try_from(&entry).map_err(|err| LoadError::Encoding { object: id, err }) + Op::try_from(&entry).map_err(|err| LoadError::Encoding { + object: id, + source: err, + }) } }