Current section

Files

Jump to
glap src glap@arguments.erl
Raw

src/glap@arguments.erl

-module(glap@arguments).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-define(FILEPATH, "src/glap/arguments.gleam").
-export([get_description/1, argument_to_string/1, is_unnamed_argument/1, is_flag/1, is_command/1]).
-export_type([argument/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-type argument() :: {unnamed_argument, binary(), binary()} |
{flag, binary(), binary(), binary(), boolean(), boolean()} |
{command, binary(), binary(), boolean(), list(argument())}.
-file("src/glap/arguments.gleam", 11).
?DOC(false).
-spec get_description(argument()) -> binary().
get_description(Argument) ->
case Argument of
{unnamed_argument, _, D} ->
D;
{flag, _, _, D@1, _, _} ->
D@1;
{command, _, D@2, _, _} ->
D@2
end.
-file("src/glap/arguments.gleam", 19).
-spec argument_to_string(argument()) -> binary().
argument_to_string(Argument) ->
case Argument of
{unnamed_argument, Name, Description} ->
glap@utils:strformat(
<<"UnnamedArgument(\"{}\", \"{}\")"/utf8>>,
[Name, Description]
);
{flag, Short, Long, Description@1, Required, Holds_value} ->
glap@utils:strformat(
<<"Flag(\"{}\", \"{}\", \"{}\", \"{}\", \"{}\")"/utf8>>,
[Short,
Long,
Description@1,
gleam@bool:to_string(Required),
gleam@bool:to_string(Holds_value)]
);
{command, Name@1, Description@2, Required@1, _} ->
glap@utils:strformat(
<<"Command(\"{}\", \"{}\", \"{}\", \"{}\")"/utf8>>,
[Name@1,
Description@2,
gleam@bool:to_string(Required@1),
<<""/utf8>>]
)
end.
-file("src/glap/arguments.gleam", 27).
-spec is_unnamed_argument(argument()) -> boolean().
is_unnamed_argument(Argument) ->
case Argument of
{unnamed_argument, _, _} ->
true;
_ ->
false
end.
-file("src/glap/arguments.gleam", 34).
-spec is_flag(argument()) -> boolean().
is_flag(Argument) ->
case Argument of
{flag, _, _, _, _, _} ->
true;
_ ->
false
end.
-file("src/glap/arguments.gleam", 41).
-spec is_command(argument()) -> boolean().
is_command(Argument) ->
case Argument of
{command, _, _, _, _} ->
true;
_ ->
false
end.