gamesocket.io
Version:
Simple event-oriented API for uWebSocket.js
53 lines (52 loc) • 2.96 kB
TypeScript
/**
* Структура данных, выполняющая функции массива и соверщающая дополнительные оптимизации.
* @template {Object}T тип хранимых объектов
*/
export declare class List<T extends Object> {
/** Массив внутренних элементов, которые доступны только наследникам */
protected _elements: Array<T | undefined>
/**
* Специальное значение, которое используется для определения свободных мест внутри массива
* в случае, если будет указан настраеваемый undefined, движок V8 сможет сделать дополнительные оптимизации
*/
protected _undefined: undefined | T
/**
* Задает массиву начальный размер и запаолняет его {@link List._undefined | 'List._undefined'}
*/
constructor(undefinedValue?: T)
/** Генератор значений элементов. Возвращает любые значения, которые не равны {@link List._undefined | 'List._undefined'} */
values(): Generator<T | undefined, void, unknown>
/**
* Добавляет набор новых элементов типа T.
* @return false, если один из элементов оказался {@link List._undefined} и добавляет остальные элементы. true в остальных случаях
*/
add(...elements: Array<T>): boolean
/**
* Добавляет элеммент типа T.
* @return -1, если один из элементов оказался {@link List._undefined} или index вставленного объекта в случае успеха.
*/
addOne(element: T): number
/**
* Удаляет набор элемментов типа T.
* @returns false, если один из элементов оказался {@link List._undefined} или он не был найден в {@link List._elements} и удаляет остальные элементы. true в остальных случаях
*/
delete(...elements: Array<T>): boolean
indexOf(element: T): number
valueOf(index: number): T | undefined
isUndefined(index: number): boolean
/**
* @returns индекс свободной позиции внутри массива.
*/
get freeSpace(): number
/**
* @returns true, если внутри {@link List._elements} есть хотя бы один элемент вида {@link List._undefined}
*/
protected get _hasFreeSpace(): number
/**
*
* @param объект, который нужно найти
* @returns индекс найденного объекта или -1
*/
protected _getElement(element: T): number
}
//# sourceMappingURL=List.d.ts.map