def stream.hops

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

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

5159def stream.hops(+mode: Mode, +ms: U32, x: Pool & StreamHops) -> IO(Pool & Maybe<&2, Jar> & Result<&1, &1, Err, Stream>):
5160  (p, hs) = x
5161  StreamHops{sn, +cert, +jar, +ca} = hs
5162  match sn:
5163    case SnDone{r}:
5164      IO.pure(Pool & Maybe<&2, Jar> & Result<&1, &1, Err, Stream>, (p, jar, r))
5165    case SnGo{left, hop}:
5166      do IO<Pool & Maybe<&2, Jar> & Result<&1, &1, Err, Stream>>:
5167        y : Pool & Hop & Result<&1, &1, Err, Stream> <- stream.one(p, hop, ms, cert, ca, jar)
5168        stream.hops(mode, ms, stream.step(mode, left, cert, ca, jar, y))
5169    case SnDrop{st, next}:
5170      do IO<Pool & Maybe<&2, Jar> & Result<&1, &1, Err, Stream>>:
5171        q : Pool <- pool.stream.close(p, st)
5172        stream.hops(mode, ms, (q, StreamHops{sn.of(next), cert, jar, ca}))

Uses (20)

Used by (3)