54 inline IncludeSet(std::initializer_list<IncludeEntry> entries)
58 Add(entry.path, entry.style);
66 std::initializer_list<std::filesystem::path> paths,
69 for (
const std::filesystem::path& path : paths)
78 inline const std::vector<IncludeEntry>&
GetEntries()
const
87 inline std::vector<IncludeEntry>::const_iterator
begin()
const
89 return m_entries.begin();
96 inline std::vector<IncludeEntry>::iterator
begin()
98 return m_entries.begin();
105 inline std::vector<IncludeEntry>::const_iterator
end()
const
107 return m_entries.end();
114 inline std::vector<IncludeEntry>::iterator
end()
116 return m_entries.end();
126 const std::filesystem::path& path,
131 auto found = std::find_if(
135 return it.path == path && it.style == style;
138 if (found != m_entries.end())
183 entry.priority = 1000;
193 entry.priority = 100;
197 entry.priority = 200;
207 const std::string path = entry.path.string();
211 while ((next = path.find_first_of(
'/', offset)) != std::string::npos)
224 if (left.priority != right.priority)
226 return left.priority < right.priority;
230 return left.path < right.path;
237 std::vector<IncludeEntry> m_entries;
Collection of unique file system paths.
Definition: IncludeSet.hpp:46
IncludeSet(std::initializer_list< std::filesystem::path > paths, IncludeStyle style)
Definition: IncludeSet.hpp:65
void Sort(IncludeStyle resolvedStyle)
Definition: IncludeSet.hpp:165
std::vector< IncludeEntry >::iterator begin()
Definition: IncludeSet.hpp:96
std::vector< IncludeEntry >::const_iterator begin() const
Definition: IncludeSet.hpp:87
std::vector< IncludeEntry >::const_iterator end() const
Definition: IncludeSet.hpp:105
void Add(const std::filesystem::path &path, IncludeStyle style=IncludeStyle::Inherit)
Definition: IncludeSet.hpp:125
IncludeSet(std::initializer_list< IncludeEntry > entries)
Definition: IncludeSet.hpp:54
const std::vector< IncludeEntry > & GetEntries() const
Definition: IncludeSet.hpp:78
std::vector< IncludeEntry >::iterator end()
Definition: IncludeSet.hpp:114
IncludeStyle
Include style to use when writing to output.
Definition: IncludeStyle.hpp:36
@ DoubleQuotes
Output double quotation marks "".
@ Inherit
Inherit setting from the config, not valid on Writer.
@ SingleQuotes
Output single quotation marks '' (not valid for C++)
@ AngularBrackets
Output angular brackets <>
Definition: Braces.hpp:29
Data for includes.
Definition: IncludeEntry.hpp:36