UNPKG

hamok

Version:

Lightweight Distributed Object Storage on RAFT consensus algorithm

28 lines 1.92 kB
export interface HamokEncoder<U, R> { encode(data: U): R; } export interface HamokDecoder<U, R> { decode(data: R): U; } export declare function createHamokCodec<U, R>(encode: (input: U) => R, decode: (input: R) => U): HamokCodec<U, R>; export declare function createHamokJsonBinaryCodec<T>(): HamokCodec<T, Uint8Array>; export declare function createHamokJsonStringCodec<T>(): HamokCodec<T, string>; export interface HamokCodec<U, R> extends HamokEncoder<U, R>, HamokDecoder<U, R> { } export declare class FacadedHamokCodec<TIn = any, TOut = any> implements HamokCodec<TIn, TOut> { static wrap<U = any, R = any>(codec: HamokCodec<U, R>): FacadedHamokCodec<U, R>; private _codec; private constructor(); encode(data: TIn): TOut; decode(data: TOut): TIn; then<TNextOut = TOut>(nextCodec: HamokCodec<TOut, TNextOut>): FacadedHamokCodec<TIn, TNextOut>; } export declare function encodeCollection<K>(keys: IterableIterator<K>, keyCodec: HamokCodec<K, Uint8Array>): Uint8Array[]; export declare function decodeCollection<K>(keys: IterableIterator<Uint8Array>, keyCodec: HamokCodec<K, Uint8Array>): K[]; export declare function encodeSet<K>(keys: ReadonlySet<K>, keyCodec: HamokCodec<K, Uint8Array>): Uint8Array[]; export declare function decodeSet<K>(keys: Uint8Array[], keyCodec: HamokCodec<K, Uint8Array>): ReadonlySet<K>; export declare function encodeMap<K, V>(entries: ReadonlyMap<K, V>, keyCodec: HamokCodec<K, Uint8Array>, valueCodec: HamokCodec<V, Uint8Array>): [Uint8Array[], Uint8Array[]]; export declare function decodeMap<K, V>(keys: Uint8Array[], values: Uint8Array[], keyCodec: HamokCodec<K, Uint8Array>, valueCodec: HamokCodec<V, Uint8Array>): ReadonlyMap<K, V>; export declare function encodeNumber(value: number): Uint8Array; export declare function createStrToUint8ArrayCodec(encoding?: BufferEncoding): HamokCodec<string, Uint8Array>; //# sourceMappingURL=HamokCodec.d.ts.map