Current section
Files
Jump to
Current section
Files
src/shimmer.erl
-module(shimmer).
-compile(no_auto_import).
-export([new/2, new_with_opts/3, connect/1]).
-export_type([client_options/0]).
-type client_options() :: {client_options, integer()}.
-spec new(binary(), shimmer@handlers:handlers_builder()) -> shimmer@client:client().
new(Token, Handler_builder) ->
{client,
Token,
begin
_pipe = Handler_builder,
shimmer@handlers:handlers_from_builder(_pipe)
end,
3243773}.
-spec new_with_opts(
binary(),
shimmer@handlers:handlers_builder(),
client_options()
) -> shimmer@client:client().
new_with_opts(Token, Handler_builder, Opts) ->
Default = new(Token, Handler_builder),
erlang:setelement(4, Default, erlang:element(2, Opts)).
-spec connect(shimmer@client:client()) -> {ok, boolean()} |
{error, shimmer@internal@error:shimmer_error()}.
connect(Client) ->
Actor_spec = {spec,
shimmer@ws@event_loop:actor_setup(Client),
30
* 1000,
fun shimmer@ws@event_loop:actor_loop/2},
case begin
_pipe = gleam@otp@actor:start_spec(Actor_spec),
gleam@result:map_error(
_pipe,
fun(Field@0) -> {actor_error, Field@0} end
)
end of
{error, _try} -> {error, _try};
{ok, _@1} ->
{ok, true}
end.