add:添加vec序列化测试。
This commit is contained in:
parent
ecb8ea5e65
commit
4442ecd7e5
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@ -119,6 +119,8 @@
|
||||
"complex": "cpp",
|
||||
"regex": "cpp",
|
||||
"typeindex": "cpp",
|
||||
"valarray": "cpp"
|
||||
"valarray": "cpp",
|
||||
"charconv": "cpp",
|
||||
"compare": "cpp"
|
||||
}
|
||||
}
|
@ -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));
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user