#[non_exhaustive]pub enum Chunk {
FileHeader(FileHeader),
ApplyOption(ApplyOption),
ApplyFreeSpace(ApplyFreeSpace),
AddDirectory(AddDirectory),
DeleteDirectory(DeleteDirectory),
Sqpk(SqpkCommand),
EndOfFile,
}Expand description
One top-level chunk parsed from a ZiPatch stream.
Each variant corresponds to a 4-byte ASCII wire tag. The tag dispatch table
mirrors the C# reference in
lib/FFXIVQuickLauncher/.../Patching/ZiPatch/Chunk/ZiPatchChunk.cs.
§Observed frequency
SE’s XIVARR+ patch files almost exclusively contain FHDR, APLY, and
SQPK chunks. ADIR/DELD can theoretically appear and are implemented,
but are rarely emitted in practice. APFS has never been observed in modern
patches (the reference implementation treats it as a no-op). EOF_ is
consumed by ZiPatchReader and is never yielded to the caller.
§Exhaustiveness
The enum is #[non_exhaustive]. Match arms should include a wildcard to
remain forward-compatible as new chunk types are added.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
FileHeader(FileHeader)
FHDR — the first chunk in every patch file; carries version and
per-version patch metadata. See FileHeader for the versioned body.
ApplyOption(ApplyOption)
APLY — sets or clears a boolean apply-time flag on the
crate::ApplyContext (e.g. “ignore missing files”). See ApplyOption.
ApplyFreeSpace(ApplyFreeSpace)
APFS — free-space book-keeping emitted by old patcher tooling; treated
as a no-op at apply time. See ApplyFreeSpace.
AddDirectory(AddDirectory)
ADIR — instructs the patcher to create a directory under the game
install root. See AddDirectory.
DeleteDirectory(DeleteDirectory)
DELD — instructs the patcher to remove a directory under the game
install root. See DeleteDirectory.
Sqpk(SqpkCommand)
SQPK — the workhorse chunk; wraps one of eight sub-commands that
add, delete, expand, or replace SqPack data. See SqpkCommand.
EndOfFile
EOF_ — marks the clean end of the patch stream. ZiPatchReader
consumes this chunk internally; it is never yielded to the caller.
Trait Implementations§
Source§impl Apply for Chunk
Dispatch table for top-level chunk variants.
impl Apply for Chunk
Dispatch table for top-level chunk variants.
FileHeader, ApplyFreeSpace, and EndOfFile are metadata or structural
chunks with no filesystem effect; they return Ok(()) immediately.
All other variants delegate to their specific Apply implementation.