RelayFile/Information/InfoDirFile.hpp

45 lines
925 B
C++

#ifndef DIRFILE_H
#define DIRFILE_H
#include <cereal/archives/binary.hpp>
#include <cereal/types/memory.hpp>
#include <cereal/types/vector.hpp>
#include <cstdint>
#include <string>
#include <vector>
#include <wx/wx.h>
enum FileType : uint32_t {
None = 0,
File,
Dir,
Link
};
struct DirFileInfo {
FileType type = None;
std::string fullPath;
std::string name;
uint64_t lastModifyTime = 0;
uint64_t size = 0;
uint16_t permission = 0;
DirFileInfo() = default;
template <class Archive> void serialize(Archive& archive)
{
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));
}
};
#endif