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))