light/modules/assets/metadata.cppm

44 lines
583 B
Text
Raw Normal View History

export module assets.metadata;
import std;
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>;
using Tag_T = std::uint8_t;
2025-10-01 17:29:45 +03:30
using Version = std::uint8_t;
2025-10-01 17:29:45 +03:30
using Blob = std::vector<std::byte>;
constexpr auto current_version = Version { 1u };
enum class CompressionType : std::uint8_t
2025-10-01 17:29:45 +03:30
{
none,
lz4,
lz4_hc,
};
struct AssetMetadata
{
Version version;
Type_T type;
};
struct BlobMetadata
{
Tag_T tag;
std::size_t offset;
2025-10-01 17:29:45 +03:30
CompressionType compression_type;
std::size_t compressed_size;
2025-10-01 17:29:45 +03:30
std::size_t uncompressed_size;
2025-10-01 17:29:45 +03:30
};
} // namespace lt::assets