in merkledb/src/merkledb_debug.rs [12:52]
fn print_node_details(&self, node: &MerkleNode) -> String {
let attr = self.node_attributes(node.id()).unwrap_or_default();
let mut ret = String::new();
if attr.has_cas_data() {
let cas_report = if let Ok(r) = find_ancestor_reconstructor(self, node, NodeDataType::CAS) {
format!(
"\tSubstring [{}, {}) of CAS entry {}\n",
r.start,
r.end,
self.find_node_by_id(r.id).map_or("?".to_string(), |n| n.hash().to_string())
)
} else {
"\tHas CAS data but unable to derive origin CAS node\n".to_string()
};
ret.push_str(&cas_report);
}
if attr.has_file_data() {
let cas_report = if let Ok(r) = find_ancestor_reconstructor(self, node, NodeDataType::FILE) {
format!(
"\tSubstring [{}, {}) of FILE entry {}\n",
r.start,
r.end,
self.find_node_by_id(r.id).map_or("?".to_string(), |n| n.hash().to_string())
)
} else {
"\tHas FILE data but unable to derive origin FILE node\n".to_string()
};
ret.push_str(&cas_report);
}
ret.push('\n');
if attr.has_file_data() {
let recon_report = if let Ok(res) = self.reconstruct_from_cas(&[node.clone()]) {
format!("CAS Reconstruction: {res:?}")
} else {
"\tUnable to reconstruct from CAS\n".to_string()
};
ret.push_str(&recon_report);
}
ret
}