diff --git a/arg_parse_variant_map.drawio b/arg_parse_variant_map.drawio new file mode 100644 index 0000000..ac232d8 --- /dev/null +++ b/arg_parse_variant_map.drawio @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blt_argparse_variant_map.png b/blt_argparse_variant_map.png new file mode 100644 index 0000000..adaf7f0 Binary files /dev/null and b/blt_argparse_variant_map.png differ diff --git a/include/blt/parse/argparse.h b/include/blt/parse/argparse.h index ddc6d4e..476dacf 100755 --- a/include/blt/parse/argparse.h +++ b/include/blt/parse/argparse.h @@ -326,22 +326,6 @@ namespace blt return static_cast(std::stoll(s)); return static_cast(std::stoull(s)); } - - private: - struct - { - friend arg_parse; - private: - std::vector arg_properties_storage; - size_t max_line_length = 80; - // TODO: grouping like git's help - // pre/postfix applied to the help message - std::string prefix; - std::string postfix; - public: - std::vector name_associations; - HASHMAP flag_associations; - } user_args; struct arg_results { @@ -386,7 +370,24 @@ namespace blt return data.find(key.substr(1)) != data.end(); return data.find(key) != data.end(); } - } loaded_args; + }; + private: + struct + { + friend arg_parse; + private: + std::vector arg_properties_storage; + size_t max_line_length = 80; + // TODO: grouping like git's help + // pre/postfix applied to the help message + std::string prefix; + std::string postfix; + public: + std::vector name_associations; + HASHMAP flag_associations; + } user_args; + + arg_results loaded_args; bool subcommand_found = false; bool use_full_name = false;