36#ifndef PreferenceTree_h
37#define PreferenceTree_h
43#include "yaml-cpp/yaml.h"
45enum class PreferenceTreeNodeType
65 std::size_t GetLength()
const;
66 const std::string& GetCurrentSegment()
const;
69 std::vector<std::string> m_segments;
76 : m_identifier{ std::move(identifier) }, m_type{ type }
93 virtual void ToYAML(YAML::Node& node)
const = 0;
94 virtual void FromYAML(
const YAML::Node& node) = 0;
96 virtual bool IsVisible()
const = 0;
99 const std::string& GetIdentifier()
const;
100 PreferenceTreeNodeType GetType()
const;
101 bool IsCategory()
const;
102 bool IsPreference()
const;
108 std::string m_identifier;
109 PreferenceTreeNodeType m_type;
119 virtual void ToYAML(YAML::Node& node)
const;
120 virtual void FromYAML(
const YAML::Node& node);
124 virtual bool IsVisible()
const;
135 using map_type = std::map<std::string, std::unique_ptr<internal::PreferenceTreeNodeBase>>;
136 using seq_type = std::vector<std::string>;
143 const Preference& GetLeaf(
const std::string& path)
const;
144 virtual void ToYAML(YAML::Node& node)
const;
145 virtual void FromYAML(
const YAML::Node& node);
150 map_type& GetChildren();
151 const seq_type& GetOrdering()
const;
152 virtual bool IsVisible()
const;
Basic preference class and auxilliary types.
Definition: PreferenceTree.h:133
Definition: Preference.h:120
Definition: Preference.h:265
Definition: PreferenceTree.h:114
Definition: PreferenceTree.h:56
Definition: PreferenceTree.h:73