#include #include using namespace mcc::impl; static auto kv_desc = std::make_tuple( mcc_simple_kv_record_t{"bb", MccAngle{11.5_degs}, mcc_serialization_params_t{}}, mcc_simple_kv_record_t{"aaa", std::string("AAA"), mcc_serialization_params_t{}}, mcc_simple_kv_record_t{"cc", MccCelestialCoordEpoch{}, mcc_serialization_params_t{}}, mcc_simple_kv_record_t{ "ddd", MccAngle{11.5_degs}, mcc_serialization_params_t{.angle_format = mcc::MccSerializedAngleFormat::MCC_SERIALIZED_FORMAT_SXGM_HOURS}}); static std::string STR = R"--( aaa = dewl_ewkj23+23998 # # this is angle bb=1.24534 cc= 2026-05-15T05:53:20.921723918 # date UTC )--"; static std::string STR1 = R"--( aaa = dewl_ewkj23+23998 # # this is obs date cc= 2026-05-15T05:53:20.921723918 # date UTC ddd = 01:02:33.434 # HA in hours:mins:secs )--"; int main() { MccKeyValueHolder kv(kv_desc); // auto err = kv.fromCharRange(STR); auto err = kv.fromCharRange(STR1); if (err) { std::println("ERR = {}", err); return 1; } std::println("{} = {}", "bb", kv.getValue(std::string{"bb"}).value().sexagesimal()); std::println("{} = {}", "cc", kv.getValue("cc").value().UTC()); err = kv.setValue("cc", std::chrono::system_clock::now()); if (err) { std::println("ERR = {}", err); // return 1; } err = kv.setValue("aaa", "OK"); if (err) { std::println("ERR = {}", err); // return 1; } err = kv.setValue("ddd", 37.5_degs); if (err) { std::println("ERR = {}", err); // return 1; } std::println("------------------------------------"); std::string buff; err = kv.toCharRange(buff); // err = kv.toCharRange(buff); if (err) { std::println("ERR = {}", err); return 1; } std::println("--(\n{}\n)--", buff); std::print("KEYS: "); for (auto const& k : kv.keys()) { std::print("{} ", k); } std::println(""); return 0; }