def ck.step

bend-kit-http@0.38.4.0 · http.bend:697

import bend-kit-http@0.38.4.0/http.bend as Http
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes

697def ck.step(+len: U32, cs: Cs) -> Bool & Cs:
698  Cs{piece, +i, st, parts} = cs
699  match st:
700    case DcData{+k}:
701      +m = U32.min(k, (len - i : U32))
702      ck.data(len, i, k, m, parts, Bytes.slice(piece, i, m))
703    case DcDone{}:
704      (False{}, Cs{piece, i, DcDone{}, parts})
705    case DcBad{}:
706      (False{}, Cs{piece, i, DcBad{}, parts})
707    case DcSize{+acc, seen}:
708      ck.byte(len, i, DcSize{acc, seen}, parts, Bytes.get(piece, i))
709    case DcExt{+n}:
710      ck.byte(len, i, DcExt{n}, parts, Bytes.get(piece, i))
711    case DcSizeLf{+n}:
712      ck.byte(len, i, DcSizeLf{n}, parts, Bytes.get(piece, i))
713    case DcDataCr{}:
714      ck.byte(len, i, DcDataCr{}, parts, Bytes.get(piece, i))
715    case DcDataLf{}:
716      ck.byte(len, i, DcDataLf{}, parts, Bytes.get(piece, i))
717    case DcTr{+j}:
718      ck.byte(len, i, DcTr{j}, parts, Bytes.get(piece, i))

Uses (12)

Used by (1)