MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
env_builder.hpp
1#ifndef MSTL_CORE_FILE_ENV_ENV_BUILDER_HPP__
2#define MSTL_CORE_FILE_ENV_ENV_BUILDER_HPP__
3#include "env_value.hpp"
5
6class MSTL_API env_builder {
7private:
8 unique_ptr<env_document> root_;
9 string current_key_;
10 env_variable::quote_type current_quote_type_ = env_variable::None;
11 bool current_exported_ = false;
12
13public:
14 env_builder();
15 env_builder(const env_builder&) = delete;
16 env_builder& operator =(const env_builder&) = delete;
17 env_builder(env_builder&&) = default;
18 env_builder& operator =(env_builder&&) = default;
19
20 env_builder& key(const string& k);
21
22 env_builder& unquoted() noexcept;
23 env_builder& single_quoted() noexcept;
24 env_builder& double_quoted() noexcept;
25 env_builder& exported(bool exp = true) noexcept;
26
27 env_builder& value(const string& v);
28 env_builder& value(const char* v) { return value(string(v)); }
29 env_builder& value(const string_view v) { return value(string(v)); }
30 env_builder& value(int v);
31 env_builder& value(int64_t v);
32 env_builder& value(double v);
33 env_builder& value(bool v);
34
35 env_builder& value(double v, int precision);
36
37 env_builder& comment(const string& text);
38 env_builder& blank_line();
39
40 env_builder& add(const string& key, const string& value);
41 env_builder& add(const string& key, const string_view value) { return add(key, string(value)); }
42 env_builder& add(const string& key, const char* value) { return add(key, string(value)); }
43 env_builder& add(const string& key, int value);
44 env_builder& add(const string& key, int64_t value);
45 env_builder& add(const string& key, double value);
46 env_builder& add(const string& key, bool value);
47
48 env_builder& add_export(const string& key, const string& value);
49
50 unique_ptr<env_document> build();
51};
52
54#endif // MSTL_CORE_FILE_ENV_ENV_BUILDER_HPP__
long long int64_t
64位有符号整数类型
#define MSTL_END_NAMESPACE__
结束全局命名空间MSTL
#define MSTL_BEGIN_NAMESPACE__
开始全局命名空间MSTL