C++20 Port #5
|
@ -0,0 +1,44 @@
|
||||||
|
export module oar;
|
||||||
|
|
||||||
|
import core;
|
||||||
|
import core.files;
|
||||||
|
|
||||||
|
export namespace oar {
|
||||||
|
constexpr core::usize signature_length{4};
|
||||||
|
|
||||||
|
constexpr core::u8 signature_magic[signature_length]{'o', 'a', 'r', 0};
|
||||||
|
|
||||||
|
struct entry {
|
||||||
|
core::u8 signature_magic[signature_length];
|
||||||
|
|
||||||
|
core::path path;
|
||||||
|
|
||||||
|
core::u64 data_offset;
|
||||||
|
|
||||||
|
core::u64 data_length;
|
||||||
|
|
||||||
|
core::u8 padding[244];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct archive : public core::fs {
|
||||||
|
using core::fs::access_result;
|
||||||
|
|
||||||
|
archive() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
access_result read_file(core::path const & file_path,
|
||||||
|
core::callable<void(core::readable const &)> const & then) override {
|
||||||
|
|
||||||
|
return access_result::access_denied;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual access_result write_file(core::path const & file_path,
|
||||||
|
core::callable<void(core::writable const &)> const & then) override {
|
||||||
|
|
||||||
|
return access_result::access_denied;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
static_assert(sizeof(oar::entry) == 512);
|
Loading…
Reference in New Issue