-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/3]). -export_type([procedure_type/0, procedure/2, gleam_rpc_error/1, router/0, procedure_client/4, procedure_call/4]). -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, JIU) :: {procedure_client, fun((procedure(JIR, JIS), JIR, fun(({ok, JIS} | {error, gleam_rpc_error(JIT)}) -> JIU)) -> JIU)}. -type procedure_call(JIV, JIW, JIX, JIY) :: {procedure_call, procedure(JIV, JIW), procedure_client(JIV, JIW, JIX, JIY)}. -file("/home/runner/work/gleamrpc/gleamrpc/src/gleamrpc.gleam", 46). -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", 50). -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", 57). -spec params(procedure(JJJ, JJG), convert:converter(JJJ)) -> procedure(JJJ, JJG). params(Procedure, Params_converter) -> erlang:setelement(5, Procedure, Params_converter). -file("/home/runner/work/gleamrpc/gleamrpc/src/gleamrpc.gleam", 64). -spec returns(procedure(JJN, JJR), convert:converter(JJR)) -> procedure(JJN, JJR). returns(Procedure, Return_converter) -> erlang:setelement(6, Procedure, Return_converter). -file("/home/runner/work/gleamrpc/gleamrpc/src/gleamrpc.gleam", 71). -spec with_client(procedure(JJV, JJW), procedure_client(JJV, JJW, JJZ, JKA)) -> procedure_call(JJV, JJW, JJZ, JKA). with_client(Procedure, Server) -> {procedure_call, Procedure, Server}. -file("/home/runner/work/gleamrpc/gleamrpc/src/gleamrpc.gleam", 78). -spec call( procedure_call(JKJ, JKK, JKL, JKM), JKJ, fun(({ok, JKK} | {error, gleam_rpc_error(JKL)}) -> JKM) ) -> JKM. call(Procedure_call, Params, Callback) -> (erlang:element(2, erlang:element(3, Procedure_call)))( erlang:element(2, Procedure_call), Params, Callback ).