Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
radicle: log when Ops::try_from fails
Fintan Halpenny committed 3 years ago
commit 0337574750db4437cfc024b06d73864a4147e6e6
parent cd12741bf205fc69d7ccb96b5ff2fe66a1f947ca
1 file changed +12 -5
modified radicle/src/cob/store.rs
@@ -36,13 +36,20 @@ pub trait FromHistory: Sized + Default {
    /// Create an object from a history.
    fn from_history(history: &History) -> Result<(Self, Lamport), Error> {
        let obj = history.traverse(Self::default(), |mut acc, entry| {
-
            if let Ok(Ops(ops)) = Ops::try_from(entry) {
-
                if let Err(err) = acc.apply(ops) {
-
                    log::warn!("Error applying op to `{}` state: {err}", Self::type_name());
+
            match Ops::try_from(entry) {
+
                Ok(Ops(ops)) => {
+
                    if let Err(err) = acc.apply(ops) {
+
                        log::warn!("Error applying op to `{}` state: {err}", Self::type_name());
+
                        return ControlFlow::Break(acc);
+
                    }
+
                }
+
                Err(err) => {
+
                    log::warn!(
+
                        "Error decoding ops for `{}` state: {err}",
+
                        Self::type_name()
+
                    );
                    return ControlFlow::Break(acc);
                }
-
            } else {
-
                return ControlFlow::Break(acc);
            }
            ControlFlow::Continue(acc)
        });