pub trait CastRc {
// Required method
fn cast<T: ?Sized + 'static>(self: Rc<Self>) -> Result<Rc<T>, Rc<Self>>;
}Expand description
A trait that is blanket-implemented for traits extending CastFrom to allow for casting
of a trait object for it behind an Rc to a trait object for another trait
implemented by the underlying value.
§Examples
use intertrait::cast::*;
impl Source for Data {}
let data = Data;
let source = Rc::new(data);
let greet = source.cast::<dyn Greet>();
greet.unwrap_or_else(|_| panic!("must not happen")).greet();Required Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.