MCPcopy Create free account
hub / github.com/Effect-TS/effect / rebuildAdjacency

Function rebuildAdjacency

packages/effect/src/Graph.ts:1924–1944  ·  view source on GitHub ↗
(
  mutable: GraphImpl<N, E, T>
)

Source from the content-addressed store, hash-verified

1922 * @internal
1923 */
1924const rebuildAdjacency = <N, E, T extends Kind = "directed">(
1925 mutable: GraphImpl<N, E, T>
1926): void => {
1927 mutable.adjacency.clear()
1928 mutable.reverseAdjacency.clear()
1929
1930 for (const nodeIndex of mutable.nodes.keys()) {
1931 mutable.adjacency.set(nodeIndex, [])
1932 mutable.reverseAdjacency.set(nodeIndex, [])
1933 }
1934
1935 for (const [edgeIndex, edgeData] of mutable.edges) {
1936 mutable.adjacency.get(edgeData.source)!.push(edgeIndex)
1937 mutable.reverseAdjacency.get(edgeData.target)!.push(edgeIndex)
1938
1939 if (mutable.type === "undirected") {
1940 mutable.adjacency.get(edgeData.target)!.push(edgeIndex)
1941 mutable.reverseAdjacency.get(edgeData.source)!.push(edgeIndex)
1942 }
1943 }
1944}
1945
1946/**
1947 * Swaps source and target nodes for every edge in a mutable graph.

Callers 1

reverseFunction · 0.85

Calls 4

clearMethod · 0.80
pushMethod · 0.80
setMethod · 0.65
getMethod · 0.65

Tested by

no test coverage detected