| use std::pin::Pin; | |
| use pin_project::{pin_project, pinned_drop}; | |
| #[pin_project(PinnedDrop, project = EnumProj, project_ref = EnumProjRef)] | |
| enum Enum<T, U> { | |
| Struct { | |
| #[pin] | |
| pinned: T, | |
| unpinned: U, | |
| }, | |
| Tuple(#[pin] T, U), | |
| Unit, | |
| } | |
| #[pinned_drop] | |
| impl<T, U> PinnedDrop for Enum<T, U> { | |
| fn drop(self: Pin<&mut Self>) { | |
| let _ = self; | |
| } | |
| } | |
| fn main() {} |