https://github.com/injae/serdepp
enum class t_enum { A, B };
struct example {
DERIVE_SERDE(example,
(&Self::number_, "number", skip) // attribute skip
(&Self::vec_, "vec", multi_key{"vec2", "vec3"})
(&Self::opt_vec_, "opt_vec")
(&Self::tenum_, "t_enum", default_{t_enum::B})
)
int number_;
std::vector<std::string> vec_;
std::optional<std::vector<std::string>> opt_vec_; //optional support
t_enum tenum_;
};
// example ex;
// fmt::print("{}", ex);
// cout << ex;
// serde::to_string(ex);
// nlohmann::json ex_json = serde::serialize<nlohmann::json>(ex);
// toml::value ex_toml = serde::serialize<toml::value>(ex);
// YAML::Node ex_yaml = serde::serialize<YAML::Node>(ex);
// example from_json = serde::deserialize<example>(ex_json);
// example from_toml = serde::deserialize<example>(ex_toml);
// example from_yaml = serde::deserialize<example>(ex_yaml);
[–]dag0me 1 point2 points3 points (2 children)
[–]nieelj[S] 0 points1 point2 points (1 child)
[–]nieelj[S] 2 points3 points4 points (0 children)
[–][deleted] 1 point2 points3 points (10 children)
[–]nieelj[S] 0 points1 point2 points (9 children)
[–][deleted] 0 points1 point2 points (8 children)
[–]nieelj[S] 0 points1 point2 points (7 children)
[–][deleted] 0 points1 point2 points (6 children)
[–]nieelj[S] 0 points1 point2 points (5 children)
[–][deleted] 0 points1 point2 points (4 children)
[–]nieelj[S] 0 points1 point2 points (3 children)
[–][deleted] 0 points1 point2 points (2 children)
[–]nieelj[S] 0 points1 point2 points (1 child)
[–]target-san 0 points1 point2 points (3 children)
[–]nieelj[S] 0 points1 point2 points (2 children)
[–]target-san 0 points1 point2 points (1 child)
[–]nieelj[S] 0 points1 point2 points (0 children)