Current section

Files

Jump to
mist src mist.erl
Raw

src/mist.erl

-module(mist).
-compile(no_auto_import).
-export([run_service/3, run_service_ssl/5, serve/2, serve_ssl/4]).
-spec run_service(
integer(),
fun((gleam@http@request:request(bitstring())) -> gleam@http@response:response(gleam@bit_builder:bit_builder())),
integer()
) -> {ok, nil} | {error, glisten:start_error()}.
run_service(Port, Handler, Max_body_limit) ->
_pipe = Handler,
_pipe@1 = mist@handler:with(
_pipe,
glisten@socket@transport:tcp(),
Max_body_limit
),
_pipe@2 = glisten@acceptor:new_pool_with_data(
_pipe@1,
mist@handler:new_state()
),
glisten:serve(Port, _pipe@2).
-spec run_service_ssl(
integer(),
binary(),
binary(),
fun((gleam@http@request:request(bitstring())) -> gleam@http@response:response(gleam@bit_builder:bit_builder())),
integer()
) -> {ok, nil} | {error, glisten:start_error()}.
run_service_ssl(Port, Certfile, Keyfile, Handler, Max_body_limit) ->
_pipe = Handler,
_pipe@1 = mist@handler:with(
_pipe,
glisten@socket@transport:ssl(),
Max_body_limit
),
_pipe@2 = glisten@acceptor:new_pool_with_data(
_pipe@1,
mist@handler:new_state()
),
glisten:serve_ssl(Port, Certfile, Keyfile, _pipe@2).
-spec serve(
integer(),
fun((glisten@handler:handler_message(), glisten@handler:loop_state(mist@handler:state())) -> gleam@otp@actor:next(glisten@handler:loop_state(mist@handler:state())))
) -> {ok, nil} | {error, glisten:start_error()}.
serve(Port, Handler) ->
_pipe = Handler,
_pipe@1 = glisten@acceptor:new_pool_with_data(
_pipe,
mist@handler:new_state()
),
glisten:serve(Port, _pipe@1).
-spec serve_ssl(
integer(),
binary(),
binary(),
fun((glisten@handler:handler_message(), glisten@handler:loop_state(mist@handler:state())) -> gleam@otp@actor:next(glisten@handler:loop_state(mist@handler:state())))
) -> {ok, nil} | {error, glisten:start_error()}.
serve_ssl(Port, Certfile, Keyfile, Handler) ->
_pipe = Handler,
_pipe@1 = glisten@acceptor:new_pool_with_data(
_pipe,
mist@handler:new_state()
),
glisten:serve_ssl(Port, Certfile, Keyfile, _pipe@1).