import { HashSet, HashSetSym } from "@tsplus/stdlib/collections/HashSet/definition"
export class HashSetInternal implements HashSet {
readonly [HashSetSym]: HashSetSym = HashSetSym
constructor(readonly _keyMap: HashMap) {}
[Symbol.iterator](): Iterator {
return this._keyMap.keys
}
[Hash.sym](): number {
return Hash.combine(Hash.string("HashSet"), Hash.unknown(this._keyMap))
}
[Equals.sym](that: unknown): boolean {
if (HashSet.isHashSet(that)) {
realHashSet(that)
return (
this._keyMap.size === that._keyMap.size &&
this._keyMap == that._keyMap
)
}
return false
}
}
/**
* @tsplus macro remove
*/
export function realHashSet(_: HashSet): asserts _ is HashSetInternal {
//
}