• 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(
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