def stream.hops
bend-kit-http@0.38.2.0 · http.bend:5167
import bend-kit-http@0.38.2.0/http.bend as Http
import Base
5167def stream.hops(+mode: Mode, +ms: U32, x: Pool & StreamHops) -> IO(Pool & Maybe<&2, Jar> & Result<&1, &1, Err, Stream>):
5168 (p, hs) = x
5169 StreamHops{sn, +cert, +jar, +ca} = hs
5170 match sn:
5171 case SnDone{r}:
5172 IO.pure(Pool & Maybe<&2, Jar> & Result<&1, &1, Err, Stream>, (p, jar, r))
5173 case SnGo{left, hop}:
5174 do IO<Pool & Maybe<&2, Jar> & Result<&1, &1, Err, Stream>>:
5175 y : Pool & Hop & Result<&1, &1, Err, Stream> <- stream.one(p, hop, ms, cert, ca, jar)
5176 stream.hops(mode, ms, stream.step(mode, left, cert, ca, jar, y))
5177 case SnDrop{st, next}:
5178 do IO<Pool & Maybe<&2, Jar> & Result<&1, &1, Err, Stream>>:
5179 q : Pool <- pool.stream.close(p, st)
5180 stream.hops(mode, ms, (q, StreamHops{sn.of(next), cert, jar, ca}))