22 lines
615 B
TypeScript
22 lines
615 B
TypeScript
import { MaybeAsyncIterable } from "../types.js";
|
|
|
|
export interface EqualitySet<T> extends Iterable<T> {
|
|
readonly size: number;
|
|
add(value: T): boolean;
|
|
addAll(values: Iterable<T>): number;
|
|
contains(value: T): boolean;
|
|
remove(value: T): boolean;
|
|
clear(): void;
|
|
values(): IterableIterator<T>;
|
|
}
|
|
|
|
export interface AsyncEqualitySet<T> extends Iterable<T> {
|
|
readonly size: number;
|
|
add(value: T): Promise<boolean>;
|
|
addAll(values: MaybeAsyncIterable<T>): Promise<number>;
|
|
contains(value: T): Promise<boolean>;
|
|
remove(value: T): Promise<boolean>;
|
|
clear(): void;
|
|
values(): IterableIterator<T>;
|
|
}
|