1 use pin_project_lite::pin_project;
2 enum Enum<T, U> {
3 Struct { pinned: T, unpinned: U },
4 Unit,
5 }
6 #[doc(hidden)]
7 #[allow(
8 dead_code,
9 single_use_lifetimes,
10 clippy::unknown_clippy_lints,
11 clippy::absolute_paths,
12 clippy::min_ident_chars,
13 clippy::mut_mut,
14 clippy::redundant_pub_crate,
15 clippy::ref_option_ref,
16 clippy::single_char_lifetime_names,
17 clippy::type_repetition_in_bounds
18 )]
19 enum EnumProj<'__pin, T, U>
20 where
21 Enum<T, U>: '__pin,
22 {
23 Struct {
24 pinned: ::pin_project_lite::__private::Pin<&'__pin mut (T)>,
25 unpinned: &'__pin mut (U),
26 },
27 Unit,
28 }
29 #[allow(
30 single_use_lifetimes,
31 clippy::unknown_clippy_lints,
32 clippy::absolute_paths,
33 clippy::min_ident_chars,
34 clippy::single_char_lifetime_names,
35 clippy::used_underscore_binding
36 )]
37 const _: () = {
38 impl<T, U> Enum<T, U> {
39 #[doc(hidden)]
40 #[inline]
project<'__pin>( self: ::pin_project_lite::__private::Pin<&'__pin mut Self>, ) -> EnumProj<'__pin, T, U>41 fn project<'__pin>(
42 self: ::pin_project_lite::__private::Pin<&'__pin mut Self>,
43 ) -> EnumProj<'__pin, T, U> {
44 unsafe {
45 match self.get_unchecked_mut() {
46 Self::Struct { pinned, unpinned } => {
47 EnumProj::Struct {
48 pinned: ::pin_project_lite::__private::Pin::new_unchecked(
49 pinned,
50 ),
51 unpinned: unpinned,
52 }
53 }
54 Self::Unit => EnumProj::Unit,
55 }
56 }
57 }
58 }
59 #[allow(non_snake_case)]
60 struct __Origin<'__pin, T, U> {
61 __dummy_lifetime: ::pin_project_lite::__private::PhantomData<&'__pin ()>,
62 Struct: (T, ::pin_project_lite::__private::AlwaysUnpin<U>),
63 Unit: (),
64 }
65 impl<'__pin, T, U> ::pin_project_lite::__private::Unpin for Enum<T, U>
66 where
67 ::pin_project_lite::__private::PinnedFieldsOf<
68 __Origin<'__pin, T, U>,
69 >: ::pin_project_lite::__private::Unpin,
70 {}
71 trait MustNotImplDrop {}
72 #[allow(clippy::drop_bounds, drop_bounds)]
73 impl<T: ::pin_project_lite::__private::Drop> MustNotImplDrop for T {}
74 impl<T, U> MustNotImplDrop for Enum<T, U> {}
75 };
main()76 fn main() {}
77