@cloudpss/ubjson
Version:
Opinionated UBJSON encoder/decoder for CloudPSS.
53 lines • 2.16 kB
TypeScript
import type { DecodeOptions } from '../options.js';
/**
* 数据读取函数
* `yield` 返回需要的字节数,`return` 返回解析结果
*/
export type DecodeFuncAe<T = unknown> = Generator<number, T, void>;
/** 数据包装 */
export interface DecodeCursorAe {
/** 当前数据块 */
readonly view: DataView;
/** 当前数据块 */
readonly data: Uint8Array;
/** 当前数据大小 */
readonly size: number;
/** 当前读指针位置 */
offset: number;
/** 选项 */
readonly options: DecodeOptions | undefined;
}
/** 创建数据包装 */
export declare function DecodeCursor(data: BufferSource, options?: DecodeOptions): DecodeCursorAe;
/**
* 读取第一个非 NOOP 的字节
*/
export declare function readMarker(cursor: DecodeCursorAe): DecodeFuncAe<number>;
/** 读取一个大于 0 的整数 */
export declare function readLength(cursor: DecodeCursorAe): DecodeFuncAe<number>;
/** readInt8Data */
export declare function readInt8Data(cursor: DecodeCursorAe): DecodeFuncAe<number>;
/** readUint8Data */
export declare function readUint8Data(cursor: DecodeCursorAe): DecodeFuncAe<number>;
/** readInt16Data */
export declare function readInt16Data(cursor: DecodeCursorAe): DecodeFuncAe<number>;
/** readInt32Data */
export declare function readInt32Data(cursor: DecodeCursorAe): DecodeFuncAe<number>;
/** readInt64Data */
export declare function readInt64Data(cursor: DecodeCursorAe): DecodeFuncAe<bigint>;
/** readFloat32Data */
export declare function readFloat32Data(cursor: DecodeCursorAe): DecodeFuncAe<number>;
/** readFloat64Data */
export declare function readFloat64Data(cursor: DecodeCursorAe): DecodeFuncAe<number>;
/** 读取数据 */
export declare function read(cursor: DecodeCursorAe): DecodeFuncAe<unknown>;
/** 根据标签读取后续数据 */
export declare function readData(cursor: DecodeCursorAe, marker: number): DecodeFuncAe<unknown>;
/** readKey */
export declare function readKey(cursor: DecodeCursorAe): DecodeFuncAe<string>;
/** Optimized Format 数据 */
export type OptimizedFormatMarkers = {
type?: number;
count: number;
};
//# sourceMappingURL=decode-ae.d.ts.map