def ss.one

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

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

129def ss.one(~Req: Data, ~dec: @+codec: P.Codec -> Bytes.Bytes -> Result<&1, &1, E.Error, Req>, ~impl: Ctx -> Req -> Out -> IO(Out & Result<&1, &1, E.Error, Unit>), procedure: String, +codec: P.Codec, headers: Map<&2, List<&2, String>>, ms: List<&1, Bytes.Bytes>) -> IO(Srv.Reply):
130  match ms:
131    case Nil{}:
132      reply_io(bad_request("expected exactly one request message"))
133    case Con{m, rest}:
134      match rest:
135        case Nil{}:
136          ss.reply(~Req, ~impl, procedure, codec, headers, dec(codec, m))
137        case Con{x, y}:
138          reply_io(bad_request("expected exactly one request message"))

Uses (16)

Used by (1)