1
0

add equality collection element iterators

This commit is contained in:
2024-05-13 22:24:57 +02:00
parent 35d284f030
commit eda8c8cf5d
2 changed files with 44 additions and 2 deletions

View File

@@ -7,6 +7,7 @@ export interface EqualitySet<T> extends Iterable<T> {
contains(obj: T): boolean;
remove(obj: T): boolean;
clear(): void;
values(): IterableIterator<T>;
}
class NativeEqualitySet<T> implements EqualitySet<T> {
@@ -34,6 +35,10 @@ class NativeEqualitySet<T> implements EqualitySet<T> {
this.#set.clear();
}
values() {
return this.#set.values();
}
[Symbol.iterator]() {
return this.#set[Symbol.iterator]();
}
@@ -88,6 +93,10 @@ class CustomEqualitySet<T> implements EqualitySet<T> {
this.#list.length = 0;
}
values() {
return this[Symbol.iterator]();
}
[Symbol.iterator]() {
return this.#list[Symbol.iterator]();
}