def recv.step

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

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
import bendonnect-rpc@0.1.0.0/src/envelope.bend as Env

206def recv.step(st: Http.Stream, step: Env.Step) -> IO(Item):
207  match step:
208    case Env.Need{buf}:
209      do IO<Item>:
210        m : Http.Stream & Result<&1, &1, Http.Err, Maybe<&1, Bytes.Bytes>> <- Http.stream.read(st)
211        recv.read(m, buf)
212    case Env.Got{env, rest}:
213      recv.env(st, env, rest)
214    case Env.Bad{reason}:
215      do IO<Item>:
216        Http.stream.close(st)
217        return broke(Code.Internal{}, reason)
218
219@unsafe

Uses (18)

Used by (1)