hooks_core/utils/mod.rs
1use std::{ops::DerefMut, pin::Pin};
2
3/// Re-implement [`Pin::as_deref_mut`] which is unstable for now.
4///
5/// [`Pin::as_deref_mut`]: https://doc.rust-lang.org/std/pin/struct.Pin.html#method.as_deref_mut
6#[must_use = "`self` will be dropped if the result is not used"]
7#[inline(always)]
8pub fn pin_as_deref_mut<P: DerefMut>(this: Pin<&mut Pin<P>>) -> Pin<&mut P::Target> {
9 // SAFETY: See Pin::as_deref_mut
10 unsafe { this.get_unchecked_mut() }.as_mut()
11}