All files / src define.ts

100% Statements 9/9
100% Branches 0/0
100% Functions 4/4
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2219x     19x 446x 446x       3x 2x     1x 1x     3x        
import { createContext, contextDes, contextSer } from "./context";
import { Des, SerDes, Ser } from "./types";
 
export function define<T>(ser: Ser<T>, des: Des<T>): SerDes<T> {
  const ctx = createContext();
  return {
    ser,
    des,
    toBytes(data) {
      contextSer(ctx, ser, data);
      return ctx.bytes.slice(0, ctx.i);
    },
    toTempBytes(data) {
      contextSer(ctx, ser, data);
      return ctx.bytes.subarray(0, ctx.i);
    },
    fromBytes(buf: Uint8Array) {
      return contextDes(ctx, des, buf);
    }
  };
}