From bf2bcd55e2692723191ffd66f57bd8d53c8287d5 Mon Sep 17 00:00:00 2001 From: Jessica James Date: Mon, 6 Dec 2021 22:37:19 -0600 Subject: [PATCH] use case-insensitive containers for app_parameters --- src/common/app_parameters.cpp | 9 +++++---- src/include/jessilib/app_parameters.hpp | 14 +++++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/common/app_parameters.cpp b/src/common/app_parameters.cpp index 63b3851..3e49bf8 100644 --- a/src/common/app_parameters.cpp +++ b/src/common/app_parameters.cpp @@ -159,7 +159,7 @@ app_parameters::app_parameters(std::vector in_args, std::vector{ m_switches.begin(), m_switches.end() }; + m_switches_set = { m_switches.begin(), m_switches.end() }; } std::u8string_view app_parameters::path() const { @@ -174,11 +174,11 @@ const std::vector& app_parameters::switches() const { return m_switches; } -const std::unordered_set& app_parameters::switches_set() const { +const app_parameters::set_type& app_parameters::switches_set() const { return m_switches_set; } -const std::unordered_map& app_parameters::values() const { +const app_parameters::map_type& app_parameters::values() const { return m_arg_values; } @@ -196,7 +196,8 @@ object app_parameters::as_object() const { { u8"Path"s, m_path }, { u8"Args"s, m_args }, { u8"Switches"s, m_switches }, - { u8"Values"s, m_arg_values } + { u8"Values"s, m_arg_values }, + { u8"Env"s, m_env_values } }; } diff --git a/src/include/jessilib/app_parameters.hpp b/src/include/jessilib/app_parameters.hpp index de2fd95..82306bc 100644 --- a/src/include/jessilib/app_parameters.hpp +++ b/src/include/jessilib/app_parameters.hpp @@ -17,11 +17,15 @@ */ #include "object.hpp" +#include "unicode_compare.hpp" namespace jessilib { class app_parameters { public: + using set_type = std::unordered_set; + using map_type = std::unordered_map; + app_parameters(int in_argc, char** in_argv, char** in_envp = nullptr); app_parameters(int in_argc, const char** in_argv, const char** in_envp = nullptr); app_parameters(int in_argc, wchar_t** in_argv, wchar_t** in_envp = nullptr); @@ -32,8 +36,8 @@ public: const std::vector& arguments() const; const std::vector& switches() const; - const std::unordered_set& switches_set() const; - const std::unordered_map& values() const; + const set_type& switches_set() const; + const map_type& values() const; jessilib::object as_object() const; bool has_switch(std::u8string_view in_switch) const; @@ -47,9 +51,9 @@ private: std::u8string m_path; std::vector m_args; std::vector m_switches; - std::unordered_set m_switches_set; - std::unordered_map m_arg_values; - std::unordered_map m_env_values; + set_type m_switches_set; + map_type m_arg_values; + map_type m_env_values; }; } // namespace jessilib