auto g1 = Graph!(int, int)([1, 2]); static g1.Edge sumWeights(g1.Edge[] multiEdge) { auto sumOfWeights = multiEdge.map!"a.weight".sum; auto mergedEdge = multiEdge[0]; mergedEdge.weight = sumOfWeights; return mergedEdge; } auto edges = [ g1.edge(1, 2, 1), g1.edge(1, 2, 1), g1.edge(1, 2, 1), g1.edge(2, 3, 2), g1.edge(2, 3, 2), g1.edge(3, 4, 3), ]; g1.bulkAdd!sumWeights(edges); assert(g1.edges == [ g1.edge(1, 2, 3), g1.edge(2, 3, 4), g1.edge(3, 4, 3), ]);
Add a set of edges to this graph and merge mutli-edges using merge.