Current section
Files
Jump to
Current section
Files
src/gleamrpc.erl
-module(gleamrpc).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export(['query'/2, mutation/2, params/2, returns/2, with_client/2, call/2]).
-export_type([procedure_type/0, procedure/2, gleam_rpc_error/1, router/0, procedure_client/3, procedure_call/3]).
-type procedure_type() :: 'query' | mutation.
-type procedure(JIO, JIP) :: {procedure,
binary(),
gleam@option:option(router()),
procedure_type(),
convert:converter(JIO),
convert:converter(JIP)}.
-type gleam_rpc_error(JIQ) :: {gleam_rpc_error, JIQ}.
-type router() :: {router, binary(), gleam@option:option(router())}.
-type procedure_client(JIR, JIS, JIT) :: {procedure_client,
fun((procedure(JIR, JIS), JIR) -> {ok, JIS} |
{error, gleam_rpc_error(JIT)})}.
-type procedure_call(JIU, JIV, JIW) :: {procedure_call,
procedure(JIU, JIV),
procedure_client(JIU, JIV, JIW)}.
-file("/home/runner/work/gleamrpc/gleamrpc/src/gleamrpc.gleam", 42).
-spec 'query'(binary(), gleam@option:option(router())) -> procedure(nil, nil).
'query'(Name, Router) ->
{procedure, Name, Router, 'query', convert:null(), convert:null()}.
-file("/home/runner/work/gleamrpc/gleamrpc/src/gleamrpc.gleam", 46).
-spec mutation(binary(), gleam@option:option(router())) -> procedure(nil, nil).
mutation(Name, Router) ->
{procedure, Name, Router, mutation, convert:null(), convert:null()}.
-file("/home/runner/work/gleamrpc/gleamrpc/src/gleamrpc.gleam", 53).
-spec params(procedure(JJH, JJE), convert:converter(JJH)) -> procedure(JJH, JJE).
params(Procedure, Params_converter) ->
erlang:setelement(5, Procedure, Params_converter).
-file("/home/runner/work/gleamrpc/gleamrpc/src/gleamrpc.gleam", 60).
-spec returns(procedure(JJL, JJP), convert:converter(JJP)) -> procedure(JJL, JJP).
returns(Procedure, Return_converter) ->
erlang:setelement(6, Procedure, Return_converter).
-file("/home/runner/work/gleamrpc/gleamrpc/src/gleamrpc.gleam", 67).
-spec with_client(procedure(JJT, JJU), procedure_client(JJT, JJU, JJX)) -> procedure_call(JJT, JJU, JJX).
with_client(Procedure, Server) ->
{procedure_call, Procedure, Server}.
-file("/home/runner/work/gleamrpc/gleamrpc/src/gleamrpc.gleam", 74).
-spec call(procedure_call(JKE, JKF, JKG), JKE) -> {ok, JKF} |
{error, gleam_rpc_error(JKG)}.
call(Procedure_call, Params) ->
(erlang:element(2, erlang:element(3, Procedure_call)))(
erlang:element(2, Procedure_call),
Params
).