pub struct ExeFingerprint {
pub path: PathBuf,
pub mtime_nanos: i64,
pub size: u64,
}Expand description
A running-or-on-disk executable’s identity, for drift comparison. The path is
canonicalized (so symlink vs target, ~/.cargo/bin vs target/debug, are
compared apples-to-apples); mtime_nanos/size are compared only for
equality against a fingerprint of the SAME logical binary, so coarse clocks
only ever cost an advisory false verdict, never a crash.
Fields§
§path: PathBufCanonicalized absolute path of the executable.
mtime_nanos: i64File mtime as nanoseconds since the Unix epoch (i64 holds ~year 2262).
size: u64File size in bytes.
Implementations§
Source§impl ExeFingerprint
impl ExeFingerprint
Sourcepub fn of(path: &Path) -> Option<ExeFingerprint>
pub fn of(path: &Path) -> Option<ExeFingerprint>
Stat path (canonicalizing it) into a fingerprint. Returns None on any
error – a missing file, a stat failure, or an mtime that does not fit an
i64 of nanoseconds. The caller treats None as Unknown (silent,
never a false alarm); a drift check must never crash a status/list.
Sourcepub fn current() -> Option<ExeFingerprint>
pub fn current() -> Option<ExeFingerprint>
Fingerprint the current process’s own executable. The daemon calls this
once at startup to record what it is running; None if current_exe()
or the stat fails (the daemon then reports no fingerprint, and every
client check fails safe to Unknown).
Trait Implementations§
Source§impl Clone for ExeFingerprint
impl Clone for ExeFingerprint
Source§fn clone(&self) -> ExeFingerprint
fn clone(&self) -> ExeFingerprint
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 ExeFingerprint
impl Debug for ExeFingerprint
impl Eq for ExeFingerprint
Source§impl PartialEq for ExeFingerprint
impl PartialEq for ExeFingerprint
impl StructuralPartialEq for ExeFingerprint
Auto Trait Implementations§
impl Freeze for ExeFingerprint
impl RefUnwindSafe for ExeFingerprint
impl Send for ExeFingerprint
impl Sync for ExeFingerprint
impl Unpin for ExeFingerprint
impl UnsafeUnpin for ExeFingerprint
impl UnwindSafe for ExeFingerprint
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.