@hyperlane-xyz/utils
Version:
General utilities and types for the Hyperlane network
33 lines • 901 B
JavaScript
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set#implementing_basic_set_operations
export function difference(a, b) {
const _difference = new Set(a);
for (const elem of b) {
_difference.delete(elem);
}
return _difference;
}
export function symmetricDifference(a, b) {
const _difference = new Set(a);
for (const elem of b) {
if (_difference.has(elem)) {
_difference.delete(elem);
}
else {
_difference.add(elem);
}
}
return _difference;
}
export function setEquality(a, b) {
return symmetricDifference(a, b).size === 0;
}
export function intersection(a, b) {
const _intersection = new Set();
a.forEach((elem) => {
if (b.has(elem)) {
_intersection.add(elem);
}
});
return _intersection;
}
//# sourceMappingURL=sets.js.map