pub enum AnyKeyPath {
Readable(Rc<dyn for<'a> Fn(&'a dyn Any) -> &'a dyn Any>),
ReadableEnum {
extract: Rc<dyn for<'a> Fn(&'a dyn Any) -> Option<&'a dyn Any>>,
embed: Rc<dyn Fn(Box<dyn Any>) -> Box<dyn Any>>,
},
FailableReadable(Rc<dyn for<'a> Fn(&'a dyn Any) -> Option<&'a dyn Any>>),
Writable(Rc<dyn for<'a> Fn(&'a mut dyn Any) -> &'a mut dyn Any>),
FailableWritable(Rc<dyn for<'a> Fn(&'a mut dyn Any) -> Option<&'a mut dyn Any>>),
WritableEnum {
extract: Rc<dyn for<'a> Fn(&'a dyn Any) -> Option<&'a dyn Any>>,
extract_mut: Rc<dyn for<'a> Fn(&'a mut dyn Any) -> Option<&'a mut dyn Any>>,
embed: Rc<dyn Fn(Box<dyn Any>) -> Box<dyn Any>>,
},
ReferenceWritable(Rc<dyn for<'a> Fn(&'a mut dyn Any) -> &'a mut dyn Any>),
Owned(Rc<dyn Fn(Box<dyn Any>) -> Box<dyn Any>>),
FailableOwned(Rc<dyn Fn(Box<dyn Any>) -> Option<Box<dyn Any>>>),
FailableCombined {
readable: Rc<dyn for<'a> Fn(&'a dyn Any) -> Option<&'a dyn Any>>,
writable: Rc<dyn for<'a> Fn(&'a mut dyn Any) -> Option<&'a mut dyn Any>>,
owned: Rc<dyn Fn(Box<dyn Any>) -> Option<Box<dyn Any>>>,
},
}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(Rc<dyn for<'a> Fn(&'a dyn Any) -> &'a dyn Any>)
ReadableEnum
Fields
FailableReadable(Rc<dyn for<'a> Fn(&'a dyn Any) -> Option<&'a dyn Any>>)
Writable(Rc<dyn for<'a> Fn(&'a mut dyn Any) -> &'a mut dyn Any>)
FailableWritable(Rc<dyn for<'a> Fn(&'a mut dyn Any) -> Option<&'a mut dyn Any>>)
WritableEnum
Fields
ReferenceWritable(Rc<dyn for<'a> Fn(&'a mut dyn Any) -> &'a mut dyn Any>)
Owned(Rc<dyn Fn(Box<dyn Any>) -> Box<dyn Any>>)
FailableOwned(Rc<dyn Fn(Box<dyn Any>) -> Option<Box<dyn Any>>>)
FailableCombined
Implementations§
Source§impl AnyKeyPath
impl AnyKeyPath
Sourcepub fn get<'a>(&'a self, root: &'a dyn Any) -> Option<&'a dyn Any>
pub fn get<'a>(&'a self, root: &'a dyn Any) -> Option<&'a dyn Any>
Get an immutable reference if possible
Sourcepub fn get_mut<'a>(&'a self, root: &'a mut dyn Any) -> Option<&'a mut dyn Any>
pub fn get_mut<'a>(&'a self, root: &'a mut dyn Any) -> Option<&'a mut dyn Any>
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