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