Sha256: f92812ce75d568895711de408fccf80547b1c0525c473d514f7ed7d01a347ed5
Contents?: true
Size: 820 Bytes
Versions: 49
Compression:
Stored size: 820 Bytes
Contents
import { root } from './root'; export interface ISetCtor { new<T>(): ISet<T>; } export interface ISet<T> { add(value: T): void; has(value: T): boolean; size: number; clear(): void; } export function minimalSetImpl<T>(): ISetCtor { // THIS IS NOT a full impl of Set, this is just the minimum // bits of functionality we need for this library. return class MinimalSet<T> implements ISet<T> { private _values: T[] = []; add(value: T): void { if (!this.has(value)) { this._values.push(value); } } has(value: T): boolean { return this._values.indexOf(value) !== -1; } get size(): number { return this._values.length; } clear(): void { this._values.length = 0; } }; } export const Set: ISetCtor = root.Set || minimalSetImpl();
Version data entries
49 entries across 49 versions & 4 rubygems