UNPKG

rc-js-util

Version:

A collection of TS and C++ utilities to help writing performant and correct applications, achieved through strict typing and (removable) invariant checking.

26 lines 2.28 kB
import { ITypedArrayTupleFactory } from "./i-typed-array-tuple-factory.js"; import { INormalizedDataView } from "./normalized-data-view/i-normalized-data-view.js"; import { ATypedArrayTuple } from "./a-typed-array-tuple.js"; import { TTypedArray } from "./t-typed-array.js"; import type { ENumberIdentifier } from "../../runtime/rtti-interop.js"; import type { EVectorIdentifier, ISharedVectorBindings } from "../../web-assembly/resizable-array/i-shared-vector-bindings.js"; import { IEmscriptenWrapper } from "../../web-assembly/emscripten/i-emscripten-wrapper.js"; import type { IManagedResourceNode } from "../../lifecycle/manged-resources.js"; import { type ITypedArrayTuple } from "../../web-assembly/shared-array/typed-array-tuple.js"; export declare abstract class ATypedTupleFactory<TArray extends ATypedArrayTuple<number, TTypedArray>, TCtorArgs extends number[]> implements ITypedArrayTupleFactory<TArray, TCtorArgs> { readonly elementCount: number; protected readonly bytesPerElement: number; protected dataView: INormalizedDataView; readonly numberId: ENumberIdentifier; readonly vectorId: EVectorIdentifier; readonly byteSize: number; protected constructor(elementCount: number, bytesPerElement: number, dataView: INormalizedDataView, numberId: ENumberIdentifier, vectorId: EVectorIdentifier); abstract createShared(wrapper: IEmscriptenWrapper<ISharedVectorBindings>, owner: IManagedResourceNode | null): ITypedArrayTuple<TArray>; abstract createOne(...args: TCtorArgs): TArray; abstract createOneEmpty(): TArray; copyFromBuffer(memoryDataView: DataView, pointer: number, writeTo?: TArray, littleEndian?: boolean): TArray; copyToBuffer(memoryDataView: DataView, writeFrom: Readonly<TArray>, pointer: number, littleEndian?: boolean): void; protected static createSharedVector<TArray extends ATypedArrayTuple<number, TTypedArray>>(wrapper: IEmscriptenWrapper<ISharedVectorBindings>, owner: IManagedResourceNode | null, ctor: new (buffer: ArrayBufferLike, offset: number, byteSize: number) => TArray, bufferFactory: ITypedArrayTupleFactory<ATypedArrayTuple<number, TTypedArray>, number[]>): ITypedArrayTuple<TArray>; protected static littleEndian: boolean; } //# sourceMappingURL=a-typed-tuple-factory.d.ts.map