• 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 #[doc(hidden)]
27 #[allow(
28     dead_code,
29     single_use_lifetimes,
30     clippy::unknown_clippy_lints,
31     clippy::absolute_paths,
32     clippy::min_ident_chars,
33     clippy::mut_mut,
34     clippy::redundant_pub_crate,
35     clippy::ref_option_ref,
36     clippy::single_char_lifetime_names,
37     clippy::type_repetition_in_bounds
38 )]
39 struct StructProjRef<'__pin, T, U>
40 where
41     Struct<T, U>: '__pin,
42 {
43     pinned: ::pin_project_lite::__private::Pin<&'__pin (T)>,
44     unpinned: &'__pin (U),
45 }
46 #[allow(
47     explicit_outlives_requirements,
48     single_use_lifetimes,
49     clippy::unknown_clippy_lints,
50     clippy::absolute_paths,
51     clippy::min_ident_chars,
52     clippy::redundant_pub_crate,
53     clippy::single_char_lifetime_names,
54     clippy::used_underscore_binding
55 )]
56 const _: () = {
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>, ) -> StructProjRef<'__pin, T, U>73         fn project_ref<'__pin>(
74             self: ::pin_project_lite::__private::Pin<&'__pin Self>,
75         ) -> StructProjRef<'__pin, T, U> {
76             unsafe {
77                 let Self { pinned, unpinned } = self.get_ref();
78                 StructProjRef {
79                     pinned: ::pin_project_lite::__private::Pin::new_unchecked(pinned),
80                     unpinned: unpinned,
81                 }
82             }
83         }
84     }
85     #[doc(hidden)]
86     impl<'__pin, T, U> ::pin_project_lite::__private::Unpin for Struct<T, U>
87     where
88         (
89             ::pin_project_lite::__private::PhantomData<&'__pin ()>,
90             ::pin_project_lite::__private::PhantomPinned,
91         ): ::pin_project_lite::__private::Unpin,
92     {}
93     trait MustNotImplDrop {}
94     #[allow(clippy::drop_bounds, drop_bounds)]
95     impl<T: ::pin_project_lite::__private::Drop> MustNotImplDrop for T {}
96     impl<T, U> MustNotImplDrop for Struct<T, U> {}
97     #[forbid(unaligned_references, safe_packed_borrows)]
__assert_not_repr_packed<T, U>(this: &Struct<T, U>)98     fn __assert_not_repr_packed<T, U>(this: &Struct<T, U>) {
99         let _ = &this.pinned;
100         let _ = &this.unpinned;
101     }
102 };
main()103 fn main() {}
104