import type { Diff } from "@starbeam/interfaces"; export function diff( prev: Set | ReadonlySet, next: Set | ReadonlySet ): Diff { const add = new Set(); const remove = new Set(); for (const internal of prev) { if (!next.has(internal)) { remove.add(internal); } } for (const internal of next) { if (!prev.has(internal)) { add.add(internal); } } return { add, remove }; } const EMPTY = { add: new Set(), remove: new Set() }; diff.empty = () => EMPTY as Diff;