Current section
Files
Jump to
Current section
Files
src/roundabout@internal@parameter.erl
-module(roundabout@internal@parameter).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/roundabout/internal/parameter.gleam").
-export([new/2, unsafe/2, unsafe_int/1, unsafe_str/1, qualify_name/3, kind/1, print_type_name/1, print_name_qualified/1, print_name/1, print_name_and_type/1]).
-export_type([kind/0, parameter/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).
-type kind() :: int | str.
-opaque parameter(EHB) :: {parameter, roundabout@internal@name:name(), kind()} |
{gleam_phantom, EHB}.
-file("src/roundabout/internal/parameter.gleam", 19).
?DOC(false).
-spec new(binary(), kind()) -> {ok,
parameter(roundabout@internal@qualified:unqualified())} |
{error, binary()}.
new(Name, Kind) ->
gleam@result:'try'(
roundabout@internal@name:new(Name),
fun(Name@1) -> {ok, {parameter, Name@1, Kind}} end
).
-file("src/roundabout/internal/parameter.gleam", 25).
?DOC(false).
-spec unsafe(binary(), kind()) -> parameter(any()).
unsafe(Name, Kind) ->
{parameter, roundabout@internal@name:unsafe(Name), Kind}.
-file("src/roundabout/internal/parameter.gleam", 29).
?DOC(false).
-spec unsafe_int(binary()) -> parameter(any()).
unsafe_int(Name) ->
{parameter, roundabout@internal@name:unsafe(Name), int}.
-file("src/roundabout/internal/parameter.gleam", 33).
?DOC(false).
-spec unsafe_str(binary()) -> parameter(any()).
unsafe_str(Name) ->
{parameter, roundabout@internal@name:unsafe(Name), str}.
-file("src/roundabout/internal/parameter.gleam", 37).
?DOC(false).
-spec qualify_name(
roundabout@internal@ancestors:ancestors(roundabout@internal@name:name()),
roundabout@internal@name:name(),
parameter(roundabout@internal@qualified:unqualified())
) -> parameter(roundabout@internal@qualified:qualified()).
qualify_name(Ancestors, Node_name, P) ->
Qualified_name = begin
_pipe = Ancestors,
_pipe@1 = roundabout@internal@ancestors:filter(
_pipe,
fun(A) -> not roundabout@internal@name:is_root(A) end
),
_pipe@2 = roundabout@internal@ancestors:push(_pipe@1, Node_name),
_pipe@3 = roundabout@internal@ancestors:push(
_pipe@2,
erlang:element(2, P)
),
_pipe@4 = roundabout@internal@ancestors:to_list(_pipe@3),
_pipe@5 = gleam@list:map(
_pipe@4,
fun roundabout@internal@name:parameter_name/1
),
gleam@string:join(_pipe@5, <<"-"/utf8>>)
end,
{parameter,
roundabout@internal@name:unsafe(Qualified_name),
erlang:element(3, P)}.
-file("src/roundabout/internal/parameter.gleam", 54).
?DOC(false).
-spec kind(parameter(any())) -> kind().
kind(P) ->
erlang:element(3, P).
-file("src/roundabout/internal/parameter.gleam", 58).
?DOC(false).
-spec print_type_name(parameter(any())) -> binary().
print_type_name(P) ->
case erlang:element(3, P) of
str ->
<<"String"/utf8>>;
int ->
<<"Int"/utf8>>
end.
-file("src/roundabout/internal/parameter.gleam", 65).
?DOC(false).
-spec print_name_qualified(parameter(roundabout@internal@qualified:qualified())) -> binary().
print_name_qualified(P) ->
roundabout@internal@name:parameter_name(erlang:element(2, P)).
-file("src/roundabout/internal/parameter.gleam", 69).
?DOC(false).
-spec print_name(parameter(any())) -> binary().
print_name(P) ->
roundabout@internal@name:parameter_name(erlang:element(2, P)).
-file("src/roundabout/internal/parameter.gleam", 73).
?DOC(false).
-spec print_name_and_type(parameter(any())) -> binary().
print_name_and_type(P) ->
<<<<(print_name(P))/binary, ": "/utf8>>/binary,
(print_type_name(P))/binary>>.