Current section
Files
Jump to
Current section
Files
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([argument_to_string/1, is_unnamed_argument/1, is_flag/1, is_command/1]).
-export_type([argument/0]).
-type argument() :: {unnamed_argument, binary(), binary()} |
{flag, binary(), binary(), binary(), boolean(), boolean()} |
{command, binary(), binary(), boolean(), list(argument())}.
-file("src/glap/arguments.gleam", 10).
-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", 18).
-spec is_unnamed_argument(argument()) -> boolean().
is_unnamed_argument(Argument) ->
case Argument of
{unnamed_argument, _, _} ->
true;
_ ->
false
end.
-file("src/glap/arguments.gleam", 25).
-spec is_flag(argument()) -> boolean().
is_flag(Argument) ->
case Argument of
{flag, _, _, _, _, _} ->
true;
_ ->
false
end.
-file("src/glap/arguments.gleam", 32).
-spec is_command(argument()) -> boolean().
is_command(Argument) ->
case Argument of
{command, _, _, _, _} ->
true;
_ ->
false
end.