@se-puu/qpack
Version:
Quick serializer and de-serializer
23 lines (22 loc) • 985 B
TypeScript
import { ExtEntry } from "../lib/ext-registry";
import { QEncoder } from "./encoder";
/**
* encodeable binary data type
*/
export type EncodeableBinary = Uint8ClampedArray | Uint8Array | Uint16Array | Uint32Array | BigUint64Array | Int8Array | Int16Array | Int32Array | BigInt64Array | Float32Array | Float64Array | DataView;
/**
* encodeable data type that supported by QEncoder
*/
export type Encodeable = Date | number | string | boolean | object | bigint | undefined | null | EncodeableBinary | {
constructor: ExtEntry<object>;
};
/**
* encoder sync handler
*/
export type EncoderSyncHandler<T> = (encoder: QEncoder, data: T) => boolean;
export type _EncoderSyncHandler<T> = T extends Encodeable ? EncoderSyncHandler<T> : never;
/**
* create encoder handler map
* @returns encoder handler map
*/
export declare function createEncoder(): WeakMap<object, _EncoderSyncHandler<Encodeable> | _EncoderSyncHandler<Encodeable[]> | _EncoderSyncHandler<Map<unknown, unknown>>>;