light/modules/assets/metadata.cppm

45 lines
542 B
Text
Raw Permalink Normal View History

export module assets.metadata;
2026-01-20 09:58:35 +03:30
import preliminary;
2025-10-01 17:29:45 +03:30
export namespace lt::assets {
2025-10-01 17:29:45 +03:30
using Type_T = std::array<const char, 16>;
2026-01-20 09:58:35 +03:30
using Tag_T = u8;
2025-10-01 17:29:45 +03:30
2026-01-20 09:58:35 +03:30
using Version = u8;
2025-10-01 17:29:45 +03:30
2026-01-20 09:58:35 +03:30
using Blob = std::vector<byte>;
2025-10-01 17:29:45 +03:30
constexpr auto current_version = Version { 1u };
2026-01-20 09:58:35 +03:30
enum class CompressionType : u8
2025-10-01 17:29:45 +03:30
{
none,
lz4,
lz4_hc,
};
struct AssetMetadata
{
Version version;
Type_T type;
};
struct BlobMetadata
{
Tag_T tag;
2026-01-20 09:58:35 +03:30
size_t offset;
2025-10-01 17:29:45 +03:30
CompressionType compression_type;
2026-01-20 09:58:35 +03:30
size_t compressed_size;
2025-10-01 17:29:45 +03:30
2026-01-20 09:58:35 +03:30
size_t uncompressed_size;
2025-10-01 17:29:45 +03:30
};
} // namespace lt::assets