1#ifndef MSTL_CORE_FILE_ENV_ENV_BUILDER_HPP__
2#define MSTL_CORE_FILE_ENV_ENV_BUILDER_HPP__
3#include "env_value.hpp"
6class MSTL_API env_builder {
8 unique_ptr<env_document> root_;
10 env_variable::quote_type current_quote_type_ = env_variable::None;
11 bool current_exported_ =
false;
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;
20 env_builder& key(
const string& k);
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;
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);
32 env_builder& value(
double v);
33 env_builder& value(
bool v);
35 env_builder& value(
double v,
int precision);
37 env_builder& comment(
const string& text);
38 env_builder& blank_line();
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);
48 env_builder& add_export(
const string& key,
const string& value);
50 unique_ptr<env_document> build();
long long int64_t
64位有符号整数类型
#define MSTL_END_NAMESPACE__
结束全局命名空间MSTL
#define MSTL_BEGIN_NAMESPACE__
开始全局命名空间MSTL