import graph {
IncidenceGraph
}
by("ThorstenSeitz")
shared interface UndirectedGraph<V,E> satisfies IncidenceGraph<V,E>
given V satisfies Object
given E satisfies UndirectedEdge<V, E> {
shared default {E*} outgoingEdgesOf(V vertex) {
return adjacentEdges(vertex).filter((E edge) => edge.source == vertex);
}
shared default {E*} incomingEdgesOf(V vertex) {
return adjacentEdges(vertex).filter((E edge) => edge.target == vertex);
}
}