biner
Version:
Declarative binary data encoder / decoder.
18 lines (17 loc) • 499 B
TypeScript
import { BinaryStream } from "./bs";
import * as symbols from "./internal/symbols";
export interface DataEncodeType {
encode: Function;
}
export interface DataDecodeType {
decode: Function;
}
export interface DataType extends DataEncodeType, DataDecodeType {
encodingLength?: Function;
}
export interface Codec<T> {
[symbols.skip]?: boolean;
encode(value: T, wstream: BinaryStream): number;
decode(rstream: BinaryStream): [T, number];
encodingLength(value: T): number;
}