#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 { std::string name; uint64_t size = 0; FileType type = None; std::string fullPath; uint16_t permission = 0; uint64_t lastModifyTime = 0; DirFileInfo() = default; template <class Archive> void serialize(Archive& archive) { archive(CEREAL_NVP(name), CEREAL_NVP(size), CEREAL_NVP(type), CEREAL_NVP(fullPath), CEREAL_NVP(permission), CEREAL_NVP(lastModifyTime)); } }; struct DirFileInfoVec { std::vector<DirFileInfo> vec; template <class Archive> void serialize(Archive& archive) { archive(CEREAL_NVP(vec)); } }; #endif