def recv.read
bendonnect-rpc@0.1.0.0 · src/transport/client.bend:220
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
import bendonnect-rpc@0.1.0.0/src/code.bend as Code
220def recv.read(m: Http.Stream & Result<&1, &1, Http.Err, Maybe<&1, Bytes.Bytes>>, buf: Bytes.Bytes) -> IO(Item):
221 (st, r) = m
222 match r:
223 case Fail{e}:
224 do IO<Item>:
225 Http.stream.close(st)
226 return Broke{unavailable(e)}
227 case Done{mb}:
228 match mb:
229 case None{}:
230 do IO<Item>:
231 Http.stream.close(st)
232 return broke(Code.Unknown{}, "missing EndStreamResponse")
233 case Some{b}:
234 recv(st, Bytes.append(buf, b))