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

76 lines
1.9 KiB
C#

using System.Collections.Generic;
namespace SabreTools.Data.Models.InstallShieldCabinet
{
/// <see href="https://github.com/twogood/unshield/blob/main/lib/cabfile.h"/>
/// <see href="https://github.com/twogood/unshield/blob/main/lib/internal.h"/>
public sealed class Cabinet
{
#region Headers
/// <summary>
/// Common header
/// </summary>
public CommonHeader CommonHeader { get; set; } = new();
/// <summary>
/// Volume header
/// </summary>
public VolumeHeader VolumeHeader { get; set; } = new();
/// <summary>
/// Descriptor
/// </summary>
public Descriptor Descriptor { get; set; } = new();
#endregion
#region File Descriptors
/// <summary>
/// Offsets to all file descriptors
/// </summary>
public uint[] FileDescriptorOffsets { get; set; } = [];
/// <summary>
/// Directory names
/// </summary>
public string[] DirectoryNames { get; set; } = [];
/// <summary>
/// Standard file descriptors
/// </summary>
public FileDescriptor[] FileDescriptors { get; set; } = [];
#endregion
#region File Groups
/// <summary>
/// File group offset to offset list mapping
/// </summary>
public Dictionary<long, OffsetList?> FileGroupOffsets { get; set; } = [];
/// <summary>
/// File groups
/// </summary>
public FileGroup[] FileGroups { get; set; } = [];
#endregion
#region Components
/// <summary>
/// Component offset to offset list mapping
/// </summary>
public Dictionary<long, OffsetList?> ComponentOffsets { get; set; } = [];
/// <summary>
/// Components
/// </summary>
public Component[] Components { get; set; } = [];
#endregion
}
}