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