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

Reply via email to