• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use pin_project::pin_project;
2 #[pin(__private(project_ref = ProjRef))]
3 struct TupleStruct<T, U>(#[pin] T, U);
4 #[allow(
5     dead_code,
6     deprecated,
7     explicit_outlives_requirements,
8     single_use_lifetimes,
9     unreachable_pub,
10     unused_tuple_struct_fields,
11     clippy::unknown_clippy_lints,
12     clippy::absolute_paths,
13     clippy::min_ident_chars,
14     clippy::pattern_type_mismatch,
15     clippy::pub_with_shorthand,
16     clippy::redundant_pub_crate,
17     clippy::single_char_lifetime_names,
18     clippy::type_repetition_in_bounds,
19     clippy::missing_docs_in_private_items,
20     clippy::ref_option_ref
21 )]
22 struct ProjRef<'pin, T, U>(
23     ::pin_project::__private::Pin<&'pin (T)>,
24     &'pin (U),
25 )
26 where
27     TupleStruct<T, U>: 'pin;
28 #[allow(
29     unused_qualifications,
30     deprecated,
31     explicit_outlives_requirements,
32     single_use_lifetimes,
33     unreachable_pub,
34     unused_tuple_struct_fields,
35     clippy::unknown_clippy_lints,
36     clippy::absolute_paths,
37     clippy::min_ident_chars,
38     clippy::pattern_type_mismatch,
39     clippy::pub_with_shorthand,
40     clippy::redundant_pub_crate,
41     clippy::single_char_lifetime_names,
42     clippy::type_repetition_in_bounds,
43     clippy::needless_lifetimes,
44     clippy::semicolon_if_nothing_returned,
45     clippy::use_self,
46     clippy::used_underscore_binding
47 )]
48 const _: () = {
49     #[allow(unused_extern_crates)]
50     extern crate pin_project as _pin_project;
51     #[allow(dead_code, clippy::missing_docs_in_private_items, clippy::mut_mut)]
52     struct __TupleStructProjection<'pin, T, U>(
53         ::pin_project::__private::Pin<&'pin mut (T)>,
54         &'pin mut (U),
55     )
56     where
57         TupleStruct<T, U>: 'pin;
58     impl<T, U> TupleStruct<T, U> {
59         #[allow(dead_code)]
60         #[inline]
project<'pin>( self: _pin_project::__private::Pin<&'pin mut Self>, ) -> __TupleStructProjection<'pin, T, U>61         fn project<'pin>(
62             self: _pin_project::__private::Pin<&'pin mut Self>,
63         ) -> __TupleStructProjection<'pin, T, U> {
64             unsafe {
65                 let Self(_0, _1) = self.get_unchecked_mut();
66                 __TupleStructProjection(
67                     _pin_project::__private::Pin::new_unchecked(_0),
68                     _1,
69                 )
70             }
71         }
72         #[allow(dead_code)]
73         #[allow(clippy::missing_const_for_fn)]
74         #[inline]
project_ref<'pin>( self: _pin_project::__private::Pin<&'pin Self>, ) -> ProjRef<'pin, T, U>75         fn project_ref<'pin>(
76             self: _pin_project::__private::Pin<&'pin Self>,
77         ) -> ProjRef<'pin, T, U> {
78             unsafe {
79                 let Self(_0, _1) = self.get_ref();
80                 ProjRef(_pin_project::__private::Pin::new_unchecked(_0), _1)
81             }
82         }
83     }
84     #[forbid(unaligned_references, safe_packed_borrows)]
__assert_not_repr_packed<T, U>(this: &TupleStruct<T, U>)85     fn __assert_not_repr_packed<T, U>(this: &TupleStruct<T, U>) {
86         let _ = &this.0;
87         let _ = &this.1;
88     }
89     #[allow(missing_debug_implementations, unnameable_types)]
90     struct __TupleStruct<'pin, T, U> {
91         __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
92             'pin,
93             (
94                 _pin_project::__private::PhantomData<T>,
95                 _pin_project::__private::PhantomData<U>,
96             ),
97         >,
98         __field0: T,
99     }
100     impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U>
101     where
102         _pin_project::__private::PinnedFieldsOf<
103             __TupleStruct<'pin, T, U>,
104         >: _pin_project::__private::Unpin,
105     {}
106     #[doc(hidden)]
107     unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U>
108     where
109         _pin_project::__private::PinnedFieldsOf<
110             __TupleStruct<'pin, T, U>,
111         >: _pin_project::__private::Unpin,
112     {}
113     trait TupleStructMustNotImplDrop {}
114     #[allow(clippy::drop_bounds, drop_bounds)]
115     impl<T: _pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
116     impl<T, U> TupleStructMustNotImplDrop for TupleStruct<T, U> {}
117     #[doc(hidden)]
118     impl<T, U> _pin_project::__private::PinnedDrop for TupleStruct<T, U> {
drop(self: _pin_project::__private::Pin<&mut Self>)119         unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
120     }
121 };
main()122 fn main() {}
123