Current section

Files

Jump to
gleam_mongo src tcp.erl
Raw

src/tcp.erl

-module(tcp).
-compile(no_auto_import).
-export([connect/2, send/2, 'receive'/1]).
-export_type([socket/0, tcp_result/0, tcp_option/0]).
-type socket() :: any().
-type tcp_result() :: ok.
-type tcp_option() :: binary | {active, boolean()}.
-spec connect(binary(), integer()) -> {ok, socket()} | {error, nil}.
connect(Host, Port) ->
[A, B, C, D] = begin
_pipe = gleam@string:split(Host, <<"."/utf8>>),
_pipe@2 = gleam@list:map(
_pipe,
fun(I) ->
_pipe@1 = I,
gleam@int:parse(_pipe@1)
end
),
gleam@list:map(
_pipe@2,
fun(I@1) ->
{ok, I@3} = case I@1 of
{ok, I@2} -> {ok, I@2};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"tcp"/utf8>>,
function => <<"connect"/utf8>>,
line => 37})
end,
I@3
end
)
end,
gen_tcp:connect({A, B, C, D}, Port, [binary, {active, false}]).
-spec send(socket(), bitstring()) -> tcp_result().
send(Socket, Data) ->
gen_tcp:send(Socket, Data).
-spec 'receive'(socket()) -> {ok, bitstring()} | {error, nil}.
'receive'(Socket) ->
gen_tcp:recv(Socket, 0).