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
DataTreecan be safely transmuted to a validReflection. - Any
Reflectioncan be safely transmuted to a potentially invalidDataTree. - To safely convert a
DataTreeinto aReflectionwithout theunsafekeyword, useDataTree::into_reflection(it would be slower than usingtransmute). - To safely convert a
Reflectioninto 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: NameName of the tree.
data: DataDisk 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