def sv.step

bend-kit-http@0.38.5.0 · http.bend:5848

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

5848# A close mid-request is a request cut short (RFC 9112 §8).
5849def sv.step(closed: Bool, +max: Nat, +headers: U32, sv: Sv, piece: Bytes.Bytes) -> Turn:
5850  match closed:
5851    case True{}:
5852      match sv:
5853        case SvHead{buf}:
5854          sv.closed.head(buf)
5855        case SvLen{req, v11, left, parts}:
5856          TurnFail{400}
5857        case SvChunk{req, v11, n, st, parts}:
5858          TurnFail{400}
5859    case False{}:
5860      match sv:
5861        case SvHead{buf}:
5862          sv.head(max, headers, buf, piece)
5863        case SvLen{req, +v11, +left, parts}:
5864          sv.len(req, v11, left, parts, piece)
5865        case SvChunk{req, +v11, +n, st, parts}:
5866          sv.chunk(max, req, v11, n, st, parts, piece)

Uses (10)

Used by (3)