#include <xtd/collections/specialized/string_pair>
#include <xtd/boxing>
#include <xtd/console>
#include <xtd/environment>
#include <vector>
class setup_serializer :
public object {
public:
using pair_collection = std::vector<string_pair>;
setup_serializer() = default;
void add_key_value(
const ustring& key,
const object& value) {
key_values_.push_back({key, value.
to_string()});
}
void title(
const ustring& title) {title_ = title;}
for (const auto& [key, value] : key_values_)
return result;
}
private:
pair_collection key_values_;
};
struct setup {
};
auto main()->int {
auto my_application_setup = setup {10, 10, 300, 300, "My application", {1, 2, 3}};
auto serializer = setup_serializer {};
serializer.title("My application setup");
serializer.add_key_value(
"x",
boxing(my_application_setup.x));
serializer.add_key_value(
"y",
boxing(my_application_setup.y));
serializer.add_key_value(
"width",
boxing(my_application_setup.width));
serializer.add_key_value(
"height",
boxing(my_application_setup.height));
serializer.add_key_value(
"text",
boxing(my_application_setup.text));
serializer.add_key_value(
"version",
boxing(my_application_setup.version));
}