pub trait ExtendMut<'b>: Sized {
type Extended;
// Required method
fn extend_mut<R, ER: IntoExtendMutReturn<Self::Extended, R>>(
self,
f: impl FnOnce(Self::Extended) -> ER,
) -> R;
}Expand description
Trait designed to allow extending the lifetime of a mutable reference. It does not currently support async, contributions are welcome.
§Examples
use extend_mut::ExtendMut;
let (mut t1, mut t2) = (1, 2);
let () = (t1, t2).extend_mut(|it /*: &'static mut (u8, u8)*/| it);
let () = (&mut t1, &mut t2).extend_mut(|it /*: (&'static mut u8, &'static mut u8)*/| it);
let "hi" = (t1, t2).extend_mut(|it| (it, "hi")) else { panic!() };Required Associated Types§
Required Methods§
fn extend_mut<R, ER: IntoExtendMutReturn<Self::Extended, R>>( self, f: impl FnOnce(Self::Extended) -> ER, ) -> R
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.