UNPKG

@thi.ng/binary

Version:

100+ assorted binary / bitwise operations, conversions, utilities, lookup tables

46 lines 2.4 kB
import type { NumericArray } from "@thi.ng/api"; /** * JS native DataView-like functionality, but tailored for using `Uint8Array` or * vanilla JS numeric arrays (assuming the array contains U8 values). Use * {@link DATAVIEW} for default implementation. * * @remarks * The default byte ordering used for all accessors is Little Endian, but can be * overriden via `isLE` args. * * **IMPORTANT:** None of the operations perform any bounds checking. */ export interface IDataView { getI8(data: ArrayLike<number>, addr: number, isLE?: boolean): number; getU8(data: ArrayLike<number>, addr: number, isLE?: boolean): number; getI16(data: ArrayLike<number>, addr: number, isLE?: boolean): number; getU16(data: ArrayLike<number>, addr: number, isLE?: boolean): number; getI32(data: ArrayLike<number>, addr: number, isLE?: boolean): number; getU32(data: ArrayLike<number>, addr: number, isLE?: boolean): number; getU64(data: ArrayLike<number>, addr: number, isLE?: boolean): bigint; getI64(data: ArrayLike<number>, addr: number, isLE?: boolean): bigint; getF32(data: ArrayLike<number>, addr: number, isLE?: boolean): number; getF64(data: ArrayLike<number>, addr: number, isLE?: boolean): number; setI8(data: NumericArray, addr: number, val: number, isLE?: boolean): void; setU8(data: NumericArray, addr: number, val: number, isLE?: boolean): void; setI16(data: NumericArray, addr: number, val: number, isLE?: boolean): void; setU16(data: NumericArray, addr: number, val: number, isLE?: boolean): void; setI32(data: NumericArray, addr: number, val: number, isLE?: boolean): void; setU32(data: NumericArray, addr: number, val: number, isLE?: boolean): void; setI64(data: NumericArray, addr: number, val: bigint, isLE?: boolean): void; setU64(data: NumericArray, addr: number, val: bigint, isLE?: boolean): void; setF32(data: NumericArray, addr: number, val: number, isLE?: boolean): void; setF64(data: NumericArray, addr: number, val: number, isLE?: boolean): void; } /** * Indicator flag if current runtime/platform uses Little Endian byte order. */ export declare const IS_LE: boolean; /** * {@link IDataView} implementation for Big Endian access. * * @remarks * **IMPORTANT:** None of the operations perform any bounds checking. */ export declare const DATAVIEW: IDataView; //# sourceMappingURL=endianess.d.ts.map