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