diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2021-04-27 11:23:17 +0200 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2021-04-27 11:23:17 +0200 |
commit | 514cb71a6a3e116c229c5dc874369f8632530dc7 (patch) | |
tree | dbc61581e04809fca19fefb3f4954b76e1e3e2c8 /include/inja/template.hpp |
Squashed 'deps/inja/' content from commit 811e173
git-subtree-dir: deps/inja
git-subtree-split: 811e1730e13bca4ea1805a42d5f0a4b5c91046e1
Diffstat (limited to 'include/inja/template.hpp')
-rw-r--r-- | include/inja/template.hpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/inja/template.hpp b/include/inja/template.hpp new file mode 100644 index 0000000..9de0a96 --- /dev/null +++ b/include/inja/template.hpp @@ -0,0 +1,39 @@ +// Copyright (c) 2019 Pantor. All rights reserved. + +#ifndef INCLUDE_INJA_TEMPLATE_HPP_ +#define INCLUDE_INJA_TEMPLATE_HPP_ + +#include <map> +#include <memory> +#include <string> +#include <vector> + +#include "node.hpp" +#include "statistics.hpp" + + +namespace inja { + +/*! + * \brief The main inja Template. + */ +struct Template { + BlockNode root; + std::string content; + + explicit Template() { } + explicit Template(const std::string& content): content(content) { } + + /// Return number of variables (total number, not distinct ones) in the template + int count_variables() { + auto statistic_visitor = StatisticsVisitor(); + root.accept(statistic_visitor); + return statistic_visitor.variable_counter; + } +}; + +using TemplateStorage = std::map<std::string, Template>; + +} // namespace inja + +#endif // INCLUDE_INJA_TEMPLATE_HPP_ |