diff --git a/source/oar.cpp b/source/oar.cpp new file mode 100644 index 0000000..dacae13 --- /dev/null +++ b/source/oar.cpp @@ -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 const & then) override { + + return access_result::access_denied; + } + + virtual access_result write_file(core::path const & file_path, + core::callable const & then) override { + + return access_result::access_denied; + } + }; +} + +static_assert(sizeof(oar::entry) == 512);