• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // SPDX-License-Identifier: Apache-2.0 OR MIT
2 
3 use std::pin::Pin;
4 
5 use pin_project::{pin_project, pinned_drop};
6 
7 #[pin_project(PinnedDrop, project = EnumProj, project_ref = EnumProjRef)]
8 enum Enum<T, U> {
9     Struct {
10         #[pin]
11         pinned: T,
12         unpinned: U,
13     },
14     Tuple(#[pin] T, U),
15     Unit,
16 }
17 
18 #[pinned_drop]
19 impl<T, U> PinnedDrop for Enum<T, U> {
drop(self: Pin<&mut Self>)20     fn drop(self: Pin<&mut Self>) {
21         let _ = self;
22     }
23 }
24 
main()25 fn main() {}
26