gnablib
Version:
A lean, zero dependency library to provide a useful base for your project.
157 lines (156 loc) • 8.68 kB
TypeScript
/*! Copyright 2023-2024 the gnablib contributors MPL-1.1 */
import { IReadTyped } from './interfaces/IReadTyped.js';
import type { IReadArray } from './interfaces/IReadArray.js';
import type { IReadWriteArray } from './interfaces/IReadWriteArray.js';
import { IWriteTyped } from './interfaces/IWriteTyped.js';
import { IBufferer } from './interfaces/IBufferer.js';
import { IBuildable } from './interfaces/IBuildable.js';
declare const consoleDebugSymbol: unique symbol;
declare class SharedTyped<T extends IReadTyped<T>> {
protected _view: T;
[index: number]: number;
constructor(_view: T);
get byteLength(): number;
get byteOffset(): number;
get BYTES_PER_ELEMENT(): number;
get length(): number;
get capacity(): number;
at(idx: number): number | undefined;
clone(start?: number | undefined, end?: number | undefined): T;
entries(): IterableIterator<[number, number]>;
every(predicate: (value: number, index: number) => unknown, thisArg?: unknown): boolean;
filter(predicate: (value: number, index: number) => unknown, thisArg?: unknown): T;
find(predicate: (value: number, index: number) => boolean, thisArg?: unknown): number | undefined;
findIndex(predicate: (value: number, index: number) => boolean, thisArg?: unknown): number;
forEach(action: (value: number, index: number) => void, thisArg?: unknown): void;
includes(searchElement: number, fromIndex?: number | undefined): boolean;
indexOf(searchElement: number, fromIndex?: number | undefined): number;
join(separator?: string): string;
keys(): IterableIterator<number>;
lastIndexOf(searchElement: number, fromIndex?: number): number;
map(callBack: (value: number, index: number) => number, thisArg?: unknown): T;
some(predicate: (value: number, index: number) => unknown, thisArg?: unknown): boolean;
values(): IterableIterator<number>;
toString(): string;
toJSON(): unknown;
[consoleDebugSymbol](): T;
[Symbol.iterator](): IterableIterator<number>;
}
export declare class ReadonlyTyped<T extends IReadTyped<T>> extends SharedTyped<T> implements IReadArray<T> {
private readonly base;
constructor(base: IBuildable<T>, data: ArrayBufferLike | IBufferer, startEl?: number, lengthEls?: number);
readonlySpan(start?: number | undefined, end?: number | undefined): IReadArray<T>;
get [Symbol.toStringTag](): string;
}
export declare class FixedTyped<T extends IWriteTyped<T>> extends SharedTyped<T> implements IReadWriteArray<T> {
private readonly base;
constructor(base: IBuildable<T>, data: ArrayBufferLike | IBufferer, start?: number, length?: number);
setEl(idx: number, value: number): void;
fill(value: number, start?: number | undefined, length?: number | undefined): IReadWriteArray<T>;
readonlySpan(start?: number | undefined, end?: number | undefined): IReadArray<T>;
reverse(): IReadWriteArray<T>;
set(array: ArrayLike<number>, offset?: number | undefined): void;
sort(compareFn?: ((a: number, b: number) => number) | undefined): IReadWriteArray<T>;
span(start?: number | undefined, length?: number | undefined): IReadWriteArray<T>;
get [Symbol.toStringTag](): string;
}
export declare class ScalingTyped<T extends IWriteTyped<T>> extends SharedTyped<T> implements IReadWriteArray<T> {
private readonly base;
private _data;
private _sizeLocked;
constructor(base: IBuildable<T>, length: number | undefined, capacity: number | undefined);
private _resize;
private assertSpace;
get capacity(): number;
set capacity(elCount: number);
fill(value: number, start?: number | undefined, length?: number | undefined): IReadWriteArray<T>;
readonlySpan(start?: number | undefined, length?: number | undefined): IReadArray<T>;
reverse(): IReadWriteArray<T>;
set(array: ArrayLike<number>, offset?: number | undefined): void;
setEl(idx: number, value: number): void;
sort(compareFn?: ((a: number, b: number) => number) | undefined): IReadWriteArray<T>;
span(start?: number | undefined, length?: number | undefined): IReadWriteArray<T>;
get [Symbol.toStringTag](): string;
}
export declare class ReadonlyUint8Array extends ReadonlyTyped<Uint8Array> {
constructor(data: ArrayBufferLike | IBufferer, startEl?: number | undefined, lengthEls?: number | undefined);
}
export declare class ReadonlyUint16Array extends ReadonlyTyped<Uint16Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, length?: number | undefined);
}
export declare class ReadonlyUint32Array extends ReadonlyTyped<Uint32Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, end?: number | undefined);
}
export declare class ReadonlyInt8Array extends ReadonlyTyped<Int8Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, end?: number | undefined);
}
export declare class ReadonlyInt16Array extends ReadonlyTyped<Int16Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, end?: number | undefined);
}
export declare class ReadonlyInt32Array extends ReadonlyTyped<Int32Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, end?: number | undefined);
}
export declare class ReadonlyFloat32Array extends ReadonlyTyped<Float32Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, end?: number | undefined);
}
export declare class ReadonlyFloat64Array extends ReadonlyTyped<Float64Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, end?: number | undefined);
}
export declare class ReadonlyUint8ClampedArray extends ReadonlyTyped<Uint8ClampedArray> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, end?: number | undefined);
}
export declare class FixedUint8Array extends FixedTyped<Uint8Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, length?: number | undefined);
}
export declare class FixedUint16Array extends FixedTyped<Uint16Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, length?: number | undefined);
}
export declare class FixedUint32Array extends FixedTyped<Uint32Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, end?: number | undefined);
}
export declare class FixedInt8Array extends FixedTyped<Int8Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, end?: number | undefined);
}
export declare class FixedInt16Array extends FixedTyped<Int16Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, end?: number | undefined);
}
export declare class FixedInt32Array extends FixedTyped<Int32Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, end?: number | undefined);
}
export declare class FixedFloat32Array extends FixedTyped<Float32Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, end?: number | undefined);
}
export declare class FixedFloat64Array extends FixedTyped<Float64Array> {
constructor(data: ArrayBufferLike | IBufferer, start?: number | undefined, end?: number | undefined);
}
export declare class FixedUint8ClampedArray extends FixedTyped<Uint8ClampedArray> {
constructor(data: ArrayBuffer | Uint8ClampedArray, start?: number | undefined, end?: number | undefined);
}
export declare class ScalingUint8Array extends ScalingTyped<Uint8Array> {
constructor(length?: number, capacity?: number);
}
export declare class ScalingUint16Array extends ScalingTyped<Uint16Array> {
constructor(length?: number, capacity?: number);
}
export declare class ScalingUint32Array extends ScalingTyped<Uint32Array> {
constructor(length?: number, capacity?: number);
}
export declare class ScalingInt8Array extends ScalingTyped<Int8Array> {
constructor(length?: number, capacity?: number);
}
export declare class ScalingInt16Array extends ScalingTyped<Int16Array> {
constructor(length?: number, capacity?: number);
}
export declare class ScalingInt32Array extends ScalingTyped<Int32Array> {
constructor(length?: number, capacity?: number);
}
export declare class ScalingFloat32Array extends ScalingTyped<Float32Array> {
constructor(length?: number, capacity?: number);
}
export declare class ScalingFloat64Array extends ScalingTyped<Float64Array> {
constructor(length?: number, capacity?: number);
}
export declare class ScalingUint8ClampedArray extends ScalingTyped<Uint8ClampedArray> {
constructor(length?: number, capacity?: number);
}
export {};