Current section
Files
Jump to
Current section
Files
src/spoke@core@internal@convert.erl
-module(spoke@core@internal@convert).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/spoke/core/internal/convert.gleam").
-export([to_auth_options/1, to_will/1, to_packet_subscribe_request/1, to_subscription/1, to_connection_state/1]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-file("src/spoke/core/internal/convert.gleam", 19).
?DOC(false).
-spec to_auth_options(gleam@option:option(spoke@mqtt:auth_details())) -> gleam@option:option(spoke@packet:auth_options()).
to_auth_options(Options) ->
gleam@option:map(
Options,
fun(Options@1) ->
{auth_options,
erlang:element(2, Options@1),
erlang:element(3, Options@1)}
end
).
-file("src/spoke/core/internal/convert.gleam", 48).
?DOC(false).
-spec to_packet_qos(spoke@mqtt:qo_s()) -> spoke@packet:qo_s().
to_packet_qos(Qos) ->
case Qos of
at_most_once ->
qo_s0;
at_least_once ->
qo_s1;
exactly_once ->
qo_s2
end.
-file("src/spoke/core/internal/convert.gleam", 26).
?DOC(false).
-spec to_will(spoke@mqtt:publish_data()) -> {spoke@packet:message_data(),
spoke@packet:qo_s()}.
to_will(Data) ->
Msg_data = {message_data,
erlang:element(2, Data),
erlang:element(3, Data),
erlang:element(5, Data)},
{Msg_data, to_packet_qos(erlang:element(4, Data))}.
-file("src/spoke/core/internal/convert.gleam", 31).
?DOC(false).
-spec to_packet_subscribe_request(spoke@mqtt:subscribe_request()) -> spoke@packet:subscribe_request().
to_packet_subscribe_request(Request) ->
{subscribe_request,
erlang:element(2, Request),
to_packet_qos(erlang:element(3, Request))}.
-file("src/spoke/core/internal/convert.gleam", 56).
?DOC(false).
-spec from_packet_qos(spoke@packet:qo_s()) -> spoke@mqtt:qo_s().
from_packet_qos(Qos) ->
case Qos of
qo_s0 ->
at_most_once;
qo_s1 ->
at_least_once;
qo_s2 ->
exactly_once
end.
-file("src/spoke/core/internal/convert.gleam", 37).
?DOC(false).
-spec to_subscription(
{spoke@mqtt:subscribe_request(), {ok, spoke@packet:qo_s()} | {error, nil}}
) -> spoke@mqtt:subscription().
to_subscription(Data) ->
{Topic, Result} = Data,
_pipe = Result,
_pipe@1 = gleam@result:map(
_pipe,
fun(Qos) ->
{successful_subscription,
erlang:element(2, Topic),
from_packet_qos(Qos)}
end
),
gleam@result:unwrap(
_pipe@1,
{failed_subscription, erlang:element(2, Topic)}
).
-file("src/spoke/core/internal/convert.gleam", 64).
?DOC(false).
-spec from_packet_connect_error(spoke@packet:connect_error()) -> spoke@mqtt:connect_error().
from_packet_connect_error(Error) ->
case Error of
bad_username_or_password ->
bad_username_or_password;
identifier_refused ->
identifier_refused;
not_authorized ->
not_authorized;
server_unavailable ->
server_unavailable;
unacceptable_protocol_version ->
unacceptable_protocol_version
end.
-file("src/spoke/core/internal/convert.gleam", 8).
?DOC(false).
-spec to_connection_state(
{ok, spoke@packet:session_presence()} |
{error, spoke@packet:connect_error()}
) -> spoke@mqtt:connection_state().
to_connection_state(Result) ->
case Result of
{ok, Session_present} ->
{connect_accepted, case Session_present of
session_present ->
session_present;
session_not_present ->
session_not_present
end};
{error, Error} ->
{connect_rejected, from_packet_connect_error(Error)}
end.