struffer
Version:
Struct + Buffer = Struffer
45 lines (44 loc) • 1.93 kB
TypeScript
/// <reference types="node" />
import { BinaryValue, MemberInfo } from './common';
/**
* Struct + Buffer
*
* Also works with Uint8Arrays
* @param strufferName The name of your struffer
* @param structure The definition of your struffer. An array of `[type, name]` for each member.
* @returns Your custom struffer class
*/
export default function (strufferName: string, structure: [string, string][]): {
new (buf: Uint8Array | Buffer, offset?: number): {
readonly kind: string;
readonly info: Map<string, MemberInfo>;
readonly order: string[];
getBits(name: string): BinaryValue[];
setBits(name: string, _bits: BinaryValue[]): void;
buffer: Uint8Array | Buffer;
structure: import("./common").MemberDictionary;
offset: number;
readonly size: number;
readonly [Symbol.toStringTag]: "Map";
get(name: string): number | undefined;
set(name: string, value: number): any;
has(name: string): boolean;
delete(name: string): boolean;
clear(): void;
forEach(cb: (value: number, key: string, map: any) => void, thisArg?: any): void;
getMany(members?: string[]): import("./common").MemberDictionary;
setMany(dictionary: import("./common").MemberDictionary): void;
hasMany(members: string[]): import("./common").MemberPresenceTable;
deleteMany(members: string[]): boolean;
keys(): IterableIterator<string>;
values(): IterableIterator<number>;
entries(): IterableIterator<[string, number]>;
[Symbol.iterator](): IterableIterator<[string, number]>;
bits(): IterableIterator<BinaryValue[]>;
bitEntries(): IterableIterator<[string, BinaryValue[]]>;
toString(): string;
[Symbol.toPrimitive](hint: "string" | "number" | "default"): string;
};
readonly byteLength: number;
readonly bitLength: number;
};