Struct parallel_disk_usage::data_tree::reflection::Reflection
source · pub struct Reflection<Name, Data: Size> {
pub name: Name,
pub data: Data,
pub children: Vec<Self>,
}
Expand description
Intermediate format used for construction and inspection of
DataTree
’s internal content.
Unlike Tree
where the fields are all private, the fields of TreeReflection
are all public to allow construction in tests.
Conversion between DataTree
and Reflection
:
- Any
DataTree
can be safely transmuted to a validReflection
. - Any
Reflection
can be safely transmuted to a potentially invalidDataTree
. - To safely convert a
DataTree
into aReflection
without theunsafe
keyword, useDataTree::into_reflection
(it would be slower than usingtransmute
). - To safely convert a
Reflection
into a validDataTree
, usepar_try_into_tree
.
Serialization and deserialization: (feature: json
) Reflection
implements
Serialize
and Deserialize
traits, this allows functions in serde_json
to convert
a Reflection
into/from JSON.
Fields§
§name: Name
Name of the tree.
data: Data
Disk usage of a file or total disk usage of a folder.
children: Vec<Self>
Data of children filesystem subtrees.
Implementations§
source§impl<Name, Data> Reflection<Name, Data>where
Name: Send,
Data: Size + Send,
impl<Name, Data> Reflection<Name, Data>where Name: Send, Data: Size + Send,
sourcepub fn par_try_into_tree(
self
) -> Result<DataTree<Name, Data>, ConversionError<Name, Data>>
pub fn par_try_into_tree( self ) -> Result<DataTree<Name, Data>, ConversionError<Name, Data>>
Attempting to convert a Reflection
into a valid DataTree
.
sourcepub fn par_try_map<TargetName, TargetData, Error, Transform>(
self,
transform: Transform
) -> Result<Reflection<TargetName, TargetData>, Error>where
TargetName: Send,
TargetData: Size + Send + Sync,
Error: Send,
Transform: Fn(Name, Data) -> Result<(TargetName, TargetData), Error> + Copy + Sync,
pub fn par_try_map<TargetName, TargetData, Error, Transform>( self, transform: Transform ) -> Result<Reflection<TargetName, TargetData>, Error>where TargetName: Send, TargetData: Size + Send + Sync, Error: Send, Transform: Fn(Name, Data) -> Result<(TargetName, TargetData), Error> + Copy + Sync,
Attempt to transform names and data.
sourcepub fn par_convert_names_to_utf8(self) -> Result<Reflection<String, Data>, Name>where
Name: AsRef<OsStr>,
Data: Sync,
pub fn par_convert_names_to_utf8(self) -> Result<Reflection<String, Data>, Name>where Name: AsRef<OsStr>, Data: Sync,
Attempt to convert all names from OsString
to String
.
Trait Implementations§
source§impl<Name: Clone, Data: Clone + Size> Clone for Reflection<Name, Data>
impl<Name: Clone, Data: Clone + Size> Clone for Reflection<Name, Data>
source§fn clone(&self) -> Reflection<Name, Data>
fn clone(&self) -> Reflection<Name, Data>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<'de, Name, Data> Deserialize<'de> for Reflection<Name, Data>where
Name: Deserialize<'de>,
Data: Deserialize<'de> + Size,
impl<'de, Name, Data> Deserialize<'de> for Reflection<Name, Data>where Name: Deserialize<'de>, Data: Deserialize<'de> + Size,
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
source§impl From<Reflection<String, Blocks>> for UnitAndTree
impl From<Reflection<String, Blocks>> for UnitAndTree
source§fn from(original: Reflection<String, Blocks>) -> UnitAndTree
fn from(original: Reflection<String, Blocks>) -> UnitAndTree
Converts to this type from the input type.
source§impl From<Reflection<String, Bytes>> for UnitAndTree
impl From<Reflection<String, Bytes>> for UnitAndTree
source§fn from(original: Reflection<String, Bytes>) -> UnitAndTree
fn from(original: Reflection<String, Bytes>) -> UnitAndTree
Converts to this type from the input type.
source§impl<Name: PartialEq, Data: PartialEq + Size> PartialEq<Reflection<Name, Data>> for Reflection<Name, Data>
impl<Name: PartialEq, Data: PartialEq + Size> PartialEq<Reflection<Name, Data>> for Reflection<Name, Data>
source§fn eq(&self, other: &Reflection<Name, Data>) -> bool
fn eq(&self, other: &Reflection<Name, Data>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl<Name, Data> Serialize for Reflection<Name, Data>where
Name: Serialize,
Data: Serialize + Size,
impl<Name, Data> Serialize for Reflection<Name, Data>where Name: Serialize, Data: Serialize + Size,
source§impl TryFrom<UnitAndTree> for Reflection<String, Blocks>
impl TryFrom<UnitAndTree> for Reflection<String, Blocks>
source§impl TryFrom<UnitAndTree> for Reflection<String, Bytes>
impl TryFrom<UnitAndTree> for Reflection<String, Bytes>
impl<Name: Eq, Data: Eq + Size> Eq for Reflection<Name, Data>
impl<Name, Data: Size> StructuralEq for Reflection<Name, Data>
impl<Name, Data: Size> StructuralPartialEq for Reflection<Name, Data>
Auto Trait Implementations§
impl<Name, Data> RefUnwindSafe for Reflection<Name, Data>where Data: RefUnwindSafe, Name: RefUnwindSafe,
impl<Name, Data> Send for Reflection<Name, Data>where Data: Send, Name: Send,
impl<Name, Data> Sync for Reflection<Name, Data>where Data: Sync, Name: Sync,
impl<Name, Data> Unpin for Reflection<Name, Data>where Data: Unpin, Name: Unpin,
impl<Name, Data> UnwindSafe for Reflection<Name, Data>where Data: UnwindSafe, Name: UnwindSafe,
Blanket Implementations§
source§impl<X> Pipe for X
impl<X> Pipe for X
source§fn pipe<Return, Function>(self, f: Function) -> Returnwhere
Self: Sized,
Function: FnOnce(Self) -> Return,
fn pipe<Return, Function>(self, f: Function) -> Returnwhere Self: Sized, Function: FnOnce(Self) -> Return,
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) -> Returnwhere
Self: AsRef<Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a Param) -> Return,
fn pipe_as_ref<'a, Param, Return, Function>(&'a self, f: Function) -> Returnwhere Self: AsRef<Param>, Param: 'a + ?Sized, Function: FnOnce(&'a Param) -> 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) -> Returnwhere
Self: AsMut<Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a mut Param) -> Return,
fn pipe_as_mut<'a, Param, Return, Function>(&'a mut self, f: Function) -> Returnwhere Self: AsMut<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 AsMut<Param>
. Read moresource§fn pipe_deref<'a, Param, Return, Function>(&'a self, f: Function) -> Returnwhere
Self: Deref<Target = Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a Param) -> Return,
fn pipe_deref<'a, Param, Return, Function>(&'a self, f: Function) -> Returnwhere Self: Deref<Target = Param>, Param: 'a + ?Sized, Function: FnOnce(&'a Param) -> 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) -> Returnwhere
Self: Borrow<Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a Param) -> Return,
fn pipe_borrow<'a, Param, Return, Function>(&'a self, f: Function) -> Returnwhere Self: Borrow<Param>, Param: 'a + ?Sized, Function: FnOnce(&'a Param) -> 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
) -> Returnwhere
Self: BorrowMut<Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a mut Param) -> Return,
fn pipe_borrow_mut<'a, Param, Return, Function>( &'a mut self, f: Function ) -> Returnwhere Self: BorrowMut<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 BorrowMut<Param>
. Read more