Files
Matt Nadareski 7689c6dd07 Libraries
This change looks dramatic, but it's just separating out the already-split namespaces into separate top-level folders. In theory, every single one could be built into their own Nuget package. `SabreTools.Serialization` still builds the normal Nuget package that is used by all other projects and includes all namespaces.
2026-03-21 16:26:56 -04:00

44 lines
1.1 KiB
C#

using System.Runtime.InteropServices;
namespace SabreTools.Data.Models.Quantum
{
/// <summary>
/// Quantum archive file header
/// </summary>
/// <see href="https://handwiki.org/wiki/Software:Quantum_compression"/>
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public class Header
{
/// <summary>
/// Quantum signature: 0x44 0x53
/// </summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 2)]
public string Signature = string.Empty;
/// <summary>
/// Quantum major version number
/// </summary>
public byte MajorVersion;
/// <summary>
/// Quantum minor version number
/// </summary>
public byte MinorVersion;
/// <summary>
/// Number of files within this archive
/// </summary>
public ushort FileCount;
/// <summary>
/// Table size required for decompression
/// </summary>
public byte TableSize;
/// <summary>
/// Compression flags
/// </summary>
public byte CompressionFlags;
}
}