-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/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, fun(({ok, JIS} | {error, gleam_rpc_error(JIT)}) -> nil)) -> nil)}. -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", 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(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", 64). -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", 71). -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", 78). -spec call( procedure_call(JKE, JKF, JKG), JKE, fun(({ok, JKF} | {error, gleam_rpc_error(JKG)}) -> nil) ) -> nil. call(Procedure_call, Params, Callback) -> (erlang:element(2, erlang:element(3, Procedure_call)))( erlang:element(2, Procedure_call), Params, Callback ).