fn pre_process_rows()

in src/dachshund/typed_graph_builder.rs [272:304]


    fn pre_process_rows(
        &mut self,
        data: Vec<<Self as GraphBuilderBase>::RowType>,
    ) -> CLQResult<Vec<<Self as GraphBuilderBase>::RowType>> {
        let mut row_set: HashSet<<Self as GraphBuilderBase>::RowType> = HashSet::new();
        for el in data.into_iter() {
            let target_type = el.target_type_id;
            let edge_type = el.edge_type_id;
            self.non_core_type_map.insert(el.source_id, target_type);
            self.edge_type_map
                .entry((self.core_type_id, target_type))
                .or_insert_with(Vec::new)
                .push(edge_type);
            row_set.insert(el);
        }

        for (core, non_core) in self.get_cliques() {
            for core_id in core {
                for non_core_id in non_core {
                    for clique_edge in self
                        .get_clique_edges(*core_id, *non_core_id)
                        .unwrap()
                        .into_iter()
                    {
                        row_set.insert(clique_edge);
                    }
                }
            }
        }
        let rows_with_cliques: Vec<_> = row_set.into_iter().collect();
        self.non_core_type_map.clear();
        Ok(rows_with_cliques)
    }