78 lines
1.7 KiB
C++
78 lines
1.7 KiB
C++
#include <print>
|
|
|
|
#include <mcc/mcc_keyvalue.h>
|
|
|
|
using namespace mcc::impl;
|
|
|
|
static auto kv_desc = std::make_tuple(mcc_simple_kv_record_t{"bb", MccAngle{11.5_degs}},
|
|
mcc_simple_kv_record_t{"aaa", std::string("AAA")},
|
|
mcc_simple_kv_record_t{"cc", MccCelestialCoordEpoch{}});
|
|
|
|
|
|
|
|
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
|
|
|
|
)--";
|
|
|
|
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<MccAngle>(std::string{"bb"}).value().sexagesimal());
|
|
std::println("{} = {}", "cc", kv.getValue<MccCelestialCoordEpoch>("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;
|
|
}
|
|
|
|
std::println("------------------------------------");
|
|
|
|
std::string buff;
|
|
|
|
err = kv.toCharRange<decltype(kv)::OPOLICY_FULL>(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;
|
|
} |