45 lines
874 B
C++
45 lines
874 B
C++
export module oar;
|
|
|
|
import coral;
|
|
import coral.files;
|
|
|
|
export namespace oar {
|
|
constexpr coral::usize signature_length{4};
|
|
|
|
constexpr coral::u8 signature_magic[signature_length]{'o', 'a', 'r', 0};
|
|
|
|
struct entry {
|
|
coral::u8 signature_magic[signature_length];
|
|
|
|
coral::path path;
|
|
|
|
coral::u64 data_offset;
|
|
|
|
coral::u64 data_length;
|
|
|
|
coral::u8 padding[244];
|
|
};
|
|
|
|
struct archive : public coral::fs {
|
|
using coral::fs::access_result;
|
|
|
|
archive() {
|
|
|
|
}
|
|
|
|
access_result read_file(coral::path const & file_path,
|
|
coral::callable<void(coral::readable const &)> const & then) override {
|
|
|
|
return access_result::access_denied;
|
|
}
|
|
|
|
virtual access_result write_file(coral::path const & file_path,
|
|
coral::callable<void(coral::writable const &)> const & then) override {
|
|
|
|
return access_result::access_denied;
|
|
}
|
|
};
|
|
}
|
|
|
|
static_assert(sizeof(oar::entry) == 512);
|