1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
use pin_project_lite::pin_project; use std::pin::Pin; pin_project! { #[project = EnumProj] #[project_ref = EnumProjRef] enum Enum<T, U> { Struct { #[pin] pinned: T, unpinned: U, }, Unit, } impl<T, U> PinnedDrop for Enum<T, U> { fn drop(this: Pin<&mut Self>) { let _ = this; } } } fn main() {}