UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

63 lines 1.54 kB
/** * @template Key, Value */ export class ImmutableObjectPool<Key, Value> { constructor({ capacity, perKeyCapacity }?: { capacity?: number; perKeyCapacity?: number; }); /** * @readonly * @type {Signal<Key,Value>} */ readonly onRemoved: Signal<Key, Value>; /** * * @type {HashMap<Key, CacheElement<Key,Value>[]>} */ data: HashMap<Key, CacheElement<Key, Value>[]>; /** * * @type {CacheElement<Key,Value>|null} * @private */ private __first; /** * * @type {CacheElement<Key,Value>|null} * @private */ private __last; /** * How many items in total the pool can hold * @type {number} */ capacity: number; /** * Maximum number of items that can be stored for the same key * @type {number} */ perKeyCapacity: number; /** * Current number of elements in the pool * @type {number} */ size: number; get(key: any): Value; /** * Removed all elements from cache * NOTE: {@link onRemoved} signal *does* get triggered for each element */ clear(): void; /** * * @param {CacheElement<Key,Value>} el * @private */ private __removeElement; add(key: any, value: any): boolean; } import Signal from "../../events/signal/Signal.js"; import { HashMap } from "../../collection/map/HashMap.js"; import { CacheElement } from "../../cache/CacheElement.js"; //# sourceMappingURL=ImmutableObjectPool.d.ts.map