-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.