| 1087 | } |
| 1088 | |
| 1089 | pub fn build_graph(graph_fix: &GraphFixture) -> Arc<Storage> { |
| 1090 | let g = Arc::new(Storage::default()); |
| 1091 | for ((src, dst, layer), updates) in graph_fix.edges() { |
| 1092 | for (t, props) in updates.props.t_props.iter() { |
| 1093 | g.add_edge(*t, src, dst, props.clone(), layer).unwrap(); |
| 1094 | } |
| 1095 | if let Some(e) = g.edge(src, dst) { |
| 1096 | if !updates.props.c_props.is_empty() { |
| 1097 | e.add_metadata(updates.props.c_props.clone(), layer) |
| 1098 | .unwrap(); |
| 1099 | } |
| 1100 | } |
| 1101 | for t in updates.deletions.iter() { |
| 1102 | g.delete_edge(*t, src, dst, layer).unwrap(); |
| 1103 | } |
| 1104 | } |
| 1105 | |
| 1106 | for (node, updates) in graph_fix.nodes() { |
| 1107 | let node_layer = updates.node_layer.as_str(); |
| 1108 | for (t, props) in updates.props.t_props.iter() { |
| 1109 | g.add_node(*t, node, props.clone(), None, node_layer) |
| 1110 | .unwrap(); |
| 1111 | } |
| 1112 | if let Some(node) = g.node(node) { |
| 1113 | node.add_metadata(updates.props.c_props.clone()).unwrap(); |
| 1114 | if let Some(node_type) = updates.node_type.as_str() { |
| 1115 | node.set_node_type(node_type).unwrap(); |
| 1116 | } |
| 1117 | } |
| 1118 | } |
| 1119 | |
| 1120 | g |
| 1121 | } |
| 1122 | |
| 1123 | pub fn build_graph_layer(graph_fix: &GraphFixture, layers: &[&str]) -> Arc<Storage> { |
| 1124 | let g = Arc::new(Storage::default()); |