fn check_parent_invariant()

in merkledb/src/merkledb_debug.rs [121:143]


    fn check_parent_invariant(&self) -> bool {
        let mut ret = true;
        for i in 0..self.get_sequence_number() {
            if let Some(node) = self.find_node_by_id(i as MerkleNodeId) {
                if let Some(attr) = self.node_attributes(i as MerkleNodeId) {
                    if attr.has_cas_data() {
                        let f = find_ancestor_reconstructor(self, &node, NodeDataType::CAS);
                        if f.is_err() {
                            eprintln!("Parent invariant broken on node {node:?}. Unable to track to CAS root");
                        }
                        ret &= f.is_ok();
                    } else if attr.has_file_data() {
                        let f = find_ancestor_reconstructor(self, &node, NodeDataType::FILE);
                        ret &= f.is_ok();
                        if f.is_err() {
                            eprintln!("Parent invariant broken on node {node:?}. Unable to track to File root");
                        }
                    };
                }
            }
        }
        ret
    }