3 #include <hocon/config_origin.hpp>
11 enum class origin_type { GENERIC, FILE, RESOURCE };
16 origin_type org_type, std::string resource_or_null, std::vector<std::string> comments_or_null);
20 origin_type org_type = origin_type::GENERIC);
25 std::vector<std::string>
const&
comments()
const override;
34 std::shared_ptr<const simple_config_origin> append_comments(std::vector<std::string>
comments)
const;
35 std::shared_ptr<const simple_config_origin> prepend_comments(std::vector<std::string>
comments)
const;
37 static shared_origin merge_origins(shared_origin a, shared_origin b);
38 static shared_origin merge_origins(std::vector<shared_value>
const& stack);
39 static shared_origin merge_origins(std::vector<shared_origin>
const& stack);
45 static std::shared_ptr<const simple_config_origin> merge_two(std::shared_ptr<const simple_config_origin> a,
46 std::shared_ptr<const simple_config_origin> b);
52 static std::shared_ptr<const simple_config_origin> merge_three(std::shared_ptr<const simple_config_origin> a,
53 std::shared_ptr<const simple_config_origin> b,
54 std::shared_ptr<const simple_config_origin> c);
56 static int similarity(std::shared_ptr<const simple_config_origin> a,
57 std::shared_ptr<const simple_config_origin> b);
59 std::string _description;
62 origin_type _origin_type;
63 std::string _resource_or_null;
64 std::vector<std::string> _comments_or_null;