Packages
glisten
9.0.1
9.0.1
9.0.0
9.0.0-rc1
8.0.3
8.0.2
8.0.1
8.0.0
8.0.0-rc1
7.0.1
7.0.0
6.0.0
5.0.0
4.0.0
3.0.0
2.0.0
1.0.0
0.11.0
0.10.2
0.10.1
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.0
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.0
0.3.2
0.3.1
0.3.0
0.2.2
0.2.1
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
a shiny Gleam TCP/TLS server
Current section
Files
Jump to
Current section
Files
src/glisten@socket@options.erl
-module(glisten@socket@options).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/glisten/socket/options.gleam").
-export([to_erl_options/1, merge_type_list/2, merge_with_defaults/1]).
-export_type([socket_mode/0, active_state/0, interface/0, tls_certs/0, tcp_option/0, erlang_tcp_option/0, ip_address/0]).
-type socket_mode() :: binary.
-type active_state() :: once | passive | {count, integer()} | active.
-type interface() :: {address, ip_address()} | any | loopback.
-type tls_certs() :: {cert_key_files, binary(), binary()}.
-type tcp_option() :: {backlog, integer()} |
{nodelay, boolean()} |
{linger, {boolean(), integer()}} |
{send_timeout, integer()} |
{send_timeout_close, boolean()} |
{reuseaddr, boolean()} |
{active_mode, active_state()} |
{mode, socket_mode()} |
{cert_key_config, tls_certs()} |
{alpn_preferred_protocols, list(binary())} |
ipv6 |
{buffer, integer()} |
{ip, interface()}.
-type erlang_tcp_option() :: any().
-type ip_address() :: {ip_v4, integer(), integer(), integer(), integer()} |
{ip_v6,
integer(),
integer(),
integer(),
integer(),
integer(),
integer(),
integer(),
integer()}.
-file("src/glisten/socket/options.gleam", 56).
-spec to_erl_options(list(tcp_option())) -> list(erlang_tcp_option()).
to_erl_options(Options) ->
glisten_ffi:to_erl_tcp_options(Options).
-file("src/glisten/socket/options.gleam", 69).
-spec merge_type_list(list(FGJ), list(FGJ)) -> list(FGJ).
merge_type_list(Original, Override) ->
glisten_ffi:merge_type_list(Original, Override).
-file("src/glisten/socket/options.gleam", 71).
-spec merge_with_defaults(list(tcp_option())) -> list(tcp_option()).
merge_with_defaults(Options) ->
glisten_ffi:merge_type_list(
[{backlog, 1024},
{nodelay, true},
{send_timeout, 30000},
{send_timeout_close, true},
{reuseaddr, true},
{mode, binary},
{active_mode, passive}],
Options
).