%module{Slic3r::XS}; %{ #include #include #include "libslic3r/PlaceholderParser.hpp" %} %name{Slic3r::GCode::PlaceholderParser} class PlaceholderParser { %name{_new} PlaceholderParser(); ~PlaceholderParser(); void update_timestamp(); void apply_config(DynamicPrintConfig *config) %code%{ THIS->apply_config(*config); %}; void set(std::string key, std::string value); void set_multiple(std::string key, std::vector values) %code%{ THIS->set(key, values); %}; void _single_set(std::string k, std::string v) %code%{ THIS->_single[k] = v; %}; std::string _single_get(std::string k) %code%{ RETVAL = THIS->_single[k]; %}; std::string _multiple_get(std::string k) %code%{ RETVAL = THIS->_multiple[k]; %}; std::vector _single_keys() %code{% for (std::map::iterator i = THIS->_single.begin(); i != THIS->_single.end(); ++i) { RETVAL.push_back(i->first); } %}; std::vector _multiple_keys() %code{% for (std::map::iterator i = THIS->_multiple.begin(); i != THIS->_multiple.end(); ++i) { RETVAL.push_back(i->first); } %}; };