def stream.head
bend-kit-http@0.38.4.0 · http.bend:4930
import bend-kit-http@0.38.4.0/http.bend as Http
import Base
4930def stream.head(+tls: Bool, +ms: U32, +head: Bool, back: Maybe<&2, String>, st: Socket & Sh) -> IO(Bool & Result<&1, &1, Err, Stream>):
4931 (s, sh) = st
4932 match sh:
4933 case ShMore{buf, +k}:
4934 do IO<Bool & Result<&1, &1, Err, Stream>>:
4935 m : Socket & Result<&1, &1, U32 & String, U32 & Array<U32>> <- io.recv.words(tls, s, 65536, ms)
4936 stream.head(tls, ms, head, back, sh.next(head, buf, k, m))
4937 case ShBad{err, +none}:
4938 do IO<Bool & Result<&1, &1, Err, Stream>>:
4939 r : Result<&1, &1, Err, Res> <- fetch.bad(tls, s, err)
4940 return (none, fetch.fail.of(r))
4941 case ShRes{res, +rb, rest}:
4942 Res{+status, +headers, body} = res
4943 IO.pure(Bool & Result<&1, &1, Err, Stream>, (False{}, Done{stream.mk(tls, s, ms, Res{status, headers, body}, Nil{},
4944 stream.back(back, rb, headers), stream.pc(rb, rest))}))