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))

Uses (18)

Used by (1)