reducedValidFrom method

Map<EdgeId<V>, List<Edge<V>>> reducedValidFrom(
  1. Map<V, Vertex<V>> vertices
)

Implementation

Map<EdgeId<V>, List<Edge<V>>> reducedValidFrom(Map<V, Vertex<V>> vertices) {
  final validEdges = where((edge) =>
      vertices.containsKey(edge.endpoint1) &&
      vertices.containsKey(edge.endpoint2)).toList();

  final edges = <EdgeId, List<Edge<V>>>{};

  return validEdges.fold({}, (a, c) {
    final id = c.id;
    final list = edges[id];
    if (list != null) {
      list.add(c);
      return a;
    } else {
      return {
        ...a,
        id: [c]
      };
    }
  });
}