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 ==.Source§impl ReadEndian for ApplyFreeSpace
impl ReadEndian for ApplyFreeSpace
Source§const ENDIAN: EndianKind
const ENDIAN: EndianKind
impl Eq for ApplyFreeSpace
impl StructuralPartialEq for ApplyFreeSpace
Auto Trait Implementations§
impl Freeze for ApplyFreeSpace
impl RefUnwindSafe for ApplyFreeSpace
impl Send for ApplyFreeSpace
impl Sync for ApplyFreeSpace
impl Unpin for ApplyFreeSpace
impl UnsafeUnpin for ApplyFreeSpace
impl UnwindSafe for ApplyFreeSpace
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more