def encode
bend-kit-runner@0.13.0.1 · runner.bend:508
import bend-kit-runner@0.13.0.1/runner.bend as Runner
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes
508def encode(~A: Data, ~penc: A -> Bytes.Bytes, op: Op<A>) -> Bytes.Bytes:
509 match op:
510 case Enqueue{+d, x}:
511 Bytes.append(put.u64(Bytes.set.u32le(Bytes.new(12), 0, 1), 4, d), penc(x))
512 case Select{+now}:
513 head(2, now, 0n)
514 case Complete{+i}:
515 head(3, i, 0n)
516 case Cancel{+i}:
517 head(4, i, 0n)
518 case Requeue{+i, +d}:
519 head(5, i, d)
520 case Defer{+i, +d}:
521 head(6, i, d)
522 case Abandon{+i, w, +at}:
523 Bytes.append(head(8, i, why.code(w)), put.u64(Bytes.new(8), 0, at))
524 case Revive{+i, +d}:
525 head(9, i, d)
526 case Purge{+t}:
527 head(11, t, 0n)
528 case PurgeAll{}:
529 head(12, 0n, 0n)
530 case Break{k, b}:
531 snap.brk(snap.key(snap.u32(Bytes.new(0), 10), k), b)