zengine-old/engine/3rdparty/zlib/test/yaml/main.cpp

37 lines
985 B
C++
Raw Normal View History

2024-06-14 22:25:34 +08:00
#include "guid.h"
#include "yaml/yaml.h"
#include <iostream>
#include <cassert>
using namespace refl;
using namespace std;
2024-06-21 22:21:32 +08:00
using namespace test;
2024-06-14 22:25:34 +08:00
int main() {
2024-06-21 22:21:32 +08:00
using T = test::Guid;
auto cls = &TypeInfo<T>::StaticClass;
2024-06-14 22:25:34 +08:00
int x = 123;
Guid g1 = Guid::Make();
2024-06-16 22:52:45 +08:00
YAML::TextArchive::Register<Guid>();
2024-06-14 22:25:34 +08:00
string rx = YAML::Text_Serialize(x);
string rg1 = YAML::Text_Serialize(g1);
YAML::Node rg2 = YAML::Load(rg1);
2024-06-17 00:25:00 +08:00
auto res1 = YAML::Text_Unserialize<Guid>(rg1);
Guid g2 = res1.value();
2024-06-14 22:25:34 +08:00
assert(g1 == g2);
2024-06-21 22:21:32 +08:00
//auto res2 = YAML::Text_Unserialize<MetaBundle>(rg1);
//if (res2) {
//MetaBundle aa = res2.value();
//}
2024-06-14 22:25:34 +08:00
std::cout << rg1 << std::endl;
YAML::Node primes = YAML::Load("[2, 3, 5, 7, 11]");
for (std::size_t i = 0; i < primes.size(); i++) {
std::cout << primes[i].as<int>() << "\n";
}
// or:
for (YAML::const_iterator it = primes.begin(); it != primes.end(); ++it) {
std::cout << it->as<int>() << "\n";
}
primes.push_back(13);
assert(primes.size() == 6);
return 0;
}