pub struct ScanState {
pub scan_time: SystemTime,
pub root: PathBuf,
pub signatures: HashMap<PathBuf, FileSignature>,
pub hot_directories: Vec<HotDirectory>,
pub total_files: u64,
pub total_dirs: u64,
pub version: u32,
}Expand description
Persistent state for a scanned directory
Fields§
§scan_time: SystemTimeWhen this state was created
root: PathBufRoot path that was scanned
signatures: HashMap<PathBuf, FileSignature>File signatures for all scanned files
hot_directories: Vec<HotDirectory>Directories marked as “hot” (frequently changing)
total_files: u64Total files in this state
total_dirs: u64Total directories in this state
version: u32Version of the state format (for migrations)
Implementations§
Source§impl ScanState
impl ScanState
Sourcepub const CURRENT_VERSION: u32 = 1
pub const CURRENT_VERSION: u32 = 1
Current state format version
Sourcepub fn add_signature(&mut self, path: PathBuf, sig: FileSignature)
pub fn add_signature(&mut self, path: PathBuf, sig: FileSignature)
Add a file signature to the state
Sourcepub fn state_path(root: &Path) -> PathBuf
pub fn state_path(root: &Path) -> PathBuf
Get the state file path for a given directory
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ScanState
impl<'de> Deserialize<'de> for ScanState
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
Auto Trait Implementations§
impl Freeze for ScanState
impl RefUnwindSafe for ScanState
impl Send for ScanState
impl Sync for ScanState
impl Unpin for ScanState
impl UnsafeUnpin for ScanState
impl UnwindSafe for ScanState
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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