mstch/test/data/dot_notation.hpp

34 lines
986 B
C++
Raw Normal View History

2015-04-17 02:07:14 +02:00
class dot_notation_price: public mstch::object {
private:
2015-04-21 15:04:11 +02:00
int m_value;
mstch::map m_currency;
2015-04-17 02:07:14 +02:00
public:
dot_notation_price():
2015-10-01 12:16:35 +02:00
m_value(200), m_currency(mstch::map{{"symbol", std::string{"$"}}, {"name", std::string{"USD"}}})
2015-04-17 02:07:14 +02:00
{
2015-10-01 12:16:35 +02:00
register_methods(this, std::map<std::string,mstch::node(dot_notation_price::*)()>{
2015-04-21 15:04:11 +02:00
{"value", &dot_notation_price::value},
{"vat", &dot_notation_price::vat},
{"currency", &dot_notation_price::currency}});
}
mstch::node value() {
return m_value;
2015-04-17 02:07:14 +02:00
}
mstch::node vat() {
2015-04-29 10:53:01 +02:00
return m_value * 0.2;
2015-04-21 15:04:11 +02:00
}
mstch::node currency() {
return m_currency;
2015-04-17 02:07:14 +02:00
}
};
const auto dot_notation_data = mstch::map{
{"name", std::string{"A Book"}},
{"authors", mstch::array{std::string{"John Power"}, std::string{"Jamie Walsh"}}},
{"price", std::make_shared<dot_notation_price>()},
{"availability", mstch::map{{"status", true}, {"text", std::string{"In Stock"}}}},
{"truthy", mstch::map{{"zero", 0}, {"notTrue", false}}}
};