auto_diff/collection/
undirected_graph.rs1use std::collections::{BTreeSet, BTreeMap};
2pub struct UnDirectedGraph<TNode, TEdge> {
8 node: BTreeSet<TNode>,
9 edge: BTreeSet<TEdge>,
10 edge2node: BTreeMap<TEdge, BTreeSet<TNode>>,
11 node2edige: BTreeMap<TNode, BTreeSet<TEdge>>,
12}
13
14impl<TNode:Clone + Copy + Ord,
15 TEdge:Clone + Copy + Ord>
16 Default for UnDirectedGraph<TNode, TEdge> {
17 fn default() -> UnDirectedGraph<TNode, TEdge> {
18 UnDirectedGraph {
19 node: BTreeSet::new(),
20 edge: BTreeSet::new(),
21 edge2node: BTreeMap::new(),
22 node2edige: BTreeMap::new(),
23 }
24 }
25}
26
27impl<TNode, TEdge> UnDirectedGraph<TNode, TEdge> {
28 pub fn new() -> UnDirectedGraph<TNode, TEdge> {
29 UnDirectedGraph {
30 node: BTreeSet::new(),
31 edge: BTreeSet::new(),
32 edge2node: BTreeMap::new(),
33 node2edige: BTreeMap::new(),
34 }
35 }
36}
37
38#[cfg(test)]
39mod tests {
40 use super::*;
41 use crate::collection::generational_index::{GenKey};
42
43 #[test]
44 fn new() {
45 let _g = UnDirectedGraph::<GenKey, GenKey>::new();
46 }
47}