diff options
author | René Meusel <[email protected]> | 2022-04-19 13:07:56 +0530 |
---|---|---|
committer | René Meusel <[email protected]> | 2022-04-19 14:16:34 +0530 |
commit | add7ad4c7387ea5bb3eab7b66798e95e950e3b55 (patch) | |
tree | 8ac3c664fdaf16c8352a1430b559f3d3e3d9c9fc | |
parent | 225cc9a1cbb9b2add45872257909c177ff97a80f (diff) |
add CLI Command::get_arg_maybe()
-rw-r--r-- | src/cli/cli.cpp | 9 | ||||
-rw-r--r-- | src/cli/cli.h | 6 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/cli/cli.cpp b/src/cli/cli.cpp index e58f1a68d..8cf2de99e 100644 --- a/src/cli/cli.cpp +++ b/src/cli/cli.cpp @@ -128,6 +128,15 @@ std::string Command::get_arg_or(const std::string& opt_name, const std::string& return m_args->get_arg_or(opt_name, otherwise); } +std::optional<std::string> Command::get_arg_maybe(const std::string& opt_name) const + { + auto arg = m_args->get_arg(opt_name); + if(arg.empty()) + return std::nullopt; + else + return arg; + } + size_t Command::get_arg_sz(const std::string& opt_name) const { return m_args->get_arg_sz(opt_name); diff --git a/src/cli/cli.h b/src/cli/cli.h index b7f81277d..2f2080ea9 100644 --- a/src/cli/cli.h +++ b/src/cli/cli.h @@ -10,6 +10,7 @@ #include <botan/build.h> #include <functional> #include <ostream> +#include <optional> #include <map> #include <memory> #include <string> @@ -146,6 +147,11 @@ class Command */ std::string get_arg_or(const std::string& opt_name, const std::string& otherwise) const; + /* + * Like get_arg() but if the argument was not specified or is empty, returns std::nullopt + */ + std::optional<std::string> get_arg_maybe(const std::string& opt_name) const; + size_t get_arg_sz(const std::string& opt_name) const; uint16_t get_arg_u16(const std::string& opt_name) const; |