muschema
Version:
Schemas for mudb
15 lines (14 loc) • 500 B
TypeScript
import { MuReadStream, MuWriteStream } from 'mustreams';
export interface MuSchema<Value> {
readonly identity: Value;
readonly muType: string;
readonly muData?: any;
readonly json: object;
alloc(): Value;
free(state: Value): void;
equal(base: Value, target: Value): boolean;
clone(state: Value): Value;
copy(source: Value, target: Value): void;
diff(base: Value, target: Value, out: MuWriteStream): boolean;
patch(base: Value, inp: MuReadStream): Value;
}