fastds
Version:
Fast, Zero-Dependency, TypeScript-based data structures for high-performance applications.
42 lines (41 loc) • 1.49 kB
TypeScript
export interface FilterFunction<T> {
(value: T, index: number): boolean;
}
export declare class RingBuffer<T> {
#private;
static from<T>(values: T[]): RingBuffer<T>;
readonly [Symbol.toStringTag] = "RingBuffer";
constructor(capacity?: number);
get capacity(): number;
get length(): number;
isEmpty(): boolean;
isWrapped(): boolean;
getHeadOffset(index: number): number;
getTailOffset(index: number): number;
resize(capacity: number): boolean;
grow(capacity?: number): void;
allocate(index: number, count: number): boolean;
deallocate(index: number, count: number): boolean;
indexOf(value: T, index?: number): number;
unwrap(): boolean;
compact(filter: FilterFunction<T>): boolean;
set(index: number, values: T[], insert?: boolean): boolean;
setOne(index: number, value: T, insert?: boolean): boolean;
slice(start?: number, end?: number): T[];
removeOne(index: number): number;
removeFirst(value: T, index?: number): number;
remove(index: number, count: number): T[];
push(value: T): this;
unshift(value: T): this;
shift(): T | undefined;
pop(): T | undefined;
peekAt(index: number): T | undefined;
peekFirst(): T | undefined;
peekLast(): T | undefined;
has(value: T): boolean;
clear(): this;
toArray(): T[];
drain(): IteratorObject<T, void, unknown>;
iter(): IteratorObject<T, void, unknown>;
[Symbol.iterator](): Iterator<T, void, unknown>;
}