-module(glats@internal@test@request_handler). -compile([no_auto_import, nowarn_unused_vars]). -export([ping_pong_handler/2, main/0]). -spec ping_pong_handler(glats@handler:request(), GZG) -> glats@handler:request_outcome(GZG). ping_pong_handler(Req, State) -> gleam@io:println(<<"Got message: "/utf8, (erlang:element(3, Req))/binary>>), {reply, {response, erlang:element(2, Req), none, <<(erlang:element(3, Req))/binary, " from glats!"/utf8>>}, State}. -spec main() -> {ok, nil} | {error, gleam@otp@actor:start_error()}. main() -> gleam@result:then( begin _pipe = glats@settings:new(<<"localhost"/utf8>>, 4222), glats:connect(_pipe) end, fun(Conn) -> _assert_subject = glats@handler:handle_request( Conn, [], <<"do.ping"/utf8>>, none, fun ping_pong_handler/2 ), {ok, _} = case _assert_subject of {ok, _} -> _assert_subject; _assert_fail -> erlang:error(#{gleam_error => assert, message => <<"Assertion pattern match failed"/utf8>>, value => _assert_fail, module => <<"glats/internal/test/request_handler"/utf8>>, function => <<"main"/utf8>>, line => 15}) end, gleam_erlang_ffi:sleep_forever(), {ok, nil} end ).