+1
−8
+61
−0
Loading
Make the `#[pin_data]` macro generate a `*Projection` struct that holds either `Pin<&mut Field>` or `&mut Field` for every field of the original struct. Which version is chosen depends on weather there is a `#[pin]` or not respectively. Access to this projected version is enabled through generating `fn project(self: Pin<&mut Self>) -> SelfProjection<'_>`. [ Adapt workqueue to use the new projection instead of its own, custom one - Benno ] Reviewed-by:Gary Guo <gary@garyguo.net> Reviewed-by:
Boqun Feng <boqun.feng@gmail.com> Signed-off-by:
Benno Lossin <lossin@kernel.org>