summaryrefslogtreecommitdiffstats
path: root/core/io/cmdline.cc
diff options
context:
space:
mode:
Diffstat (limited to 'core/io/cmdline.cc')
-rw-r--r--core/io/cmdline.cc31
1 files changed, 21 insertions, 10 deletions
diff --git a/core/io/cmdline.cc b/core/io/cmdline.cc
index 963f67c..7a00f37 100644
--- a/core/io/cmdline.cc
+++ b/core/io/cmdline.cc
@@ -57,19 +57,30 @@ void io::cmdline::create(int argc, char** argv)
}
}
-void io::cmdline::insert(const char* option, const char* argument)
+void io::cmdline::insert(std::string_view option)
{
- if(argument == nullptr) {
- options.insert_or_assign(option, std::string());
- }
- else {
- options.insert_or_assign(option, argument);
+ options.insert_or_assign(std::string(option), std::string());
+}
+
+void io::cmdline::insert(std::string_view option, std::string_view argument)
+{
+ options.insert_or_assign(std::string(option), std::string(argument));
+}
+
+std::string_view io::cmdline::get(std::string_view option, std::string_view fallback)
+{
+ auto it = options.find(std::string(option));
+
+ if(it == options.cend()) {
+ return fallback;
}
+
+ return it->second;
}
-const char* io::cmdline::get(const char* option, const char* fallback)
+const char* io::cmdline::get_cstr(std::string_view option, const char* fallback)
{
- auto it = options.find(option);
+ auto it = options.find(std::string(option));
if(it == options.cend()) {
return fallback;
@@ -78,7 +89,7 @@ const char* io::cmdline::get(const char* option, const char* fallback)
return it->second.c_str();
}
-bool io::cmdline::contains(const char* option)
+bool io::cmdline::contains(std::string_view option)
{
- return options.count(option);
+ return options.count(std::string(option));
}