[−][src]Struct arq::tree::Node
Node
Each Node contains the following bytes:
[Bool:isTree]
[Bool:treeContainsMissingItems] /* present for Tree version >= 18 */
[Bool:data_are_compressed] /* present for Tree versions 12-18 */
[CompressionType:data_compression_type] /* present for Tree version >= 19; indicates Gzip compression or none */
[Bool:xattrs_are_compressed] /* present for Tree versions 12-18 */
[CompressionType:xattrs_compression_type] /* present for Tree version >= 19; indicates Gzip compression or none */
[Bool:acl_is_compressed] /* present for Tree versions 12-18 */
[CompressionType:acl_compression_type] /* present for Tree version >= 19; indicates Gzip compression or none */
[Int32:data_blob_keys_count]
(
[BlobKey:data_blob_key]
) /* repeat <data_blob_keys_count> times */
[UIn64:data_size]
[String:"<thumbnail sha1>"] /* only present for Tree version 18 or earlier (never used) */
[Bool:is_thumbnail_encryption_key_stretched] /* only present for Tree version 14 to 18 */
[String:"<preview sha1>"] /* only present for Tree version 18 or earlier (never used) */
[Bool:is_preview_encryption_key_stretched] /* only present for Tree version 14 to 18 */
[BlobKey:xattrs_blob_key] /* null if file has no xattrs */
[UInt64:xattrs_size]
[BlobKey:acl_blob_key] /* null if file has no acl */
[Int32:uid]
[Int32:gid]
[Int32:mode]
[Int64:mtime_sec]
[Int64:mtime_nsec]
[Int64:flags]
[Int32:finderFlags]
[Int32:extendedFinderFlags]
[String:"<finder file type>"]
[String:"<finder file creator>"]
[Bool:is_file_extension_hidden]
[Int32:st_dev]
[Int32:st_ino]
[UInt32:st_nlink]
[Int32:st_rdev]
[Int64:ctime_sec]
[Int64:ctime_nsec]
[Int64:create_time_sec]
[Int64:create_time_nsec]
[Int64:st_blocks]
[UInt32:st_blksize]
Notes:
-
A Node can have multiple data SHA1s if the file is very large. Arq breaks up large files into multiple blobs using a rolling checksum algorithm. This way Arq only backs up the parts of a file that have changed.
-
"<xattrs_blob_key>" is the key of a blob containing the sorted extended attributes of the file (see "XAttrSet Format" below). Note this means extended-attribute sets are "de-duplicated".
-
"<acl_blob_key>" is the SHA1 of the blob containing the result of acl_to_text() on the file's ACL. Note this means the ACLs are "de-duplicated".
-
"create_time_sec" and "create_time_nsec" contain the value of the ATTR_CMN_CRTIME attribute of the file
XAttrSet Format
Each XAttrSet blob contains the following bytes:
58 41 74 74 72 53 65 74 56 30 30 32 "XAttrSetV002"
[UInt64:xattr_count]
(
[String:"<xattr name>"] /* can't be null */
[Data:xattr_data]
)
Fields
is_tree: bool
tree_contains_missing_items: bool
data_compression_type: CompressionType
xattrs_compression_type: CompressionType
acl_compression_type: CompressionType
data_blob_keys: Vec<BlobKey>
data_size: u64
xattrs_blob_key: Option<BlobKey>
xattrs_size: u64
acl_blob_key: Option<BlobKey>
uid: i32
gid: i32
mode: i32
mtime_sec: i64
mtime_nsec: i64
flags: i64
finder_flags: i32
extended_finder_flags: i32
finder_file_type: String
finder_file_creator: String
st_dev: i32
st_ino: i32
st_nlink: u32
st_rdev: i32
ctime_sec: i64
ctime_nsec: i64
create_time_sec: i64
create_time_nsec: i64
st_blocks: i64
st_blksize: u32
Methods
impl Node
[src]
Auto Trait Implementations
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Same<T> for T
type Output = T
Should always be Self