pub struct SourceFileSnapshot {Show 20 fields
pub name: String,
pub name_utf16: Vec<u16>,
pub cnid: u32,
pub parent_cnid: u32,
pub flags: u16,
pub finder_info: [u8; 16],
pub extended_finder_info: [u8; 16],
pub bsd_info: [u8; 16],
pub create_date: u32,
pub content_mod_date: u32,
pub attribute_mod_date: u32,
pub access_date: u32,
pub backup_date: u32,
pub text_encoding: u32,
pub data_fork_raw: [u8; 80],
pub rsrc_fork_raw: [u8; 80],
pub data_fork_size: u64,
pub rsrc_fork_size: u64,
pub is_inode: bool,
pub inode_num: Option<u32>,
/* private fields */
}Expand description
Per-file metadata captured from a kHFSPlusFileRecord.
Fields§
§name: String§name_utf16: Vec<u16>§cnid: u32Source CNID (fileID).
parent_cnid: u32§flags: u16§finder_info: [u8; 16]userInfo — 16 bytes of FileInfo (FInfo). fdType at byte 0 and
fdCreator at byte 4 are the type/creator codes; fdFlags at
byte 8 is the Finder flags word (0x8000 = kIsAlias).
extended_finder_info: [u8; 16]finderInfo — 16 bytes of ExtendedFileInfo (FXInfo).
bsd_info: [u8; 16]permissions — 16 bytes of HFSPlusBSDInfo (zeros on most volumes).
create_date: u32§content_mod_date: u32§attribute_mod_date: u32§access_date: u32§backup_date: u32§text_encoding: u32§data_fork_raw: [u8; 80]Raw 80-byte HFSPlusForkData for the data fork (8 inline extents +
logical/total/clump). Resolved into a streaming reader via
HfsPlusFilesystem::fork_stream_reader at clone time so the bytes
never have to materialise in RAM.
rsrc_fork_raw: [u8; 80]Raw 80-byte HFSPlusForkData for the resource fork.
data_fork_size: u64Logical data-fork size in bytes (mirror of bytes 0..8 of
data_fork_raw, broken out for convenience).
rsrc_fork_size: u64Logical resource-fork size in bytes.
is_inode: booltrue for files that live under the source’s HFS+ Private Data
directory whose name parses as iNode<N> — i.e. file-hardlink
inodes. Replay must emit them through create_hardlink_inode
rather than as ordinary files in the user-visible tree, and the
hardlink stubs that reference them carry the source CNID stored
here. Always false until SourceCatalogSnapshot::capture
resolves the private dir.
inode_num: Option<u32>Source iNodeNum (decoded from the iNode<N> filename) for inode
rows; None for ordinary files. Carried so the replay path can
emit each hardlink stub with the same iNodeNum the inode itself
will be created under on the target.