aboutsummaryrefslogtreecommitdiff
path: root/src/environment.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/environment.hpp')
-rw-r--r--src/environment.hpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/environment.hpp b/src/environment.hpp
new file mode 100644
index 0000000..a6322cb
--- /dev/null
+++ b/src/environment.hpp
@@ -0,0 +1,39 @@
+#ifndef WANDA_ENVIRONMENT_HPP
+#define WANDA_ENVIRONMENT_HPP
+
+#include <unistd.h>
+
+#include <map>
+#include <string>
+
+namespace wanda
+{
+
+struct environment
+{
+ using map_type = std::map<std::string, std::string>;
+ using iterator = map_type::iterator;
+ using const_iterator = map_type::const_iterator;
+ using reference = map_type::reference;
+ using const_reference = map_type::const_reference;
+
+ explicit environment(char const *const *env = ::environ);
+
+ std::string &operator[](std::string const &variable);
+ std::string const &operator[](std::string const &variable) const;
+
+ iterator begin();
+ const_iterator begin() const;
+ const_iterator cbegin() const;
+
+ iterator end();
+ const_iterator end() const;
+ const_iterator cend() const;
+
+ private:
+ map_type m_cache{};
+};
+
+} // namespace wanda
+
+#endif \ No newline at end of file