@phensley/cldr-core
Version:
Core library for @phensley/cldr
23 lines (22 loc) • 613 B
TypeScript
export declare type Node<K, V> = {
key: K;
val: V;
next?: Node<K, V>;
prev?: Node<K, V>;
};
/**
* Cache evicts the least-recently-used key when capacity is exceeded.
*/
export declare class LRU<K, V> {
private readonly storage;
private readonly root;
private readonly capacity;
constructor(capacity?: number);
size(): number;
get(key: K): V | undefined;
set(key: K, val: V): void;
toString(): string;
protected moveFront(n: Node<K, V>): void;
protected insert(e: Node<K, V>, at: Node<K, V>): Node<K, V>;
protected remove(n: Node<K, V>): Node<K, V>;
}