array-ring
Version:
Advanced Array and Ring structure for Large data: A High-Performance Solution, mostly created to implement array methods, bringing 2 data structures, An efficient resizable array with similar methods to javascript array which are optmized methods like shi
23 lines (22 loc) • 835 B
TypeScript
export declare class RingBuffer<T> {
private buffer;
private size;
private start;
private end;
private count;
constructor(size: number);
private resize;
push(item: T): void;
pop(): T | null;
unshift(item: T): void;
shift(): T | null;
forEach(callback: (item: T, index: number) => void): void;
map<U>(callback: (item: T, index: number) => U): U[];
reduce<U>(callback: (accumulator: U, item: T, index: number) => U, initialValue: U): U;
at(index: number): T | null;
find(predicate: (value: T, index: number) => boolean): T | undefined;
findIndex(predicate: (value: T, index: number) => boolean): number;
some(predicate: (value: T, index: number) => boolean): boolean;
every(predicate: (value: T, index: number) => boolean): boolean;
get length(): number;
}