@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
89 lines • 1.83 kB
TypeScript
/**
* Fixed-sized container structure, where ends are connected into a circle/ring
* This is a FIFO structure (first in, first out)
* @see https://en.wikipedia.org/wiki/Circular_buffer
* @template V
*/
export class RingBuffer<V> {
/**
* @param {number} size
*/
constructor(size: number);
/**
* Capacity of the buffer, number of slots
* @type {number}
*/
size: number;
/**
*
* @type {number}
*/
head: number;
/**
*
* @type {number}
*/
tail: number;
/**
* Number of used slots. Starts at 0, goes up to {@link #size}
* @type {number}
*/
count: number;
/**
*
* @type {V[]}
*/
data: V[];
/**
*
* @param {number} new_size
*/
resize(new_size: number): void;
/**
*
* @return {V}
*/
getHead(): V;
/**
*
* @param {number} offset
* @returns {V}
*/
getFromHead(offset: number): V;
clear(): void;
/**
*
* @param {V} element
*/
push(element: V): void;
/**
* Remove element from the tail
* @returns {V|undefined}
*/
shift(): V | undefined;
/**
*
* @param {number} index
*/
removeElementByIndex(index: number): void;
/**
* Removed first element that fulfills the criteria
* @param {function(V):boolean} condition
* @param {*} [thisArg]
* @returns {V|undefined}
*/
removeIf(condition: (arg0: V) => boolean, thisArg?: any): V | undefined;
/**
*
* @param {function(V)} visitor
* @param {*} [thisArg]
*/
forEach(visitor: (arg0: V) => any, thisArg?: any): void;
/**
*
* @param {V} value
* @returns {boolean}
*/
contains(value: V): boolean;
}
//# sourceMappingURL=RingBuffer.d.ts.map