Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | 7x 7x 2x 4x 4x 2x 62x | import { map } from "@benneq/iterable";
/**
* An abstract helper class that implements the common base functionality of a
* {@link Set}.
*/
export abstract class AbstractSet<T> implements Set<T> {
/**
* @see {@link Set.add}
*/
abstract add(value: T): this;
/**
* @see {@link Set.clear}
*/
abstract clear(): void;
/**
* @see {@link Set.delete}
*/
abstract delete(value: T): boolean;
/**
* @see {@link Set.has}
*/
abstract has(value: T): boolean;
/**
* @see {@link Set.size}
*/
abstract size: number;
/**
* @see {@link Set.values}
*/
abstract values(): IterableIterator<T>;
/**
* @see {@link Set[Symbol.toStringTag]}
*/
abstract [Symbol.toStringTag]: string;
/**
* @see {@link Set.forEach}
*/
forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void): void {
for (const value of this) {
callbackfn(value, value, this);
}
}
/**
* @see {@link Set.entries}
*/
entries(): IterableIterator<[T, T]> {
return map<T, [T, T]>((value) => [value, value])(this);
}
/**
* @see {@link Set.keys}
*/
keys(): IterableIterator<T> {
return this.values();
}
/**
* @see {@link Set[Symbol.iterator]}
*/
[Symbol.iterator](): IterableIterator<T> {
return this.values();
}
}
|