[ox/clargs] Make accessors noexcept
This commit is contained in:
parent
bcc4b5f816
commit
61fb5207ea
35
deps/ox/src/ox/clargs/clargs.cpp
vendored
35
deps/ox/src/ox/clargs/clargs.cpp
vendored
@ -11,7 +11,7 @@
|
||||
|
||||
namespace ox {
|
||||
|
||||
ClArgs::ClArgs(int argc, const char **args) {
|
||||
ClArgs::ClArgs(int argc, const char **args) noexcept {
|
||||
for (int i = 0; i < argc; i++) {
|
||||
String arg = args[i];
|
||||
if (arg[0] == '-') {
|
||||
@ -19,7 +19,6 @@ ClArgs::ClArgs(int argc, const char **args) {
|
||||
arg = arg.c_str() + 1;
|
||||
}
|
||||
m_bools[arg] = true;
|
||||
|
||||
// parse additional arguments
|
||||
if (i < argc && args[i + 1]) {
|
||||
String val = args[i + 1];
|
||||
@ -38,18 +37,34 @@ ClArgs::ClArgs(int argc, const char **args) {
|
||||
}
|
||||
}
|
||||
|
||||
bool ClArgs::getBool(const char *arg) const {
|
||||
auto out = m_ints.at(arg);
|
||||
return out.value ? *out.value : false;
|
||||
bool ClArgs::getBool(const char *arg, bool defaultValue) const noexcept {
|
||||
auto [value, err] = m_ints.at(arg);
|
||||
return !err ? *value : defaultValue;
|
||||
}
|
||||
|
||||
String ClArgs::getString(const char *argName, const char *defaultArg) const {
|
||||
return m_strings.contains(argName) ? m_strings.at(argName).value->c_str() : defaultArg;
|
||||
String ClArgs::getString(const char *arg, const char *defaultValue) const noexcept {
|
||||
auto [value, err] = m_strings.at(arg);
|
||||
return !err ? *value : defaultValue;
|
||||
}
|
||||
|
||||
int ClArgs::getInt(const char *arg) const {
|
||||
auto out = m_ints.at(arg);
|
||||
return out.value ? *out.value : 0;
|
||||
int ClArgs::getInt(const char *arg, int defaultValue) const noexcept {
|
||||
auto [value, err] = m_ints.at(arg);
|
||||
return !err ? *value : defaultValue;
|
||||
}
|
||||
|
||||
Result<bool> ClArgs::getBool(const char *arg) const noexcept {
|
||||
oxRequire(out, m_bools.at(arg));
|
||||
return *out;
|
||||
}
|
||||
|
||||
Result<String> ClArgs::getString(const char *argName) const noexcept {
|
||||
oxRequire(out, m_strings.at(argName));
|
||||
return *out;
|
||||
}
|
||||
|
||||
Result<int> ClArgs::getInt(const char *arg) const noexcept {
|
||||
oxRequire(out, m_ints.at(arg));
|
||||
return *out;
|
||||
}
|
||||
|
||||
}
|
||||
|
15
deps/ox/src/ox/clargs/clargs.hpp
vendored
15
deps/ox/src/ox/clargs/clargs.hpp
vendored
@ -21,13 +21,20 @@ class ClArgs {
|
||||
HashMap<String, int> m_ints;
|
||||
|
||||
public:
|
||||
ClArgs(int argc, const char **args);
|
||||
ClArgs(int argc, const char **args) noexcept;
|
||||
|
||||
bool getBool(const char *arg) const;
|
||||
bool getBool(const char *arg, bool defaultValue) const noexcept;
|
||||
|
||||
String getString(const char *argName, const char *defaultArg = "") const;
|
||||
String getString(const char *argName, const char *defaultArg) const noexcept;
|
||||
|
||||
int getInt(const char *arg, int defaultValue) const noexcept;
|
||||
|
||||
Result<bool> getBool(const char *arg) const noexcept;
|
||||
|
||||
Result<String> getString(const char *argName) const noexcept;
|
||||
|
||||
Result<int> getInt(const char *arg) const noexcept;
|
||||
|
||||
int getInt(const char *arg) const;
|
||||
};
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user