UNPKG

rc-js-util

Version:

A collection of TS and C++ utilities to help writing performant and correct applications, achieved through strict typing and (removable) invariant checking.

35 lines 1.37 kB
import { ISetLike } from "../typescript/i-set-like.js"; /** * @public * Provides a unique array with O(1) add & remove, with dirty checking on `getArray`. */ export interface IDirtyCheckedUniqueCollection<TItem> extends ISetLike<TItem> { readonly isDirty: boolean; /** * @returns true if the item was added. */ reportingAdd(item: TItem): boolean; getArray(): readonly TItem[]; getSet(): ReadonlySet<TItem>; } /** * @public * {@inheritDoc IDirtyCheckedUniqueCollection} */ export declare class DirtyCheckedUniqueCollection<TItem> implements IDirtyCheckedUniqueCollection<TItem>, ISetLike<TItem> { get size(): number; isDirty: boolean; static mapInitializeAdd<TKey, TValue>(map: Map<TKey, IDirtyCheckedUniqueCollection<TValue>>, key: TKey, value: TValue): boolean; static mapInitializeAdd<TKey extends object, TValue>(map: WeakMap<TKey, IDirtyCheckedUniqueCollection<TValue>>, key: TKey, value: TValue): boolean; constructor(itemsToCopy?: readonly TItem[] | ReadonlySet<TItem>); add(item: TItem): void; reportingAdd(item: TItem): boolean; delete(item: TItem): boolean; has(item: TItem): boolean; clear(): void; getArray(): readonly TItem[]; getSet(): ReadonlySet<TItem>; private readonly itemsSet; private itemsArray; } //# sourceMappingURL=dirty-checked-unique-collection.d.ts.map