1 #ifndef OSMIUM_UTIL_OPTIONS_HPP
2 #define OSMIUM_UTIL_OPTIONS_HPP
36 #include <initializer_list>
66 explicit Options(
const std::initializer_list<value_type>& values) :
78 void set(
const std::string& key,
const std::string& value) {
79 m_options[key] = value;
82 void set(
const std::string& key,
const char* value) {
83 m_options[key] = value;
86 void set(
const std::string& key,
bool value) {
87 m_options[key] = value ?
"true" :
"false";
90 void set(std::string data) {
91 size_t pos = data.find_first_of(
'=');
92 if (pos == std::string::npos) {
93 m_options[data] =
"true";
95 std::string value = data.substr(pos+1);
105 std::string
get(
const std::string& key,
const std::string& default_value=
"")
const noexcept {
106 auto it = m_options.find(key);
107 if (it == m_options.end()) {
108 return default_value;
116 bool is_true(
const std::string& key)
const noexcept {
117 std::string value =
get(key);
118 return (value ==
"true" || value ==
"yes");
122 return m_options.size();
126 return m_options.begin();
130 return m_options.end();
133 const_iterator
begin() const noexcept {
134 return m_options.cbegin();
137 const_iterator
end() const noexcept {
138 return m_options.cend();
142 return m_options.cbegin();
145 const_iterator
cend() const noexcept {
146 return m_options.cend();
155 #endif // OSMIUM_UTIL_OPTIONS_HPP
void set(const std::string &key, bool value)
Definition: options.hpp:86
void set(std::string data)
Definition: options.hpp:90
std::map< std::string, std::string > option_map
Definition: options.hpp:55
const_iterator cbegin() const noexcept
Definition: options.hpp:141
option_map::iterator iterator
Definition: options.hpp:60
iterator end() noexcept
Definition: options.hpp:129
void set(const std::string &key, const char *value)
Definition: options.hpp:82
option_map m_options
Definition: options.hpp:56
Options & operator=(const Options &)=default
Options(const std::initializer_list< value_type > &values)
Definition: options.hpp:66
Definition: options.hpp:53
bool is_true(const std::string &key) const noexcept
Definition: options.hpp:116
Namespace for everything in the Osmium library.
Definition: assembler.hpp:55
const_iterator begin() const noexcept
Definition: options.hpp:133
option_map::const_iterator const_iterator
Definition: options.hpp:61
const_iterator cend() const noexcept
Definition: options.hpp:145
const_iterator end() const noexcept
Definition: options.hpp:137
size_t size() const noexcept
Definition: options.hpp:121
void set(const std::string &key, const std::string &value)
Definition: options.hpp:78
iterator begin() noexcept
Definition: options.hpp:125
option_map::value_type value_type
Definition: options.hpp:62