Current section

Files

Jump to
crossbar src crossbar@internal@cast.erl
Raw

src/crossbar@internal@cast.erl

-module(crossbar@internal@cast).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/crossbar/internal/cast.gleam").
-export([to_dynamic/1, to_generic/1, int/1, float/1, string/1, bool/1, to_string/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/crossbar/internal/cast.gleam", 10).
?DOC(false).
-spec to_dynamic(any()) -> gleam@dynamic:dynamic_().
to_dynamic(Value) ->
crossbar_ffi:identity(Value).
-file("src/crossbar/internal/cast.gleam", 15).
?DOC(false).
-spec to_generic(gleam@dynamic:dynamic_()) -> any().
to_generic(Value) ->
crossbar_ffi:identity(Value).
-file("src/crossbar/internal/cast.gleam", 17).
?DOC(false).
-spec cast(any(), gleam@dynamic@decode:decoder(DUA)) -> {ok, DUA} |
{error, list(gleam@dynamic@decode:decode_error())}.
cast(From, Decoder) ->
_pipe = From,
_pipe@1 = crossbar_ffi:identity(_pipe),
gleam@dynamic@decode:run(_pipe@1, Decoder).
-file("src/crossbar/internal/cast.gleam", 22).
?DOC(false).
-spec int(any()) -> integer().
int(From) ->
_pipe = cast(From, {decoder, fun gleam@dynamic@decode:decode_int/1}),
gleam@result:unwrap(_pipe, 0).
-file("src/crossbar/internal/cast.gleam", 27).
?DOC(false).
-spec float(any()) -> float().
float(From) ->
_pipe = cast(From, {decoder, fun gleam@dynamic@decode:decode_float/1}),
gleam@result:unwrap(_pipe, +0.0).
-file("src/crossbar/internal/cast.gleam", 32).
?DOC(false).
-spec string(any()) -> binary().
string(From) ->
_pipe = cast(From, {decoder, fun gleam@dynamic@decode:decode_string/1}),
gleam@result:unwrap(_pipe, <<""/utf8>>).
-file("src/crossbar/internal/cast.gleam", 37).
?DOC(false).
-spec bool(any()) -> boolean().
bool(From) ->
_pipe = cast(From, {decoder, fun gleam@dynamic@decode:decode_bool/1}),
gleam@result:unwrap(_pipe, false).
-file("src/crossbar/internal/cast.gleam", 43).
?DOC(false).
-spec to_string(any()) -> binary().
to_string(Value) ->
Bool_to_string = fun(Value@1) -> case Value@1 of
true ->
<<"true"/utf8>>;
false ->
<<"false"/utf8>>
end end,
Combined_decoder = gleam@dynamic@decode:one_of(
{decoder, fun gleam@dynamic@decode:decode_string/1},
[begin
_pipe = {decoder, fun gleam@dynamic@decode:decode_bool/1},
gleam@dynamic@decode:map(_pipe, Bool_to_string)
end,
begin
_pipe@1 = {decoder, fun gleam@dynamic@decode:decode_int/1},
gleam@dynamic@decode:map(
_pipe@1,
fun erlang:integer_to_binary/1
)
end,
begin
_pipe@2 = {decoder, fun gleam@dynamic@decode:decode_float/1},
gleam@dynamic@decode:map(
_pipe@2,
fun gleam_stdlib:float_to_string/1
)
end]
),
_pipe@3 = Value,
_pipe@4 = crossbar_ffi:identity(_pipe@3),
_pipe@5 = gleam@dynamic@decode:run(_pipe@4, Combined_decoder),
gleam@result:unwrap(_pipe@5, <<"<unrepresentable>"/utf8>>).