@thi.ng/binary
Version:
100+ assorted binary / bitwise operations, conversions, utilities, lookup tables
46 lines • 2.4 kB
TypeScript
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