Optimus (optimus v0.5.1)
View SourceSummary
Types
@type arg_spec_item() :: {name :: atom(), [arg_spec_param()]}
@type custom_parser() :: (String.t() -> parser_result())
@type error() :: String.t()
@type flag_spec_item() :: {name :: atom(), [flag_spec_param()]}
@type option_spec_item() :: {name :: atom(), [option_spec_param()]}
@type parser() :: :integer | :float | :string | custom_parser()
@type spec() :: [spec_item()]
@type spec_item() :: {:name, String.t()} | {:description, String.t()} | {:version, String.t()} | {:author, String.t()} | {:about, String.t()} | {:allow_unknown_args, boolean()} | {:parse_double_dash, boolean()} | {:args, [arg_spec_item()]} | {:flags, [flag_spec_item()]} | {:options, [option_spec_item()]} | {:subcommands, [{atom(), spec()}]}
@type subcommand_path() :: [atom()]
@type t() :: %Optimus{ about: String.t(), allow_unknown_args: boolean(), args: [arg_spec_item()], author: String.t(), description: String.t(), flags: [flag_spec_item()], name: String.t(), options: [option_spec_item()], parse_double_dash: boolean(), subcommand: {atom(), spec()}, subcommands: [{atom(), spec()}], version: String.t() }
Functions
@spec fetch_subcommand(t(), subcommand_path()) :: {t(), subcommand_path()}
@spec parse(t(), [String.t()]) :: {:ok, Optimus.ParseResult.t()} | {:ok, subcommand_path(), Optimus.ParseResult.t()} | {:error, [error()]} | {:error, subcommand_path(), [error()]} | :version | :help | {:help, subcommand_path()}
@spec parse!(t(), [String.t()], (integer() -> no_return())) :: Optimus.ParseResult.t() | {subcommand_path(), Optimus.ParseResult.t()} | no_return()