All files / src/typers string.ts

100% Statements 13/13
100% Branches 0/0
100% Functions 3/3
100% Lines 11/11

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    19x   41854x 41854x 41853x 41853x 41834x 41834x 41834x 41834x 41834x     20508x      
import { StringMaker } from "../types";
 
export const string: StringMaker = (sequencer, header) => ({
  encode(ctx, data) {
    const head = ctx.i;
    header.encode(ctx, 0);
    const begin = ctx.i;
    sequencer.encode(ctx, data);
    const end = ctx.i;
    const size = end - begin;
    ctx.i = head;
    header.encode(ctx, size);
    ctx.i = end;
  },
  decode(ctx) {
    return sequencer.decode(ctx, header.decode(ctx) + ctx.i);
  }
});