mirror of
https://github.com/musix-org/musix-oss
synced 2024-11-14 03:30:18 +00:00
33 lines
873 B
TypeScript
33 lines
873 B
TypeScript
|
export = pool;
|
||
|
|
||
|
/**
|
||
|
* An allocator as used by {@link util.pool}.
|
||
|
* @typedef PoolAllocator
|
||
|
* @type {function}
|
||
|
* @param {number} size Buffer size
|
||
|
* @returns {Uint8Array} Buffer
|
||
|
*/
|
||
|
type PoolAllocator = (size: number) => Uint8Array;
|
||
|
|
||
|
/**
|
||
|
* A slicer as used by {@link util.pool}.
|
||
|
* @typedef PoolSlicer
|
||
|
* @type {function}
|
||
|
* @param {number} start Start offset
|
||
|
* @param {number} end End offset
|
||
|
* @returns {Uint8Array} Buffer slice
|
||
|
* @this {Uint8Array}
|
||
|
*/
|
||
|
type PoolSlicer = (this: Uint8Array, start: number, end: number) => Uint8Array;
|
||
|
|
||
|
/**
|
||
|
* A general purpose buffer pool.
|
||
|
* @memberof util
|
||
|
* @function
|
||
|
* @param {PoolAllocator} alloc Allocator
|
||
|
* @param {PoolSlicer} slice Slicer
|
||
|
* @param {number} [size=8192] Slab size
|
||
|
* @returns {PoolAllocator} Pooled allocator
|
||
|
*/
|
||
|
declare function pool(alloc: PoolAllocator, slice: PoolSlicer, size?: number): PoolAllocator;
|