pub struct Fingerprint {
pub size: u64,
pub mtime_ns: i64,
pub ctime_ns: i64,
pub inode: u64,
pub dev: u64,
}Expand description
The fingerprint used to decide whether an entry really changed.
Size and mtime alone are not enough. mtime is user-settable, and some applications roll it back after modifying a file; ctime is kernel-controlled and cannot be set directly. Borg keys on ctime/size/inode and restic requires both mtime and ctime to match, and this engine follows them: an index that keys purely on mtime is trusting a value userspace can forge.
Fields§
§size: u64Apparent file size.
mtime_ns: i64Modification time in nanoseconds since the Unix epoch.
ctime_ns: i64Inode-change time in nanoseconds since the Unix epoch.
inode: u64Platform inode or file identity component.
dev: u64Platform device or volume identity component.
Trait Implementations§
Source§impl Clone for Fingerprint
impl Clone for Fingerprint
impl Copy for Fingerprint
Source§impl Debug for Fingerprint
impl Debug for Fingerprint
Source§impl Default for Fingerprint
impl Default for Fingerprint
impl Eq for Fingerprint
Source§impl Hash for Fingerprint
impl Hash for Fingerprint
Source§impl PartialEq for Fingerprint
impl PartialEq for Fingerprint
impl StructuralPartialEq for Fingerprint
Auto Trait Implementations§
impl Freeze for Fingerprint
impl RefUnwindSafe for Fingerprint
impl Send for Fingerprint
impl Sync for Fingerprint
impl Unpin for Fingerprint
impl UnsafeUnpin for Fingerprint
impl UnwindSafe for Fingerprint
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
Mutably borrows from an owned value. Read more