def drain.step

bendonnect-rpc@0.1.0.0 · src/transport/client.bend:131

import bendonnect-rpc@0.1.0.0/src/transport/client.bend as Client
import Base
import bend-kit-http@0.36.0.0/http.bend as Http
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes

131def drain.step(m: Http.Stream & Result<&1, &1, Http.Err, Maybe<&1, Bytes.Bytes>>, acc: Bytes.Bytes) -> IO(Bytes.Bytes):
132  (st, r) = m
133  match r:
134    case Fail{e}:
135      do IO<Bytes.Bytes>:
136        Http.stream.close(st)
137        return acc
138    case Done{mb}:
139      match mb:
140        case None{}:
141          do IO<Bytes.Bytes>:
142            Http.stream.close(st)
143            return acc
144        case Some{b}:
145          drain(st, Bytes.append(acc, b))

Uses (14)

Used by (1)