@cloudpss/ubjson
Version:
Opinionated UBJSON encoder/decoder for CloudPSS.
38 lines • 1.79 kB
TypeScript
import { constants } from './constants.js';
/** 数据包装 */
export interface EncodeCursor {
/** 数据 */
readonly view: DataView;
/** 数据 */
readonly data: Uint8Array;
/** 当前写指针位置 */
length: number;
/** 确保 buffer 还有 capacity 的空闲空间 */
ensureCapacity(capacity: number): void;
}
/** 创建数据包装 */
export declare function EncodeCursor(length: number): EncodeCursor;
/** 写入标签 */
export declare function writeMarker(cursor: EncodeCursor, marker: constants): void;
export declare const I8_MASK: number;
export declare const U8_MASK: number;
/** 写入长度 */
export declare function writeLength(cursor: EncodeCursor, length: number): void;
/** 写入数字 */
export declare function writeNumber(cursor: EncodeCursor, value: number): void;
/** TypedArray 类型 */
export type TypedArrayType = constants.UINT8 | constants.INT8 | constants.INT16 | constants.INT32 | constants.INT64 | constants.FLOAT32 | constants.FLOAT64;
export declare const U8_ARR_HEADER: number;
export declare const I8_ARR_HEADER: number;
export declare const I16_ARR_HEADER: number;
export declare const I32_ARR_HEADER: number;
export declare const I64_ARR_HEADER: number;
export declare const F32_ARR_HEADER: number;
export declare const F64_ARR_HEADER: number;
/** 写入 TypedArray 前导,包括 marker 和长度 */
export declare function writeTypedArrayHeader(cursor: EncodeCursor, value: ArrayBufferView): TypedArrayType;
/** 写入 TypedArray */
export declare function writeTypedArray(cursor: EncodeCursor, value: ArrayBufferView): void;
/** 写入 TypedArray 数据 */
export declare function writeTypedArrayData(cursor: EncodeCursor, type: TypedArrayType, value: ArrayBufferView): void;
//# sourceMappingURL=encode.d.ts.map