-module(mist). -compile(no_auto_import). -export([serve/2, main/0]). -spec serve( integer(), fun((glisten@tcp:handler_message(), glisten@tcp:loop_state(gleam@option:option(gleam@otp@process:timer()))) -> gleam@otp@actor:next(glisten@tcp:loop_state(gleam@option:option(gleam@otp@process:timer())))) ) -> {ok, nil} | {error, glisten:start_error()}. serve(Port, Handler) -> glisten:serve(Port, Handler, none). -spec main() -> nil. main() -> Empty_response = begin _pipe = gleam@http@response:new(200), gleam@http@response:set_body(_pipe, <<>>) end, Not_found = begin _pipe@1 = gleam@http@response:new(404), gleam@http@response:set_body(_pipe@1, <<>>) end, {ok, _@4} = case serve( 8080, mist@http:handler( fun(Req) -> case {erlang:element(2, Req), gleam@http@request:path_segments(Req)} of {get, []} -> Empty_response; {get, [<<"user"/utf8>>, Id]} -> _pipe@2 = gleam@http@response:new(200), gleam@http@response:set_body(_pipe@2, <>); {post, [<<"user"/utf8>>]} -> _pipe@3 = gleam@http@response:new(200), gleam@http@response:set_body( _pipe@3, erlang:element(4, Req) ); {_@1, _@2} -> Not_found end end ) ) of {ok, _@3} -> {ok, _@3}; _try -> erlang:error(#{gleam_error => assert, message => <<"Assertion pattern match failed"/utf8>>, value => _try, module => <<"mist"/utf8>>, function => <<"main"/utf8>>, line => 29}) end, gleam@erlang:sleep_forever().