encompass-gc-optimized-collections
Version:
Provides GC optimized collections in TypeScript and Lua for use with Encompass-TS
29 lines (28 loc) • 961 B
TypeScript
/** @luaIterator @tupleReturn */
export interface IGCOptimizedListEntriesIterable<T> extends Iterable<T> {
}
/** @luaIterator */
export interface IGCOptimizedListValuesIterable<T> extends Iterable<T> {
}
export declare class GCOptimizedList<T> {
static readonly Empty: GCOptimizedList<any>;
readonly size: number;
protected items: Map<number, T>;
protected indices: Map<T, number>;
protected _size: number;
constructor(...entries: T[]);
forEach(callback: (value: T) => any): void;
entries(): IGCOptimizedListEntriesIterable<[number, T]>;
values(): IGCOptimizedListValuesIterable<T>;
add(value: T): void;
clear(): void;
delete(index: number): boolean;
deleteValue(value: T): boolean;
indexOf(value: T): number | null;
get(index: number): T | undefined;
empty(): boolean;
hasIndex(index: number): boolean;
hasValue(value: T): boolean;
shift(): T | undefined;
pop(): T | undefined;
}