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