• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use pin_project_lite::pin_project;
2 pub 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 pub(crate) 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 #[doc(hidden)]
30 #[allow(
31     dead_code,
32     single_use_lifetimes,
33     clippy::unknown_clippy_lints,
34     clippy::absolute_paths,
35     clippy::min_ident_chars,
36     clippy::mut_mut,
37     clippy::redundant_pub_crate,
38     clippy::ref_option_ref,
39     clippy::single_char_lifetime_names,
40     clippy::type_repetition_in_bounds
41 )]
42 pub(crate) enum EnumProjRef<'__pin, T, U>
43 where
44     Enum<T, U>: '__pin,
45 {
46     Struct {
47         pinned: ::pin_project_lite::__private::Pin<&'__pin (T)>,
48         unpinned: &'__pin (U),
49     },
50     Unit,
51 }
52 #[allow(
53     single_use_lifetimes,
54     clippy::unknown_clippy_lints,
55     clippy::absolute_paths,
56     clippy::min_ident_chars,
57     clippy::single_char_lifetime_names,
58     clippy::used_underscore_binding
59 )]
60 const _: () = {
61     impl<T, U> Enum<T, U> {
62         #[doc(hidden)]
63         #[inline]
project<'__pin>( self: ::pin_project_lite::__private::Pin<&'__pin mut Self>, ) -> EnumProj<'__pin, T, U>64         pub(crate) fn project<'__pin>(
65             self: ::pin_project_lite::__private::Pin<&'__pin mut Self>,
66         ) -> EnumProj<'__pin, T, U> {
67             unsafe {
68                 match self.get_unchecked_mut() {
69                     Self::Struct { pinned, unpinned } => {
70                         EnumProj::Struct {
71                             pinned: ::pin_project_lite::__private::Pin::new_unchecked(
72                                 pinned,
73                             ),
74                             unpinned: unpinned,
75                         }
76                     }
77                     Self::Unit => EnumProj::Unit,
78                 }
79             }
80         }
81         #[doc(hidden)]
82         #[inline]
project_ref<'__pin>( self: ::pin_project_lite::__private::Pin<&'__pin Self>, ) -> EnumProjRef<'__pin, T, U>83         pub(crate) fn project_ref<'__pin>(
84             self: ::pin_project_lite::__private::Pin<&'__pin Self>,
85         ) -> EnumProjRef<'__pin, T, U> {
86             unsafe {
87                 match self.get_ref() {
88                     Self::Struct { pinned, unpinned } => {
89                         EnumProjRef::Struct {
90                             pinned: ::pin_project_lite::__private::Pin::new_unchecked(
91                                 pinned,
92                             ),
93                             unpinned: unpinned,
94                         }
95                     }
96                     Self::Unit => EnumProjRef::Unit,
97                 }
98             }
99         }
100     }
101     #[allow(non_snake_case)]
102     pub struct __Origin<'__pin, T, U> {
103         __dummy_lifetime: ::pin_project_lite::__private::PhantomData<&'__pin ()>,
104         Struct: (T, ::pin_project_lite::__private::AlwaysUnpin<U>),
105         Unit: (),
106     }
107     impl<'__pin, T, U> ::pin_project_lite::__private::Unpin for Enum<T, U>
108     where
109         ::pin_project_lite::__private::PinnedFieldsOf<
110             __Origin<'__pin, T, U>,
111         >: ::pin_project_lite::__private::Unpin,
112     {}
113     trait MustNotImplDrop {}
114     #[allow(clippy::drop_bounds, drop_bounds)]
115     impl<T: ::pin_project_lite::__private::Drop> MustNotImplDrop for T {}
116     impl<T, U> MustNotImplDrop for Enum<T, U> {}
117 };
main()118 fn main() {}
119