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