ona/source/oar.cpp

39 lines
731 B
C++
Raw Normal View History

2023-02-19 17:43:30 +01:00
export module oar;
2023-02-19 17:50:29 +01:00
import coral;
import coral.files;
2023-02-19 17:43:30 +01:00
export namespace oar {
2023-02-19 17:50:29 +01:00
constexpr coral::usize signature_length{4};
2023-02-19 17:43:30 +01:00
2023-02-19 17:50:29 +01:00
constexpr coral::u8 signature_magic[signature_length]{'o', 'a', 'r', 0};
2023-02-19 17:43:30 +01:00
struct entry {
2023-02-19 17:50:29 +01:00
coral::u8 signature_magic[signature_length];
2023-02-19 17:43:30 +01:00
2023-02-19 17:50:29 +01:00
coral::path path;
2023-02-19 17:43:30 +01:00
2023-02-19 17:50:29 +01:00
coral::u64 data_offset;
2023-02-19 17:43:30 +01:00
2023-02-19 17:50:29 +01:00
coral::u64 data_length;
2023-02-19 17:43:30 +01:00
2023-02-19 17:50:29 +01:00
coral::u8 padding[244];
2023-02-19 17:43:30 +01:00
};
2023-02-19 17:50:29 +01:00
struct archive : public coral::fs {
2023-02-19 17:43:30 +01:00
archive() {
}
2023-02-19 18:16:43 +01:00
void read_file(coral::path const & file_path,
2023-02-19 17:50:29 +01:00
coral::callable<void(coral::readable const &)> const & then) override {
2023-02-19 17:43:30 +01:00
}
2023-02-19 18:16:43 +01:00
void write_file(coral::path const & file_path,
2023-02-19 17:50:29 +01:00
coral::callable<void(coral::writable const &)> const & then) override {
2023-02-19 17:43:30 +01:00
}
};
}
static_assert(sizeof(oar::entry) == 512);