42 lines
		
	
	
	
		
			516 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			516 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
namespace lt::assets {
 | 
						|
 | 
						|
using Type_T = std::array<const char, 16>;
 | 
						|
 | 
						|
using Tag_T = uint8_t;
 | 
						|
 | 
						|
using Version = uint8_t;
 | 
						|
 | 
						|
using Blob = std::vector<std::byte>;
 | 
						|
 | 
						|
constexpr auto current_version = Version { 1u };
 | 
						|
 | 
						|
enum class CompressionType : uint8_t
 | 
						|
{
 | 
						|
	none,
 | 
						|
	lz4,
 | 
						|
	lz4_hc,
 | 
						|
};
 | 
						|
 | 
						|
struct AssetMetadata
 | 
						|
{
 | 
						|
	Version version;
 | 
						|
 | 
						|
	Type_T type;
 | 
						|
};
 | 
						|
 | 
						|
struct BlobMetadata
 | 
						|
{
 | 
						|
	Tag_T tag;
 | 
						|
 | 
						|
	size_t offset;
 | 
						|
 | 
						|
	CompressionType compression_type;
 | 
						|
 | 
						|
	size_t compressed_size;
 | 
						|
 | 
						|
	size_t uncompressed_size;
 | 
						|
};
 | 
						|
 | 
						|
} // namespace lt::assets
 |