pub enum AnyKeyPath {
Readable(Arc<dyn for<'a> Fn(&'a (dyn Any + Send + Sync)) -> &'a (dyn Any + Send + Sync) + Send + Sync>),
ReadableEnum {
extract: Arc<dyn for<'a> Fn(&'a (dyn Any + Send + Sync)) -> Option<&'a (dyn Any + Send + Sync)> + Send + Sync>,
embed: Arc<dyn Fn(Box<dyn Any>) -> Box<dyn Any> + Send + Sync>,
},
FailableReadable(Arc<dyn for<'a> Fn(&'a (dyn Any + Send + Sync)) -> Option<&'a (dyn Any + Send + Sync)> + Send + Sync>),
Writable(Arc<dyn for<'a> Fn(&'a mut (dyn Any + Send + Sync)) -> &'a mut (dyn Any + Send + Sync) + Send + Sync>),
FailableWritable(Arc<dyn for<'a> Fn(&'a mut (dyn Any + Send + Sync)) -> Option<&'a mut (dyn Any + Send + Sync)> + Send + Sync>),
WritableEnum {
extract: Arc<dyn for<'a> Fn(&'a (dyn Any + Send + Sync)) -> Option<&'a (dyn Any + Send + Sync)> + Send + Sync>,
extract_mut: Arc<dyn for<'a> Fn(&'a mut (dyn Any + Send + Sync)) -> Option<&'a mut (dyn Any + Send + Sync)> + Send + Sync>,
embed: Arc<dyn Fn(Box<dyn Any>) -> Box<dyn Any> + Send + Sync>,
},
ReferenceWritable(Arc<dyn for<'a> Fn(&'a mut (dyn Any + Send + Sync)) -> &'a mut (dyn Any + Send + Sync) + Send + Sync>),
Owned(Arc<dyn Fn(Box<dyn Any>) -> Box<dyn Any> + Send + Sync>),
FailableOwned(Arc<dyn Fn(Box<dyn Any>) -> Option<Box<dyn Any>> + Send + Sync>),
FailableCombined {
readable: Arc<dyn for<'a> Fn(&'a (dyn Any + Send + Sync)) -> Option<&'a (dyn Any + Send + Sync)> + Send + Sync>,
writable: Arc<dyn for<'a> Fn(&'a mut (dyn Any + Send + Sync)) -> Option<&'a mut (dyn Any + Send + Sync)> + Send + Sync>,
owned: Arc<dyn Fn(Box<dyn Any>) -> Option<Box<dyn Any>> + Send + Sync>,
},
}Expand description
AnyKeyPath - Fully type-erased keypath for unknown Root and Value Equivalent to Swift’s AnyKeyPath Useful when Root and Value types are unknown or need to be hidden
Variants§
Readable(Arc<dyn for<'a> Fn(&'a (dyn Any + Send + Sync)) -> &'a (dyn Any + Send + Sync) + Send + Sync>)
ReadableEnum
Fields
FailableReadable(Arc<dyn for<'a> Fn(&'a (dyn Any + Send + Sync)) -> Option<&'a (dyn Any + Send + Sync)> + Send + Sync>)
Writable(Arc<dyn for<'a> Fn(&'a mut (dyn Any + Send + Sync)) -> &'a mut (dyn Any + Send + Sync) + Send + Sync>)
FailableWritable(Arc<dyn for<'a> Fn(&'a mut (dyn Any + Send + Sync)) -> Option<&'a mut (dyn Any + Send + Sync)> + Send + Sync>)
WritableEnum
Fields
extract: Arc<dyn for<'a> Fn(&'a (dyn Any + Send + Sync)) -> Option<&'a (dyn Any + Send + Sync)> + Send + Sync>ReferenceWritable(Arc<dyn for<'a> Fn(&'a mut (dyn Any + Send + Sync)) -> &'a mut (dyn Any + Send + Sync) + Send + Sync>)
Owned(Arc<dyn Fn(Box<dyn Any>) -> Box<dyn Any> + Send + Sync>)
FailableOwned(Arc<dyn Fn(Box<dyn Any>) -> Option<Box<dyn Any>> + Send + Sync>)
FailableCombined
Implementations§
Source§impl AnyKeyPath
impl AnyKeyPath
Sourcepub fn get<'a>(
&'a self,
root: &'a (dyn Any + Send + Sync),
) -> Option<&'a (dyn Any + Send + Sync)>
pub fn get<'a>( &'a self, root: &'a (dyn Any + Send + Sync), ) -> Option<&'a (dyn Any + Send + Sync)>
Get an immutable reference if possible
Sourcepub fn get_mut<'a>(
&'a self,
root: &'a mut (dyn Any + Send + Sync),
) -> Option<&'a mut (dyn Any + Send + Sync)>
pub fn get_mut<'a>( &'a self, root: &'a mut (dyn Any + Send + Sync), ) -> Option<&'a mut (dyn Any + Send + Sync)>
Get a mutable reference if possible
Sourcepub fn get_owned(self, root: Box<dyn Any>) -> Box<dyn Any>
pub fn get_owned(self, root: Box<dyn Any>) -> Box<dyn Any>
Get an owned value (primary method for owned keypaths)
Sourcepub fn get_failable_owned(self, root: Box<dyn Any>) -> Option<Box<dyn Any>>
pub fn get_failable_owned(self, root: Box<dyn Any>) -> Option<Box<dyn Any>>
Get an owned value with failable access
Sourcepub fn for_arc<Root>(self) -> AnyKeyPath
pub fn for_arc<Root>(self) -> AnyKeyPath
Adapt this AnyKeyPath to work with Arc
Sourcepub fn for_box<Root>(self) -> AnyKeyPath
pub fn for_box<Root>(self) -> AnyKeyPath
Adapt this AnyKeyPath to work with Box
Sourcepub fn for_rc<Root>(self) -> AnyKeyPath
pub fn for_rc<Root>(self) -> AnyKeyPath
Adapt this AnyKeyPath to work with Rc
Sourcepub fn for_result<Root, E>(self) -> AnyKeyPath
pub fn for_result<Root, E>(self) -> AnyKeyPath
Adapt this AnyKeyPath to work with Result<Root, E>
Sourcepub fn for_option<Root>(self) -> AnyKeyPath
pub fn for_option<Root>(self) -> AnyKeyPath
Adapt this AnyKeyPath to work with Option
Sourcepub fn for_arc_rwlock<Root>(self) -> AnyKeyPath
pub fn for_arc_rwlock<Root>(self) -> AnyKeyPath
Adapt this AnyKeyPath to work with Arc<RwLock
Sourcepub fn for_arc_mutex<Root>(self) -> AnyKeyPath
pub fn for_arc_mutex<Root>(self) -> AnyKeyPath
Adapt this AnyKeyPath to work with Arc<Mutex
Trait Implementations§
Source§impl Clone for AnyKeyPath
impl Clone for AnyKeyPath
Source§fn clone(&self) -> AnyKeyPath
fn clone(&self) -> AnyKeyPath
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more