cmDocumentation: Accept Iterable instead of vector on add entries

This commit is contained in:
Alex Turbov
2022-08-23 19:33:09 +04:00
parent 067dcb9efd
commit ccff0b87a2
2 changed files with 18 additions and 26 deletions

View File

@@ -373,14 +373,6 @@ void cmDocumentation::SetSection(const char* name,
this->SectionAtName(name) = std::move(section);
}
void cmDocumentation::SetSection(const char* name,
std::vector<cmDocumentationEntry>& docs)
{
cmDocumentationSection sec{ name };
sec.Append(docs);
this->SetSection(name, std::move(sec));
}
void cmDocumentation::SetSection(const char* name, const char* docs[][2])
{
cmDocumentationSection sec{ name };
@@ -406,23 +398,11 @@ void cmDocumentation::PrependSection(const char* name, const char* docs[][2])
this->SectionAtName(name).Prepend(docs);
}
void cmDocumentation::PrependSection(const char* name,
std::vector<cmDocumentationEntry>& docs)
{
this->SectionAtName(name).Prepend(docs);
}
void cmDocumentation::AppendSection(const char* name, const char* docs[][2])
{
this->SectionAtName(name).Append(docs);
}
void cmDocumentation::AppendSection(const char* name,
std::vector<cmDocumentationEntry>& docs)
{
this->SectionAtName(name).Append(docs);
}
void cmDocumentation::AppendSection(const char* name,
cmDocumentationEntry& docs)
{

View File

@@ -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) */