macro_rules! Coercion {
(to dyn $($bounds:tt)*) => { ... };
}
Non-unsafe
Coercion
constructor for arbitrary trait bounds.
use unsize::{Coercion, CoerceUnsize};
trait MyFancyTrait { }
fn generic<T: MyFancyTrait>(ptr: &T) -> &dyn MyFancyTrait {
ptr.unsize(Coercion!(to dyn MyFancyTrait))
}