fn make_leader(&mut self, node: Id) {
        let next = self.explainfind[usize::from(node)].next;
        if next != node {
            self.make_leader(next);
            self.explainfind[usize::from(next)].justification =
                self.explainfind[usize::from(node)].justification.clone();
            self.explainfind[usize::from(next)].is_rewrite_forward =
                !self.explainfind[usize::from(node)].is_rewrite_forward;
            self.explainfind[usize::from(next)].next = node;
        }
    }
// reverse edges recursively to make this node the leader
reverse edges recursively to make this node the leader
reverse edges recursively to make this node the leader
fn make_leader(&mut self, node: Id) {
        let next = self.explainfind[usize::from(node)].next;
        if next != node {
            self.make_leader(next);
            self.explainfind[usize::from(next)].justification =
                self.explainfind[usize::from(node)].justification.clone();
            self.explainfind[usize::from(next)].is_rewrite_forward =
                !self.explainfind[usize::from(node)].is_rewrite_forward;
            self.explainfind[usize::from(next)].next = node;
        }
    }
fn make_leader ( & mut self , node : Id ) { let next = self . explainfind [ usize :: from ( node ) ] . next ; if next != node { self . make_leader ( next ) ; self . explainfind [ usize :: from ( next ) ] . justification = self . explainfind [ usize :: from ( node ) ] . justification . clone ( ) ; self . explainfind [ usize :: from ( next ) ] . is_rewrite_forward = ! self . explainfind [ usize :: from ( node ) ] . is_rewrite_forward ; self . explainfind [ usize :: from ( next ) ] . next = node ; } }
reverse edges recursively to make this node the leader
reverse edges recursively to make this node the leader
&mut self
node
Id
&mut self
node
Id