Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
cob: Don't panic on missing root
cloudhead committed 2 years ago
commit 44fc11dff88fe8dfc2e323d989e26d6cbd19f961
parent ccc675b304139b783975b1c78c260c6ccc5c840c
1 file changed +3 -1
modified radicle-cob/src/change_graph.rs
@@ -17,6 +17,8 @@ pub enum EvaluateError {
    Init(Box<dyn std::error::Error + Sync + Send + 'static>),
    #[error("invalid signature for entry '{0}'")]
    Signature(EntryId),
+
    #[error("root entry '{0}' missing from graph")]
+
    MissingRoot(EntryId),
}

/// The graph of changes for a particular collaborative object
@@ -100,7 +102,7 @@ impl ChangeGraph {
        let root = self
            .graph
            .get(&root)
-
            .expect("ChangeGraph::evaluate: root must be part of change graph");
+
            .ok_or(EvaluateError::MissingRoot(root))?;

        if !root.valid_signatures() {
            return Err(EvaluateError::Signature(root.id));