• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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(dead_code)]
8 #[allow(single_use_lifetimes)]
9 #[allow(clippy::unknown_clippy_lints)]
10 #[allow(clippy::mut_mut)]
11 #[allow(clippy::redundant_pub_crate)]
12 #[allow(clippy::ref_option_ref)]
13 #[allow(clippy::type_repetition_in_bounds)]
14 enum EnumProj<'__pin, T, U>
15 where
16     Enum<T, U>: '__pin,
17 {
18     Struct {
19         pinned: ::pin_project_lite::__private::Pin<&'__pin mut (T)>,
20         unpinned: &'__pin mut (U),
21     },
22     Unit,
23 }
24 #[doc(hidden)]
25 #[allow(dead_code)]
26 #[allow(single_use_lifetimes)]
27 #[allow(clippy::unknown_clippy_lints)]
28 #[allow(clippy::mut_mut)]
29 #[allow(clippy::redundant_pub_crate)]
30 #[allow(clippy::ref_option_ref)]
31 #[allow(clippy::type_repetition_in_bounds)]
32 enum EnumProjRef<'__pin, T, U>
33 where
34     Enum<T, U>: '__pin,
35 {
36     Struct {
37         pinned: ::pin_project_lite::__private::Pin<&'__pin (T)>,
38         unpinned: &'__pin (U),
39     },
40     Unit,
41 }
42 #[allow(single_use_lifetimes)]
43 #[allow(clippy::unknown_clippy_lints)]
44 #[allow(clippy::used_underscore_binding)]
45 const _: () = {
46     impl<T, U> Enum<T, U> {
47         #[doc(hidden)]
48         #[inline]
project<'__pin>( self: ::pin_project_lite::__private::Pin<&'__pin mut Self>, ) -> EnumProj<'__pin, T, U>49         fn project<'__pin>(
50             self: ::pin_project_lite::__private::Pin<&'__pin mut Self>,
51         ) -> EnumProj<'__pin, T, U> {
52             unsafe {
53                 match self.get_unchecked_mut() {
54                     Self::Struct { pinned, unpinned } => {
55                         EnumProj::Struct {
56                             pinned: ::pin_project_lite::__private::Pin::new_unchecked(
57                                 pinned,
58                             ),
59                             unpinned: unpinned,
60                         }
61                     }
62                     Self::Unit => EnumProj::Unit,
63                 }
64             }
65         }
66         #[doc(hidden)]
67         #[inline]
project_ref<'__pin>( self: ::pin_project_lite::__private::Pin<&'__pin Self>, ) -> EnumProjRef<'__pin, T, U>68         fn project_ref<'__pin>(
69             self: ::pin_project_lite::__private::Pin<&'__pin Self>,
70         ) -> EnumProjRef<'__pin, T, U> {
71             unsafe {
72                 match self.get_ref() {
73                     Self::Struct { pinned, unpinned } => {
74                         EnumProjRef::Struct {
75                             pinned: ::pin_project_lite::__private::Pin::new_unchecked(
76                                 pinned,
77                             ),
78                             unpinned: unpinned,
79                         }
80                     }
81                     Self::Unit => EnumProjRef::Unit,
82                 }
83             }
84         }
85     }
86     #[doc(hidden)]
87     impl<'__pin, T, U> ::pin_project_lite::__private::Unpin for Enum<T, U>
88     where
89         (
90             ::core::marker::PhantomData<&'__pin ()>,
91             ::core::marker::PhantomPinned,
92         ): ::pin_project_lite::__private::Unpin,
93     {}
94     trait MustNotImplDrop {}
95     #[allow(clippy::drop_bounds, drop_bounds)]
96     impl<T: ::pin_project_lite::__private::Drop> MustNotImplDrop for T {}
97     impl<T, U> MustNotImplDrop for Enum<T, U> {}
98 };
main()99 fn main() {}
100