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)

Uses (11)

Used by (2)