3 #include <internal/container.hpp>
4 #include <hocon/config_object.hpp>
5 #include <hocon/config_value.hpp>
6 #include <hocon/config.hpp>
7 #include <unordered_map>
14 resolve_status status,
bool ignores_fallbacks);
21 bool is_empty()
const override {
return _value.empty(); }
22 size_t size()
const override {
return _value.size(); }
23 shared_value operator[](std::string
const& key)
const override {
return _value.at(key); }
24 iterator begin()
const override {
return _value.begin(); }
25 iterator end()
const override {
return _value.end(); }
26 unwrapped_value unwrapped()
const override;
28 shared_value get(std::string
const& key)
const override {
29 if (_value.find(key) == _value.end()) {
32 return _value.at(key);
35 std::unordered_map<std::string, shared_value>
const& entry_set()
const override;
37 resolve_status get_resolve_status()
const override {
return _resolved; }
38 bool ignores_fallbacks()
const override {
return _ignores_fallbacks; }
39 shared_value with_fallbacks_ignored()
const override;
40 shared_value merged_with_object(shared_object fallback)
const override;
42 shared_object with_value(path raw_path, shared_value value)
const override;
43 shared_object with_value(std::string key, shared_value value)
const override;
44 shared_object without_path(path raw_path)
const override;
45 shared_object with_only_path(path raw_path)
const override;
61 shared_value
replace_child(shared_value
const& child, shared_value replacement)
const override;
73 std::vector<std::string>
key_set()
const override;
79 std::vector<shared_value>
value_set(std::unordered_map<std::string, shared_value> m)
const;
81 bool operator==(
config_value const& other)
const override;
83 static std::shared_ptr<simple_config_object> empty();
84 static std::shared_ptr<simple_config_object> empty(shared_origin
origin);
85 static std::shared_ptr<simple_config_object> empty_instance();
90 shared_value new_copy(shared_origin)
const override;
94 std::unordered_map<std::string, shared_value> _value;
95 resolve_status _resolved;
96 bool _ignores_fallbacks;
98 shared_object new_copy(resolve_status
const& new_status, shared_origin new_origin)
const override;
100 std::shared_ptr<simple_config_object> modify_may_throw(
modifier&
modifier)
const;
102 static resolve_status resolve_status_from_value(
const std::unordered_map<std::string, shared_value>&
value);
104 struct resolve_modifier;