fn solve_joins(&mut self, graph: &G, node_id: N::NodeId) -> F {
        let mut infos = Vec::new();

        for next in Sort::get_joins(graph, node_id) {
            let init_fact = self.init_fact.clone();
            let next_info = self.infos.entry(*next).or_insert(init_fact);
            infos.push(Sort::get_join_fact(next_info).clone());
        }

        (&mut self.join)(infos)
    }
/// Solve the joins for a node
Solve the joins for a node
Solve the joins for a node
fn solve_joins(&mut self, graph: &G, node_id: N::NodeId) -> F {
        let mut infos = Vec::new();
        for next in Sort::get_joins(graph, node_id) {
            let init_fact = self.init_fact.clone();
            let next_info = self.infos.entry(*next).or_insert(init_fact);
            infos.push(Sort::get_join_fact(next_info).clone());
        }
        (&mut self.join)(infos)
    }
fn solve_joins ( & mut self , graph : & G , node_id : N :: NodeId ) -> F { let mut infos = Vec :: new ( ) ; for next in Sort :: get_joins ( graph , node_id ) { let init_fact = self . init_fact . clone ( ) ; let next_info = self . infos . entry ( * next ) . or_insert ( init_fact ) ; infos . push ( Sort :: get_join_fact ( next_info ) . clone ( ) ) ; } ( & mut self . join ) ( infos ) }
Solve the joins for a node
Solve the joins for a node
&mut self
graph
&G
node_id
N::NodeId