#[non_exhaustive]pub enum SourceKind {
Show 15 variants
Usbstor,
MountedDevices,
SetupApi,
PartitionDiag,
KernelPnp,
Lnk,
JumpList,
LinuxKernelLog,
VolumeInfoCache,
MountPoints2,
EmdMgmt,
DeviceImage,
AppleIPod,
MacosUsb,
MacosUnifiedLog,
}Expand description
Which artifact a claim was extracted from.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Usbstor
SYSTEM\...\Enum\{USBSTOR,SCSI,USB} — device instance keys and their
install / first-install / last-arrival / last-removal property FILETIMEs.
MountedDevices
SYSTEM\MountedDevices — drive-letter ↔ device mapping.
SetupApi
setupapi.dev.log — first device-install time.
PartitionDiag
Microsoft-Windows-Partition/Diagnostic event log — volume serials.
KernelPnp
Microsoft-Windows-Kernel-PnP/Configuration event log — USB device-configuration events (a connection witness keyed by the device instance serial).
Lnk
A Windows Shell Link (.lnk) — the volume-serial file join.
JumpList
A Windows Jump List (*.automaticDestinations-ms / *.customDestinations-ms).
LinuxKernelLog
A Linux kernel log (syslog / dmesg) — USB enumeration events.
VolumeInfoCache
SOFTWARE\...\Windows Search\VolumeInfoCache — cached volume labels per drive.
MountPoints2
NTUSER\...\Explorer\MountPoints2 — per-user volume mounts (by volume GUID).
EmdMgmt
SOFTWARE\...\EMDMgmt — the ReadyBoost cache: volume label + serial history.
DeviceImage
A raw disk image of a physical device — its MBR/VBR boot sectors.
AppleIPod
macOS com.apple.iPod.plist — Apple-device (iPhone/iPad/iPod) connection history.
MacosUsb
macOS system_profiler / IORegistry — the live USB device tree.
MacosUnifiedLog
macOS unified log — USB enumeration (connect) events with times.
Implementations§
Source§impl SourceKind
impl SourceKind
Sourcepub const fn container(self) -> ArtifactContainer
pub const fn container(self) -> ArtifactContainer
The storage container this source lives in — its tamper surface. Total.
Sourcepub fn clock_is_local(self) -> bool
pub fn clock_is_local(self) -> bool
Whether this source records timestamps in host-local time (rather than UTC).
setupapi.dev.log and Linux kernel logs write local wall-clock with no zone, so
their readers convert them naively (local-as-UTC). Registry FILETIME, event-log
FILETIME, and LNK/jump-list epochs are true UTC. normalize_local_clocks
uses this to correct local timestamps to UTC given the host’s offset.
Trait Implementations§
Source§impl Clone for SourceKind
impl Clone for SourceKind
Source§fn clone(&self) -> SourceKind
fn clone(&self) -> SourceKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SourceKind
Source§impl Debug for SourceKind
impl Debug for SourceKind
impl Eq for SourceKind
Source§impl Hash for SourceKind
impl Hash for SourceKind
Source§impl Ord for SourceKind
impl Ord for SourceKind
Source§fn cmp(&self, other: &SourceKind) -> Ordering
fn cmp(&self, other: &SourceKind) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for SourceKind
impl PartialEq for SourceKind
Source§impl PartialOrd for SourceKind
impl PartialOrd for SourceKind
Source§impl Serialize for SourceKind
impl Serialize for SourceKind
impl StructuralPartialEq for SourceKind
Auto Trait Implementations§
impl Freeze for SourceKind
impl RefUnwindSafe for SourceKind
impl Send for SourceKind
impl Sync for SourceKind
impl Unpin for SourceKind
impl UnsafeUnpin for SourceKind
impl UnwindSafe for SourceKind
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> Comparable<K> for Q
impl<Q, K> Comparable<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.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more