1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use std::pin::Pin;
pin_project_lite::pin_project! {
#[derive(Debug, Default)]
pub struct Pinned<T> {
#[pin]
pub inner: T,
}
}
impl<T> Pinned<T> {
#[inline]
pub fn pin_project_inner(self: Pin<&mut Self>) -> Pin<&mut T> {
self.project().inner
}
}
crate::utils::impl_hook! {
impl [T] for Pinned<T> {
#[inline]
poll_next_update(self) { false .into() }
#[inline]
use_hook(self) -> Pin<&'hook mut T> {
self.pin_project_inner()
}
}
}
#[inline]
pub fn use_default_pinned<T: Default>() -> Pinned<T> {
Default::default()
}