add:添加vec序列化测试。

This commit is contained in:
taynpg 2025-05-08 12:46:49 +08:00
parent ecb8ea5e65
commit 4442ecd7e5
3 changed files with 55 additions and 7 deletions

View File

@ -119,6 +119,8 @@
"complex": "cpp",
"regex": "cpp",
"typeindex": "cpp",
"valarray": "cpp"
"valarray": "cpp",
"charconv": "cpp",
"compare": "cpp"
}
}

View File

@ -4,8 +4,10 @@
#include <cereal/archives/binary.hpp>
#include <cereal/types/memory.hpp>
#include <cereal/types/unordered_map.hpp>
#include <cereal/types/vector.hpp>
#include <cstdint>
#include <string>
#include <vector>
#include <wx/wx.h>
enum FileType : uint32_t {
@ -16,16 +18,28 @@ enum FileType : uint32_t {
};
struct DirFileInfo {
FileType type;
FileType type = None;
std::string fullPath;
std::string name;
uint64_t lastModifyTime;
uint64_t size;
uint16_t permission;
uint64_t lastModifyTime = 0;
uint64_t size = 0;
uint16_t permission = 0;
DirFileInfo() = default;
template <class Archive> void serialize(Archive& archive)
{
archive(type, fullPath, name, lastModifyTime, size, permission);
archive(CEREAL_NVP(type), CEREAL_NVP(fullPath), CEREAL_NVP(name), CEREAL_NVP(lastModifyTime), CEREAL_NVP(size),
CEREAL_NVP(permission));
}
};
struct DirFileInfoVec {
std::vector<DirFileInfo> vec;
template <class Archive> void serialize(Archive& archive)
{
archive(CEREAL_NVP(vec));
}
};

View File

@ -1,7 +1,7 @@
#include <InfoDirFile.hpp>
#include <iostream>
int main()
void test1()
{
DirFileInfo info;
DirFileInfo info2;
@ -33,6 +33,38 @@ int main()
cereal::BinaryInputArchive inputArchive(inputSs);
inputArchive(info2);
}
}
void test2()
{
DirFileInfoVec v;
DirFileInfoVec v2;
DirFileInfo d1;
d1.fullPath = "Java";
DirFileInfo d2;
d2.fullPath = "CPP";
v.vec.push_back(d1);
v.vec.push_back(d2);
std::stringstream ss;
{
cereal::BinaryOutputArchive archive(ss);
archive(v);
}
std::string ret = ss.str();
std::cout << "Serialized size: " << ret.size() << " bytes\n";
{
std::stringstream inputSs(ret);
cereal::BinaryInputArchive inputArchive(inputSs);
inputArchive(v2);
}
}
int main()
{
test2();
return 0;
}