diff options
author | Alex Turbov <i.zaufi@gmail.com> | 2022-08-23 15:33:09 (GMT) |
---|---|---|
committer | Alex Turbov <i.zaufi@gmail.com> | 2022-11-17 12:37:10 (GMT) |
commit | ccff0b87a28177cd9f298adc9b650e5143b371f6 (patch) | |
tree | 3fea7e763c26446f58df868637934cd23422d656 /Source/cmDocumentation.h | |
parent | 067dcb9efdffab683ce0bd299db7bfb45eaef859 (diff) | |
download | CMake-ccff0b87a28177cd9f298adc9b650e5143b371f6.zip CMake-ccff0b87a28177cd9f298adc9b650e5143b371f6.tar.gz CMake-ccff0b87a28177cd9f298adc9b650e5143b371f6.tar.bz2 |
cmDocumentation: Accept `Iterable` instead of `vector` on add entries
Diffstat (limited to 'Source/cmDocumentation.h')
-rw-r--r-- | Source/cmDocumentation.h | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/Source/cmDocumentation.h b/Source/cmDocumentation.h index 4055039..de5449a 100644 --- a/Source/cmDocumentation.h +++ b/Source/cmDocumentation.h @@ -7,6 +7,7 @@ #include <iosfwd> #include <map> #include <string> +#include <utility> #include <vector> #include "cmDocumentationFormatter.h" @@ -74,19 +75,30 @@ public: /** Set a section of the documentation. Typical sections include Name, Usage, Description, Options */ void SetSection(const char* sectionName, cmDocumentationSection section); - void SetSection(const char* sectionName, - std::vector<cmDocumentationEntry>& docs); + template <typename Iterable> + void SetSection(const char* sectionName, const Iterable& docs) + { + cmDocumentationSection sec{ sectionName }; + sec.Append(docs); + this->SetSection(sectionName, std::move(sec)); + } void SetSection(const char* sectionName, const char* docs[][2]); void SetSections(std::map<std::string, cmDocumentationSection> sections); /** Add the documentation to the beginning/end of the section */ void PrependSection(const char* sectionName, const char* docs[][2]); - void PrependSection(const char* sectionName, - std::vector<cmDocumentationEntry>& docs); + template <typename Iterable> + void PrependSection(const char* sectionName, const Iterable& docs) + { + this->SectionAtName(sectionName).Prepend(docs); + } void PrependSection(const char* sectionName, cmDocumentationEntry& docs); void AppendSection(const char* sectionName, const char* docs[][2]); - void AppendSection(const char* sectionName, - std::vector<cmDocumentationEntry>& docs); + template <typename Iterable> + void AppendSection(const char* sectionName, const Iterable& docs) + { + this->SectionAtName(sectionName).Append(docs); + } void AppendSection(const char* sectionName, cmDocumentationEntry& docs); /** Add common (to all tools) documentation section(s) */ |