UNPKG

cspell-lib

Version:

A library of useful functions used across various cspell tools.

47 lines 1.42 kB
export declare class SimpleWeakCache<K extends object, T> { readonly size: number; private L0; private L1; private L2; private sizeL0; constructor(size: number); has(key: K): boolean; get(key: K): T | undefined; set(key: K, value: T): void; private _set; private caches; private rotate; } export declare class AutoWeakCache<K extends object, T> extends SimpleWeakCache<K, T> { readonly factory: (key: K) => T; constructor(factory: (key: K) => T, size: number); get(key: K): T; } /** * This will cache between `size` and 3 x `size` items. * It has three stashes, L0, L1, and L2. Each can contain `size` items. * When L0 is full, its items are given to L1 and L1's are given to L2, and L2 is empties. * * The stashes are searched in order, L0...L2. If an item is found in L1, or L2, it is * promoted to L0. */ export declare class SimpleCache<K, T> { readonly size: number; private L0; private L1; private L2; constructor(size: number); has(key: K): boolean; get(key: K): T | undefined; set(key: K, value: T): void; delete(key: K): boolean; private _set; private caches; private rotate; } export declare class AutoCache<K, T> extends SimpleCache<K, T> { readonly factory: (key: K) => T; constructor(factory: (key: K) => T, size: number); get(key: K): T; } //# sourceMappingURL=simpleCache.d.ts.map