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.

40 lines 2.15 kB
import { TTypedArray } from "./t-typed-array.js"; import { ITypedArrayExtensions } from "./i-typed-array-extensions.js"; import { ITypedArrayCtor } from "./i-typed-array-ctor.js"; import { ITypedArrayTupleFactory } from "./i-typed-array-tuple-factory.js"; import { ISharedMemoryBlock } from "../../web-assembly/shared-memory/shared-memory-block.js"; import { IEmscriptenWrapper } from "../../web-assembly/emscripten/i-emscripten-wrapper.js"; import { ATypedArrayTuple } from "./a-typed-array-tuple.js"; import type { IManagedObject, IManagedResourceNode } from "../../lifecycle/manged-resources.js"; import type { IInteropBindings } from "../../web-assembly/emscripten/i-interop-bindings.js"; /** * @public * Wrapper of block of memory that is the same size as `TArray`. Provides utility functions with stronger typing than * {@link ISharedMemoryBlock}. */ export interface ISharedTypedArrayTuple<TArray extends (ATypedArrayTuple<number, TTypedArray> & ITypedArrayExtensions)> extends IManagedObject { memory: ISharedMemoryBlock; copyToBuffer(readFrom: TArray): void; copyFromBuffer(writeTo: TArray): void; } /** * @public */ export type TExtendedTypedArrayCtor<TArray extends ATypedArrayTuple<number, TTypedArray>> = ITypedArrayCtor<TArray> & { factory: ITypedArrayTupleFactory<any, any>; }; /** @public {@inheritDoc ISharedTypedArrayTuple} */ export declare class SharedTypedArrayTuple<TArray extends (ATypedArrayTuple<number, TTypedArray> & ITypedArrayExtensions)> implements ISharedTypedArrayTuple<TArray> { readonly memory: ISharedMemoryBlock; resourceHandle: IManagedResourceNode; static createOne<TArray extends (ATypedArrayTuple<number, TTypedArray> & ITypedArrayExtensions)>(typedArrayCtor: TExtendedTypedArrayCtor<TArray>, bindToReference: IManagedResourceNode | null, wrapper: IEmscriptenWrapper<IInteropBindings>): ISharedTypedArrayTuple<TArray>; getWrapper(): IEmscriptenWrapper<IInteropBindings>; copyToBuffer(readFrom: TArray): void; copyFromBuffer(writeTo: TArray): void; private constructor(); private static littleEndian; } //# sourceMappingURL=shared-typed-array-tuple.d.ts.map