Sure thing, was thinking something like:
proc newTransportFunction(conn: Connection) =
result = proc (req: JsonNode): Future[JsonNode] =
conn.send(req)
let conn = connectToClient()
rpc Hello, newTransportFunction(conn):
# remote proc definitions
Hello.helloWorld()
Run
Alternatively, was also thinking something like:
# From Nerve
type NerveTransport = object of RootObj
method send(transport: NerveTransport, req: JsonNode): Future[JsonNode] =
assert(false, "override")
# From user code
type MyTransport = object of NerveTransport
conn: Connection
method send(transport: MyTransport, req: JsonNode): Future[JsonNode] =
transport.conn.send(req)
let conn = connectToClient()
rpc Hello, MyTransport(conn):
# You get the idea
Run