namespace SabreTools.Data.Models.XZ
{
public class Index
{
///
/// The value of Index Indicator is always 0x00
///
public byte IndexIndicator { get; set; }
///
/// This field indicates how many Records there are in the List
/// of Records field, and thus how many Blocks there are in the
/// Stream
///
/// Stored as a variable-length integer
public ulong NumberOfRecords { get; set; }
///
/// One record per block
///
public Record[] Records { get; set; } = [];
///
/// This field MUST contain 0-3 null bytes to pad the Index to
/// a multiple of four bytes.
///
public byte[] Padding { get; set; } = [];
///
/// The CRC32 is calculated over everything in the Index field
/// except the CRC32 field itself. The CRC32 is stored as an
/// unsigned 32-bit little endian integer.
///
public uint Crc32 { get; set; }
}
}