Procs
func createRpcFromSig(clientType, rpcDecl, formatType: NimNode; alias = NimNode(nil)): NimNode {....raises: [], gcsafe, tags: [], forbids: [].}
-
This procedure will generate something like this:
- Currently it always send positional parameters to the server
proc rpcApi(client: RpcClient; paramA: TypeA; paramB: TypeB): FutureRetType = {.gcsafe.}: var reqParams = RequestParamsTx(kind: rpPositional) reqParams.positional.add encode(JrpcConv, paramA).JsonString reqParams.positional.add encode(JrpcConv, paramB).JsonString let res = await client.call("rpcApi", reqParams) result = decode(JrpcConv, res.string, typeof RetType)
2nd version to handle batch request after calling client.prepareBatch() proc rpcApi(batch: RpcBatchCallRef; paramA: TypeA; paramB: TypeB) = var reqParams = RequestParamsTx(kind: rpPositional) reqParams.positional.add encode(JrpcConv, paramA).JsonString reqParams.positional.add encode(JrpcConv, paramB).JsonString batch.batch.add RpcBatchItem(meth: "rpcApi", params: reqParams)
Source Edit func cresteSignaturesFromString(clientType: NimNode; sigStrings: string; formatType: NimNode): NimNode {....raises: [], gcsafe, tags: [], forbids: [].}
- Source Edit
func processRpcSigs(clientType, parsedCode, formatType: NimNode): NimNode {. ...raises: [], gcsafe, tags: [], forbids: [].}
- Source Edit
Templates
template maybeUnwrapClientResult(client, meth, reqParams, returnType, formatType): auto {..}
- Don't decode e.g. JsonString, return as is Source Edit