Skip to main content

CastMut

Trait CastMut 

Source
pub trait CastMut {
    // Required method
    fn cast<T: ?Sized + 'static>(&mut self) -> Option<&mut T>;
}
Expand description

A trait that is blanket-implemented for traits extending CastFrom to allow for casting of a trait object for it behind an mutable reference to a trait object for another trait implemented by the underlying value.

§Examples

use intertrait::cast::*;

impl Source for Data {}
let mut data = Data;
let source: &mut dyn Source = &mut data;
let greet = source.cast::<dyn Greet>();
greet.unwrap().greet();

Required Methods§

Source

fn cast<T: ?Sized + 'static>(&mut self) -> Option<&mut T>

Casts a mutable reference to this trait into that of type T.

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.

Implementors§

Source§

impl<S: ?Sized + CastFrom> CastMut for S

A blanket implementation of CastMut for traits extending CastFrom.