def unary.one

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

import bendonnect-rpc@0.1.0.0/src/transport/rpc.bend as Rpc
import Base
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes
import bendonnect-rpc@0.1.0.0/src/error.bend as E
import bendonnect-rpc@0.1.0.0/src/protocol.bend as P
import bendonnect-rpc@0.1.0.0/src/transport/server.bend as Srv

77def unary.one(~Req: Data, ~Res: Data, ~dec: @+codec: P.Codec -> Bytes.Bytes -> Result<&1, &1, E.Error, Req>, ~enc: @+codec: P.Codec -> Res -> Bytes.Bytes, ~impl: Ctx -> Req -> IO(Result<&1, &1, E.Error, Res>), ctx: Ctx, +codec: P.Codec, ms: List<&1, Bytes.Bytes>) -> IO(Srv.Reply):
78  match ms:
79    case Nil{}:
80      reply_io(bad_request("expected exactly one request message"))
81    case Con{m, rest}:
82      match rest:
83        case Nil{}:
84          unary.run(~Req, ~Res, ~dec, ~enc, ~impl, ctx, codec, dec(codec, m))
85        case Con{x, y}:
86          reply_io(bad_request("expected exactly one request message"))

Uses (11)

Used by (1)