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.
35 lines • 1.88 kB
TypeScript
import { ATypedArrayTuple } from "../../array/typed-array/a-typed-array-tuple.js";
import { TTypedArray } from "../../array/typed-array/t-typed-array.js";
import type { IManagedObject, IManagedResourceNode, IPointer } from "../../lifecycle/manged-resources.js";
import { IEmscriptenWrapper } from "../emscripten/i-emscripten-wrapper.js";
import { ENumberIdentifier } from "../../runtime/rtti-interop.js";
import type { ISharedVectorBindings } from "../resizable-array/i-shared-vector-bindings.js";
/**
* @public
*/
export interface ITypedArrayTuple<TArray extends ATypedArrayTuple<number, TTypedArray>> extends IManagedObject, IPointer {
readonly ctor: new (buffer: ArrayBufferLike, offset: number, byteSize: number) => TArray;
readonly numberId: ENumberIdentifier;
readonly byteSize: number;
getSharedObjectHandle(): IManagedObject | null;
getDataView(): DataView;
getArray(): TArray;
}
/**
* @public
*/
export declare class TypedArrayTuple<TArray extends ATypedArrayTuple<number, TTypedArray>> implements ITypedArrayTuple<TArray> {
protected readonly wrapper: IEmscriptenWrapper<ISharedVectorBindings>;
readonly ctor: new (buffer: ArrayBufferLike, offset: number, byteSize: number) => TArray;
readonly resourceHandle: IManagedResourceNode;
readonly pointer: number;
readonly byteSize: number;
readonly numberId: ENumberIdentifier;
constructor(wrapper: IEmscriptenWrapper<ISharedVectorBindings>, owner: IManagedResourceNode | null, ctor: new (buffer: ArrayBufferLike, offset: number, byteSize: number) => TArray, pointerToData: number, numberId: ENumberIdentifier, byteSize: number);
getWrapper(): IEmscriptenWrapper<ISharedVectorBindings>;
getSharedObjectHandle(): IManagedObject;
getDataView(): DataView;
getArray(): TArray;
private readonly impl;
}
//# sourceMappingURL=typed-array-tuple.d.ts.map