cspell-lib
Version:
A library of useful functions used across various cspell tools.
47 lines • 1.42 kB
TypeScript
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