aboutsummaryrefslogtreecommitdiff
path: root/lib/mstch/test/data/higher_order_sections.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mstch/test/data/higher_order_sections.hpp')
-rw-r--r--lib/mstch/test/data/higher_order_sections.hpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/mstch/test/data/higher_order_sections.hpp b/lib/mstch/test/data/higher_order_sections.hpp
new file mode 100644
index 0000000..ef2582c
--- /dev/null
+++ b/lib/mstch/test/data/higher_order_sections.hpp
@@ -0,0 +1,28 @@
+class higher_order_sections: public mstch::object {
+ private:
+ std::string m_helper;
+ public:
+ higher_order_sections(): m_helper("To tinker?") {
+ register_methods(this, std::map<std::string,mstch::node(higher_order_sections::*)()>{
+ {"name", &higher_order_sections::name},
+ {"helper", &higher_order_sections::helper},
+ {"bolder", &higher_order_sections::bolder}
+ });
+ }
+
+ mstch::node name() {
+ return std::string{"Tater"};
+ }
+
+ mstch::node helper() {
+ return m_helper;
+ }
+
+ mstch::node bolder() {
+ return mstch::lambda{[this](const std::string& text) -> mstch::node {
+ return "<b>" + text + "</b> " + m_helper;
+ }};
+ }
+};
+
+const mstch::node higher_order_sections_data = std::make_shared<higher_order_sections>(); \ No newline at end of file