pub struct Aware<Size> { /* private fields */ }
Expand description
Be aware of hardlinks. Treat them as links that share space. Detect files with more than 1 links and record them. Deduplicate them (remove duplicated size) from total size to accurately reflect the real size of their containers.
Implementations§
Source§impl<Size> Aware<Size>
impl<Size> Aware<Size>
Sourcepub fn from_record(record: HardlinkList<Size>) -> Self
pub fn from_record(record: HardlinkList<Size>) -> Self
Create a detector/recorder of hardlinks.
Trait Implementations§
Source§impl<Size> AsMut<HardlinkList<Size>> for Aware<Size>
impl<Size> AsMut<HardlinkList<Size>> for Aware<Size>
Source§fn as_mut(&mut self) -> &mut HardlinkList<Size>
fn as_mut(&mut self) -> &mut HardlinkList<Size>
Converts this type into a mutable reference of the (usually inferred) input type.
Source§impl<Size> AsRef<HardlinkList<Size>> for Aware<Size>
impl<Size> AsRef<HardlinkList<Size>> for Aware<Size>
Source§fn as_ref(&self) -> &HardlinkList<Size>
fn as_ref(&self) -> &HardlinkList<Size>
Converts this type into a shared reference of the (usually inferred) input type.
Source§type Report = HardlinkList<Size>
type Report = HardlinkList<Size>
Report returned when
DeduplicateSharedSize::deduplicate
succeeds.Source§type Error = Infallible
type Error = Infallible
Error returned when
DeduplicateSharedSize::deduplicate
fails.Source§fn deduplicate(
self,
data_tree: &mut DataTree<OsStringDisplay, Size>,
) -> Result<Self::Report, Self::Error>
fn deduplicate( self, data_tree: &mut DataTree<OsStringDisplay, Size>, ) -> Result<Self::Report, Self::Error>
Correct the sizes in a
DataTree
by reducing the size of recorded shared links.Source§impl<Size> From<Aware<Size>> for HardlinkList<Size>
impl<Size> From<Aware<Size>> for HardlinkList<Size>
Source§impl<Size> From<HardlinkList<Size>> for Aware<Size>
impl<Size> From<HardlinkList<Size>> for Aware<Size>
Source§fn from(value: HardlinkList<Size>) -> Self
fn from(value: HardlinkList<Size>) -> Self
Converts to this type from the input type.
Source§impl<Size> HardlinkSubroutines<Size> for HardlinkAware<Size>
impl<Size> HardlinkSubroutines<Size> for HardlinkAware<Size>
Source§fn convert_error(error: Self::Error) -> RuntimeError
fn convert_error(error: Self::Error) -> RuntimeError
Convert the error to runtime error.
Source§fn print_report(
report: Self::Report,
bytes_format: Size::DisplayFormat,
) -> Result<(), RuntimeError>
fn print_report( report: Self::Report, bytes_format: Size::DisplayFormat, ) -> Result<(), RuntimeError>
Handle the report.
Source§fn json_report(
report: Self::Report,
) -> Result<Option<JsonShared<Size>>, RuntimeError>
fn json_report( report: Self::Report, ) -> Result<Option<JsonShared<Size>>, RuntimeError>
Create a JSON serializable object from the report.
Source§impl<Size, Report> RecordHardlinks<Size, Report> for Aware<Size>
impl<Size, Report> RecordHardlinks<Size, Report> for Aware<Size>
Source§type Error = ReportHardlinksError<Size>
type Error = ReportHardlinksError<Size>
Error when
RecordHardlinks::record_hardlinks
fails.Source§fn record_hardlinks(
&self,
argument: RecordHardlinksArgument<'_, Size, Report>,
) -> Result<(), Self::Error>
fn record_hardlinks( &self, argument: RecordHardlinksArgument<'_, Size, Report>, ) -> Result<(), Self::Error>
Perform hardlinks detection and recording.
Auto Trait Implementations§
impl<Size> Freeze for Aware<Size>
impl<Size> !RefUnwindSafe for Aware<Size>
impl<Size> Send for Aware<Size>where
Size: Send,
impl<Size> Sync for Aware<Size>
impl<Size> Unpin for Aware<Size>
impl<Size> UnwindSafe for Aware<Size>where
Size: UnwindSafe,
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> 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 moreSource§impl<X> Pipe for X
impl<X> Pipe for X
Source§fn pipe_ref<'a, Return, Function>(&'a self, f: Function) -> Returnwhere
Function: FnOnce(&'a Self) -> Return,
fn pipe_ref<'a, Return, Function>(&'a self, f: Function) -> Returnwhere
Function: FnOnce(&'a Self) -> Return,
Source§fn pipe_mut<'a, Return, Function>(&'a mut self, f: Function) -> Returnwhere
Function: FnOnce(&'a mut Self) -> Return,
fn pipe_mut<'a, Return, Function>(&'a mut self, f: Function) -> Returnwhere
Function: FnOnce(&'a mut Self) -> Return,
Source§fn pipe_as_ref<'a, Param, Return, Function>(&'a self, f: Function) -> Return
fn pipe_as_ref<'a, Param, Return, Function>(&'a self, f: Function) -> Return
Apply
f
to &self
where f
takes a single parameter of type Param
and Self
implements trait AsRef<Param>
. Read moreSource§fn pipe_as_mut<'a, Param, Return, Function>(&'a mut self, f: Function) -> Return
fn pipe_as_mut<'a, Param, Return, Function>(&'a mut self, f: Function) -> Return
Apply
f
to &mut self
where f
takes a single parameter of type Param
and Self
implements trait AsMut<Param>
. Read moreSource§fn pipe_deref<'a, Param, Return, Function>(&'a self, f: Function) -> Return
fn pipe_deref<'a, Param, Return, Function>(&'a self, f: Function) -> Return
Apply
f
to &self
where f
takes a single parameter of type Param
and Self
implements trait Deref<Target = Param>
. Read moreSource§fn pipe_deref_mut<'a, Param, Return, Function>(
&'a mut self,
f: Function,
) -> Returnwhere
Self: DerefMut<Target = Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a mut Param) -> Return,
fn pipe_deref_mut<'a, Param, Return, Function>(
&'a mut self,
f: Function,
) -> Returnwhere
Self: DerefMut<Target = Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a mut Param) -> Return,
Apply
f
to &mut self
where f
takes a single parameter of type Param
and Self
implements trait [DerefMut<Target = Param>
]. Read moreSource§fn pipe_borrow<'a, Param, Return, Function>(&'a self, f: Function) -> Return
fn pipe_borrow<'a, Param, Return, Function>(&'a self, f: Function) -> Return
Apply
f
to &self
where f
takes a single parameter of type Param
and Self
implements trait Borrow<Param>
. Read moreSource§fn pipe_borrow_mut<'a, Param, Return, Function>(
&'a mut self,
f: Function,
) -> Return
fn pipe_borrow_mut<'a, Param, Return, Function>( &'a mut self, f: Function, ) -> Return
Apply
f
to &mut self
where f
takes a single parameter of type Param
and Self
implements trait BorrowMut<Param>
. Read more