1 #ifndef OSMIUM_UTIL_OPTIONS_HPP 2 #define OSMIUM_UTIL_OPTIONS_HPP 37 #include <initializer_list> 80 explicit Options(
const std::initializer_list<value_type>& values) :
87 void set(
const std::string& key,
const std::string& value) {
88 m_options[key] = value;
94 void set(
const std::string& key,
const char* value) {
95 m_options[key] = value;
101 void set(
const std::string& key,
bool value) {
102 m_options[key] = value ?
"true" :
"false";
110 void set(
const std::string& data) {
111 const size_t pos = data.find_first_of(
'=');
112 if (pos == std::string::npos) {
113 m_options[data] =
"true";
115 std::string value = data.substr(pos+1);
116 set(data.substr(0, pos), value);
124 std::string
get(
const std::string& key,
const std::string& default_value=
"")
const noexcept {
125 const auto it = m_options.find(key);
126 if (it == m_options.end()) {
127 return default_value;
136 bool is_true(
const std::string& key)
const noexcept {
137 const std::string value =
get(key);
138 return (value ==
"true" || value ==
"yes");
146 const std::string value =
get(key);
147 return !(value ==
"false" || value ==
"no");
154 return m_options.size();
161 return m_options.begin();
168 return m_options.end();
175 return m_options.cbegin();
182 return m_options.cend();
189 return m_options.cbegin();
196 return m_options.cend();
205 #endif // OSMIUM_UTIL_OPTIONS_HPP bool is_not_false(const std::string &key) const noexcept
Definition: options.hpp:145
const_iterator cbegin() const noexcept
Definition: options.hpp:188
std::map< std::string, std::string > option_map
Definition: options.hpp:60
iterator end() noexcept
Definition: options.hpp:167
option_map::value_type value_type
Definition: options.hpp:67
option_map m_options
Definition: options.hpp:61
Options(const std::initializer_list< value_type > &values)
Definition: options.hpp:80
Definition: options.hpp:58
bool is_true(const std::string &key) const noexcept
Definition: options.hpp:136
Namespace for everything in the Osmium library.
Definition: assembler.hpp:63
option_map::const_iterator const_iterator
Definition: options.hpp:66
const_iterator begin() const noexcept
Definition: options.hpp:174
const_iterator cend() const noexcept
Definition: options.hpp:195
const_iterator end() const noexcept
Definition: options.hpp:181
size_t size() const noexcept
Definition: options.hpp:153
option_map::iterator iterator
Definition: options.hpp:65
iterator begin() noexcept
Definition: options.hpp:160