-
David Sehnal authoredDavid Sehnal authored
unique-array.ts 569 B
/**
* Copyright (c) 2017 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author David Sehnal <david.sehnal@gmail.com>
*/
interface UniqueArray<K, T> {
keys: Set<K>,
array: T[]
}
namespace UniqueArray {
export function create<K, T>(): UniqueArray<K, T> {
return { keys: new Set<K>(), array: [] };
}
export function add<K, T>({ keys, array }: UniqueArray<K, T>, key: K, value: T) {
if (keys.has(key)) return;
keys.add(key);
array[array.length] = value;
}
}
export { UniqueArray }