pub struct FileFingerprint {
pub path: String,
pub size: i64,
pub mtime_ns: i64,
pub ctime_ns: i64,
pub inode: i64,
}Fields§
§path: String§size: i64§mtime_ns: i64§ctime_ns: i64§inode: i64Filesystem inode (0 on non-Unix / unavailable). Folded into the memo key so an in-place swap that preserves path+size+mtime+ctime but changes the inode (and content) can’t return a stale memoized hash (kunobi-ninja/kache#324).
Implementations§
Source§impl FileFingerprint
impl FileFingerprint
Sourcepub fn from_path(path: &Path) -> Result<Self>
pub fn from_path(path: &Path) -> Result<Self>
Identity of a file as the memo sees it. Also the cheapest available
proof that an external tool did NOT rewrite a file across some
operation: any in-place write bumps mtime_ns/ctime_ns (and a
replace-by-rename changes inode), so an unchanged fingerprint means
unchanged bytes. restore_from_cache reads it that way (#540).
Trait Implementations§
Source§impl Clone for FileFingerprint
impl Clone for FileFingerprint
Source§impl Debug for FileFingerprint
impl Debug for FileFingerprint
Source§impl<'de> Deserialize<'de> for FileFingerprint
impl<'de> Deserialize<'de> for FileFingerprint
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for FileFingerprint
Source§impl Hash for FileFingerprint
impl Hash for FileFingerprint
Source§impl PartialEq for FileFingerprint
impl PartialEq for FileFingerprint
Source§impl Serialize for FileFingerprint
impl Serialize for FileFingerprint
impl StructuralPartialEq for FileFingerprint
Auto Trait Implementations§
impl Freeze for FileFingerprint
impl RefUnwindSafe for FileFingerprint
impl Send for FileFingerprint
impl Sync for FileFingerprint
impl Unpin for FileFingerprint
impl UnsafeUnpin for FileFingerprint
impl UnwindSafe for FileFingerprint
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