pub struct ApplyFreeSpace {
pub unknown_a: i64,
pub unknown_b: i64,
}Expand description
APFS chunk: free-space book-keeping; ignored at apply time.
This chunk was emitted by older versions of SE’s patcher to signal how much
free disk space the patch required. Modern patcher tooling (and all observed
XIVARR+ patch files) never emit it. The XIVLauncher reference implementation
reads the two fields and does nothing with them:
“This is a NOP on recent patcher versions, so I don’t think we’ll be seeing it.”
—
lib/FFXIVQuickLauncher/.../Chunk/ApplyFreeSpaceChunk.cs
The fields are preserved in the parsed struct for completeness, but neither this crate nor the reference implementation acts on them.
§Wire format
[unknown_a: i64 BE] [unknown_b: i64 BE]Both fields are stored as signed 64-bit big-endian integers. No samples of
this chunk in the wild have been found, so the exact semantics of the two
values remain undocumented. The reference calls them UnknownFieldA and
UnknownFieldB.
§Errors
Parsing fails with crate::ZiPatchError::BinrwError if the body is
shorter than 16 bytes (the two i64 fields).
Fields§
§unknown_a: i64First 8-byte signed integer field; purpose unknown.
Read as a u64 big-endian on the wire and reinterpreted as i64 via
a bitcast (as i64), matching the C# ReadInt64BE call in the
reference.
unknown_b: i64Second 8-byte signed integer field; purpose unknown.
Same encoding as ApplyFreeSpace::unknown_a.
Trait Implementations§
Source§impl BinRead for ApplyFreeSpace
impl BinRead for ApplyFreeSpace
Source§fn read_options<R: Read + Seek>(
__binrw_generated_var_reader: &mut R,
__binrw_generated_var_endian: Endian,
__binrw_generated_var_arguments: Self::Args<'_>,
) -> BinResult<Self>
fn read_options<R: Read + Seek>( __binrw_generated_var_reader: &mut R, __binrw_generated_var_endian: Endian, __binrw_generated_var_arguments: Self::Args<'_>, ) -> BinResult<Self>
Source§fn read<R>(reader: &mut R) -> Result<Self, Error>
fn read<R>(reader: &mut R) -> Result<Self, Error>
Self from the reader using default arguments. Read moreSource§fn read_be<R>(reader: &mut R) -> Result<Self, Error>
fn read_be<R>(reader: &mut R) -> Result<Self, Error>
Self from the reader using default arguments and assuming
big-endian byte order. Read moreSource§fn read_le<R>(reader: &mut R) -> Result<Self, Error>
fn read_le<R>(reader: &mut R) -> Result<Self, Error>
Self from the reader using default arguments and assuming
little-endian byte order. Read moreSource§fn read_ne<R>(reader: &mut R) -> Result<Self, Error>
fn read_ne<R>(reader: &mut R) -> Result<Self, Error>
T from the reader assuming native-endian byte order. Read moreSource§fn read_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
fn read_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
Self from the reader using the given arguments. Read moreSource§fn read_be_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
fn read_be_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
Self from the reader, assuming big-endian byte order, using the
given arguments. Read moreSource§impl Clone for ApplyFreeSpace
impl Clone for ApplyFreeSpace
Source§fn clone(&self) -> ApplyFreeSpace
fn clone(&self) -> ApplyFreeSpace
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ApplyFreeSpace
impl Debug for ApplyFreeSpace
Source§impl PartialEq for ApplyFreeSpace
impl PartialEq for ApplyFreeSpace
Source§fn eq(&self, other: &ApplyFreeSpace) -> bool
fn eq(&self, other: &ApplyFreeSpace) -> bool
self and other values to be equal, and is used by ==.