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