123456789101112131415161718192021222324 |
- /**
- * 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 }
|