pub auto trait Unpin { }Expand description
Types that do not require any pinning guarantees.
For information on what “pinning” is, see the pin module documentation.
Implementing the Unpin trait for T expresses the fact that T is pinning-agnostic:
it shall not expose nor rely on any pinning guarantees. This, in turn, means that a
Pin-wrapped pointer to such a type can feature a fully unrestricted API.
In other words, if T: Unpin, a value of type T will not be bound by the invariants
which pinning otherwise offers, even when “pinned” by a Pin<Ptr> pointing at it.
When a value of type T is pointed at by a Pin<Ptr>, Pin will not restrict access
to the pointee value like it normally would, thus allowing the user to do anything that they
normally could with a non-Pin-wrapped Ptr to that value.
The idea of this trait is to alleviate the reduced ergonomics of APIs that require the use
of Pin for soundness for some types, but which also want to be used by other types that
don’t care about pinning. The prime example of such an API is Future::poll. There are many
Future types that don’t care about pinning. These futures can implement Unpin and
therefore get around the pinning related restrictions in the API, while still allowing the
subset of Futures which do require pinning to be implemented soundly.
For more discussion on the consequences of Unpin within the wider scope of the pinning
system, see the section about Unpin in the pin module.
Unpin has no consequence at all for non-pinned data. In particular, mem::replace happily
moves !Unpin data, which would be immovable when pinned (mem::replace works for any
&mut T, not just when T: Unpin).
However, you cannot use mem::replace on !Unpin data which is pinned by being wrapped
inside a Pin<Ptr> pointing at it. This is because you cannot (safely) use a
Pin<Ptr> to get a &mut T to its pointee value, which you would need to call
mem::replace, and that is what makes this system work.
So this, for example, can only be done on types implementing Unpin:
use std::mem;
use std::pin::Pin;
let mut string = "this".to_string();
let mut pinned_string = Pin::new(&mut string);
// We need a mutable reference to call `mem::replace`.
// We can obtain such a reference by (implicitly) invoking `Pin::deref_mut`,
// but that is only possible because `String` implements `Unpin`.
mem::replace(&mut *pinned_string, "other".to_string());This trait is automatically implemented for almost every type. The compiler is free
to take the conservative stance of marking types as Unpin so long as all of the types that
compose its fields are also Unpin. This is because if a type implements Unpin, then it
is unsound for that type’s implementation to rely on pinning-related guarantees for soundness,
even when viewed through a “pinning” pointer! It is the responsibility of the implementor of
a type that relies upon pinning for soundness to ensure that type is not marked as Unpin
by adding PhantomPinned field. For more details, see the pin module docs.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl !Unpin for PhantomPinned
impl Unpin for LocalWaker
impl Unpin for Waker
impl<'__pin, 'a, 'b, W> Unpin for WriteAllVectored<'a, 'b, W>
impl<'__pin, 'a, I, S, E> Unpin for hyper_util::server::conn::auto::Connection<'a, I, S, E>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, 'a, I, S, E>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
S: HttpService<Incoming>,
impl<'__pin, 'a, I, S, E> Unpin for hyper_util::server::conn::auto::UpgradeableConnection<'a, I, S, E>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, 'a, I, S, E>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
S: HttpService<Incoming>,
impl<'__pin, 'a, R, W> Unpin for Copy<'a, R, W>
impl<'__pin, 'a, R, W> Unpin for CopyBuf<'a, R, W>
impl<'__pin, 'a, R, W> Unpin for CopyBufAbortable<'a, R, W>
impl<'__pin, 'a, St, F> Unpin for NextIf<'a, St, F>
impl<'__pin, 'a, St, T> Unpin for NextIfEq<'a, St, T>
impl<'__pin, 'a, St> Unpin for rustmax::prelude::stream::Peek<'a, St>
impl<'__pin, 'a, St> Unpin for rustmax::prelude::stream::PeekMut<'a, St>
impl<'__pin, 'a> Unpin for WaitForCancellationFuture<'a>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, 'a>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, A, B> Unpin for EitherResponseFuture<A, B>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, A, B>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, B, F> Unpin for http_body_util::combinators::inspect_err::InspectErr<B, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, B, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, B, F> Unpin for InspectFrame<B, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, B, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, B, F> Unpin for http_body_util::combinators::map_err::MapErr<B, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, B, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, B, F> Unpin for MapFrame<B, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, B, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, B, T, E, S> Unpin for rustmax::axum::middleware::future::FromExtractorResponseFuture<B, T, E, S>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, B, T, E, S>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
E: FromRequestParts<S>,
T: Service<Request<B>>,
impl<'__pin, B> Unpin for http_body_util::stream::BodyDataStream<B>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, B>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, B> Unpin for BodyStream<B>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, B>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, B> Unpin for Limited<B>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, B>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, D, C> Unpin for PeakEwmaDiscover<D, C>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, D, C>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, D, C> Unpin for PendingRequestsDiscover<D, C>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, D, C>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, D> Unpin for Full<D>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, D>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, E> Unpin for RouteFuture<E>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, E>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, F1, F2, N> Unpin for AndThenFuture<F1, F2, N>
impl<'__pin, F1, F2, N> Unpin for ThenFuture<F1, F2, N>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, F1, F2, N>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, F, C, H> Unpin for TrackCompletionFuture<F, C, H>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, F, C, H>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, F, E> Unpin for rustmax::tower::reconnect::ResponseFuture<F, E>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, F, E>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, F, E> Unpin for rustmax::tower::spawn_ready::future::ResponseFuture<F, E>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, F, E>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, F, N> Unpin for MapErrFuture<F, N>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, F, N>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, F, N> Unpin for MapResponseFuture<F, N>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, F, N>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, F, N> Unpin for MapResultFuture<F, N>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, F, N>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, F, Req> Unpin for MakeFuture<F, Req>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, F, Req>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, F> Unpin for Coop<F>
impl<'__pin, F> Unpin for rustmax::prelude::future::Flatten<F>
impl<'__pin, F> Unpin for FlattenStream<F>
impl<'__pin, F> Unpin for IntoServiceFuture<F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, F> Unpin for rustmax::prelude::future::IntoStream<F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, F> Unpin for OptionFuture<F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, F> Unpin for rustmax::tower::load_shed::future::ResponseFuture<F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, F> Unpin for Unconstrained<F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut1, Fut2, F> Unpin for rustmax::prelude::future::AndThen<Fut1, Fut2, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut1, Fut2, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut1, Fut2, F> Unpin for rustmax::prelude::future::OrElse<Fut1, Fut2, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut1, Fut2, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut1, Fut2, F> Unpin for rustmax::prelude::future::Then<Fut1, Fut2, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut1, Fut2, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut1, Fut2, Fut3, Fut4, Fut5> Unpin for Join5<Fut1, Fut2, Fut3, Fut4, Fut5>
impl<'__pin, Fut1, Fut2, Fut3, Fut4, Fut5> Unpin for TryJoin5<Fut1, Fut2, Fut3, Fut4, Fut5>
impl<'__pin, Fut1, Fut2, Fut3, Fut4> Unpin for Join4<Fut1, Fut2, Fut3, Fut4>
impl<'__pin, Fut1, Fut2, Fut3, Fut4> Unpin for TryJoin4<Fut1, Fut2, Fut3, Fut4>
impl<'__pin, Fut1, Fut2, Fut3> Unpin for Join3<Fut1, Fut2, Fut3>
impl<'__pin, Fut1, Fut2, Fut3> Unpin for TryJoin3<Fut1, Fut2, Fut3>
impl<'__pin, Fut1, Fut2> Unpin for rustmax::prelude::future::Join<Fut1, Fut2>
impl<'__pin, Fut1, Fut2> Unpin for rustmax::prelude::future::TryFlatten<Fut1, Fut2>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut1, Fut2>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut1, Fut2> Unpin for TryJoin<Fut1, Fut2>
impl<'__pin, Fut, E> Unpin for rustmax::prelude::future::ErrInto<Fut, E>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut, E>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut, E> Unpin for OkInto<Fut, E>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut, E>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut, F, G> Unpin for MapOkOrElse<Fut, F, G>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut, F, G>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut, F> Unpin for rustmax::prelude::future::Inspect<Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut, F> Unpin for rustmax::prelude::future::InspectErr<Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut, F> Unpin for rustmax::prelude::future::InspectOk<Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut, F> Unpin for rustmax::prelude::future::Map<Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut, F> Unpin for rustmax::prelude::future::MapErr<Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut, F> Unpin for rustmax::prelude::future::MapOk<Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut, F> Unpin for UnwrapOrElse<Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut, Si> Unpin for FlattenSink<Fut, Si>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut, Si>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut, T> Unpin for rustmax::prelude::future::MapInto<Fut, T>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut, T>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut> Unpin for rustmax::prelude::future::CatchUnwind<Fut>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut> Unpin for rustmax::prelude::future::Fuse<Fut>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut> Unpin for IntoFuture<Fut>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut> Unpin for NeverError<Fut>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut> Unpin for rustmax::prelude::stream::Once<Fut>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut> Unpin for Remote<Fut>
impl<'__pin, Fut> Unpin for ResponseAxumBodyFuture<Fut>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Fut> Unpin for TryFlattenStream<Fut>
impl<'__pin, Fut> Unpin for rustmax::prelude::future::UnitError<Fut>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Fut>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, I> Unpin for WithHyperIo<I>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, I>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, I> Unpin for WithTokioIo<I>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, I>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, L, R> Unpin for http_body_util::either::Either<L, R>where
__Origin<'__pin, L, R>: Unpin,
impl<'__pin, P, S, Request> Unpin for AsyncResponseFuture<P, S, Request>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, P, S, Request>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
P: AsyncPredicate<Request>,
S: Service<<P as AsyncPredicate<Request>>::Request>,
impl<'__pin, P, S, Request> Unpin for rustmax::tower::retry::future::ResponseFuture<P, S, Request>
impl<'__pin, P, S> Unpin for Retry<P, S>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, P, S>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, R, F> Unpin for InspectReader<R, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, R, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, R, F> Unpin for rustmax::tower::filter::future::ResponseFuture<R, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, R, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, R, W> Unpin for rustmax::tokio::io::Join<R, W>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, R, W>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, R> Unpin for rustmax::futures::io::BufReader<R>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, R>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, R> Unpin for rustmax::tokio::io::BufReader<R>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, R>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, R> Unpin for rustmax::futures::io::Lines<R>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, R>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, R> Unpin for rustmax::tokio::io::Lines<R>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, R>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, R> Unpin for ReaderStream<R>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, R>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, R> Unpin for rustmax::tokio::io::Split<R>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, R>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, R> Unpin for rustmax::futures::io::Take<R>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, R>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, R> Unpin for rustmax::tokio::io::Take<R>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, R>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, RW> Unpin for BufStream<RW>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, RW>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, S, B, P> Unpin for tower_http::follow_redirect::ResponseFuture<S, B, P>
impl<'__pin, S, C> Unpin for rustmax::axum::extract::connect_info::ResponseFuture<S, C>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, S, C>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, S, R> Unpin for TowerToHyperServiceFuture<S, R>
impl<'__pin, S, Req> Unpin for Oneshot<S, Req>
impl<'__pin, S, Request> Unpin for Future<S, Request>
impl<'__pin, S> Unpin for CopyToBytes<S>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, S>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, S> Unpin for IntoMakeServiceFuture<S>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, S>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, S> Unpin for KeepAliveStream<S>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, S>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, S> Unpin for LayeredFuture<S>
impl<'__pin, S> Unpin for rustmax::prelude::stream::PollImmediate<S>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, S>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, S> Unpin for SinkWriter<S>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, S>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, S> Unpin for StreamBody<S>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, S>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Si1, Si2> Unpin for Fanout<Si1, Si2>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Si1, Si2>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Si, F> Unpin for SinkMapErr<Si, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Si, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Si, Item, E> Unpin for SinkErrInto<Si, Item, E>
impl<'__pin, Si, Item, U, Fut, F> Unpin for With<Si, Item, U, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Si, Item, U, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Si, Item, U, St, F> Unpin for WithFlatMap<Si, Item, U, St, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Si, Item, U, St, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, Si, Item> Unpin for rustmax::prelude::sink::Buffer<Si, Item>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, Si, Item>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St1, St2, Clos, State> Unpin for SelectWithStrategy<St1, St2, Clos, State>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St1, St2, Clos, State>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St1, St2> Unpin for rustmax::prelude::stream::Chain<St1, St2>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St1, St2>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St1, St2> Unpin for rustmax::prelude::stream::Select<St1, St2>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St1, St2>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St1, St2> Unpin for rustmax::prelude::stream::Zip<St1, St2>
impl<'__pin, St, C> Unpin for rustmax::prelude::stream::Collect<St, C>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, C>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, C> Unpin for TryCollect<St, C>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, C>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, E> Unpin for rustmax::prelude::stream::ErrInto<St, E>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, E>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, F> Unpin for rustmax::prelude::stream::Inspect<St, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, F> Unpin for rustmax::prelude::stream::InspectErr<St, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, F> Unpin for rustmax::prelude::stream::InspectOk<St, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, F> Unpin for rustmax::prelude::stream::Map<St, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, F> Unpin for rustmax::prelude::stream::MapErr<St, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, F> Unpin for rustmax::prelude::stream::MapOk<St, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, FromA, FromB> Unpin for Unzip<St, FromA, FromB>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, FromA, FromB>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for All<St, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for rustmax::prelude::stream::AndThen<St, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for rustmax::prelude::stream::Any<St, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for rustmax::prelude::stream::Filter<St, Fut, F>
impl<'__pin, St, Fut, F> Unpin for rustmax::prelude::stream::FilterMap<St, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for ForEach<St, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for ForEachConcurrent<St, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for rustmax::prelude::stream::OrElse<St, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for rustmax::prelude::stream::SkipWhile<St, Fut, F>
impl<'__pin, St, Fut, F> Unpin for rustmax::prelude::stream::TakeWhile<St, Fut, F>
impl<'__pin, St, Fut, F> Unpin for rustmax::prelude::stream::Then<St, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for TryAll<St, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for TryAny<St, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for TryFilter<St, Fut, F>
impl<'__pin, St, Fut, F> Unpin for TryFilterMap<St, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for TryForEach<St, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for TryForEachConcurrent<St, Fut, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, F> Unpin for TrySkipWhile<St, Fut, F>
impl<'__pin, St, Fut, F> Unpin for TryTakeWhile<St, Fut, F>
impl<'__pin, St, Fut, T, F> Unpin for rustmax::prelude::stream::Fold<St, Fut, T, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, T, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut, T, F> Unpin for rustmax::prelude::stream::TryFold<St, Fut, T, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, Fut, T, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, Fut> Unpin for rustmax::prelude::stream::TakeUntil<St, Fut>
impl<'__pin, St, S, Fut, F> Unpin for rustmax::prelude::stream::Scan<St, S, Fut, F>
impl<'__pin, St, Si> Unpin for Forward<St, Si>
impl<'__pin, St, U, F> Unpin for rustmax::prelude::stream::FlatMap<St, U, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St, U, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St, U, F> Unpin for FlatMapUnordered<St, U, F>
impl<'__pin, St> Unpin for BufferUnordered<St>
impl<'__pin, St> Unpin for Buffered<St>
impl<'__pin, St> Unpin for rustmax::prelude::stream::CatchUnwind<St>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St> Unpin for rustmax::prelude::stream::Chunks<St>
impl<'__pin, St> Unpin for Concat<St>
impl<'__pin, St> Unpin for rustmax::prelude::stream::Count<St>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St> Unpin for rustmax::prelude::stream::Cycle<St>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St> Unpin for rustmax::prelude::stream::Enumerate<St>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St> Unpin for rustmax::prelude::stream::Flatten<St>
impl<'__pin, St> Unpin for rustmax::prelude::stream::Fuse<St>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St> Unpin for IntoAsyncRead<St>
impl<'__pin, St> Unpin for rustmax::prelude::stream::IntoStream<St>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St> Unpin for rustmax::prelude::stream::Peekable<St>
impl<'__pin, St> Unpin for ReadyChunks<St>
impl<'__pin, St> Unpin for rustmax::prelude::stream::Skip<St>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St> Unpin for rustmax::prelude::stream::Take<St>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, St>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, St> Unpin for TryBufferUnordered<St>
impl<'__pin, St> Unpin for TryBuffered<St>
impl<'__pin, St> Unpin for TryChunks<St>
impl<'__pin, St> Unpin for TryConcat<St>
impl<'__pin, St> Unpin for rustmax::prelude::stream::TryFlatten<St>
impl<'__pin, St> Unpin for TryFlattenUnordered<St>
impl<'__pin, St> Unpin for TryReadyChunks<St>
impl<'__pin, Svc, S> Unpin for CallAll<Svc, S>
impl<'__pin, Svc, S> Unpin for CallAllUnordered<Svc, S>
impl<'__pin, T, D> Unpin for FramedRead<T, D>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T, D>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T, E> Unpin for FramedWrite<T, E>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T, E>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T, F, Fut> Unpin for TryUnfold<T, F, Fut>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T, F, Fut>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T, F, Fut> Unpin for rustmax::prelude::stream::Unfold<T, F, Fut>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T, F, Fut>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T, F, R> Unpin for rustmax::prelude::sink::Unfold<T, F, R>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T, F, R>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T, F> Unpin for TaskLocalFuture<T, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
T: 'static,
impl<'__pin, T, F> Unpin for WithTrailers<T, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T, M> Unpin for Constant<T, M>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T, M>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T, S, E> Unpin for rustmax::hyper::server::conn::http2::Connection<T, S, E>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T, S, E>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
S: HttpService<Incoming>,
impl<'__pin, T, S> Unpin for rustmax::hyper::server::conn::http1::Connection<T, S>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T, S>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
S: HttpService<Incoming>,
impl<'__pin, T, U> Unpin for rustmax::futures::io::Chain<T, U>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T, U>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T, U> Unpin for rustmax::tokio::io::Chain<T, U>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T, U>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T, U> Unpin for Framed<T, U>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T, U>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T> Unpin for Abortable<T>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T> Unpin for http_body_util::combinators::collect::Collect<T>
impl<'__pin, T> Unpin for Instrumented<T>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T> Unpin for rustmax::prelude::future::PollImmediate<T>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T> Unpin for rustmax::tower::buffer::future::ResponseFuture<T>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T> Unpin for rustmax::tower::limit::concurrency::future::ResponseFuture<T>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T> Unpin for rustmax::tower::timeout::future::ResponseFuture<T>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T> Unpin for rustmax::tower::util::future::optional::ResponseFuture<T>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T> Unpin for ServiceList<T>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
T: IntoIterator,
impl<'__pin, T> Unpin for rustmax::tokio::time::Timeout<T>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T> Unpin for TokioIo<T>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, T> Unpin for WithDispatch<T>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, T>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, W, F> Unpin for InspectWriter<W, F>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, W, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, W, Item> Unpin for IntoSink<W, Item>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, W, Item>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, W> Unpin for rustmax::futures::io::BufWriter<W>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, W>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, W> Unpin for rustmax::tokio::io::BufWriter<W>where
<PinnedFieldsOfHelperStruct<__Origin<'__pin, W>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin, W> Unpin for rustmax::futures::io::LineWriter<W>where
W: AsyncWrite,
<PinnedFieldsOfHelperStruct<__Origin<'__pin, W>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin> Unpin for HandleErrorFuturewhere
<PinnedFieldsOfHelperStruct<__Origin<'__pin>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin> Unpin for InfallibleRouteFuturewhere
<PinnedFieldsOfHelperStruct<__Origin<'__pin>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<'__pin> Unpin for WaitForCancellationFutureOwnedwhere
<PinnedFieldsOfHelperStruct<__Origin<'__pin>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
impl<A, B> Unpin for rustmax::prelude::future::Select<A, B>
impl<A, B> Unpin for TrySelect<A, B>
impl<A, F> Unpin for rustmax::prelude::stream::RepeatWith<F>where
F: FnMut() -> A,
impl<B> Unpin for Collected<B>
impl<Dyn> Unpin for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<F> Unpin for rustmax::prelude::future::Lazy<F>
impl<F> Unpin for rustmax::prelude::future::PollFn<F>
impl<F> Unpin for rustmax::prelude::stream::PollFn<F>
impl<F> Unpin for rustmax::core::future::PollFn<F>where
F: Unpin,
impl<Fut> Unpin for FuturesUnordered<Fut>
impl<Fut> Unpin for MaybeDone<Fut>
impl<Fut> Unpin for rustmax::prelude::future::SelectAll<Fut>where
Fut: Unpin,
impl<Fut> Unpin for SelectOk<Fut>where
Fut: Unpin,
impl<Fut> Unpin for TryMaybeDone<Fut>
impl<I> Unpin for FromIter<I>
impl<I> Unpin for rustmax::prelude::stream::Iter<I>
impl<R> Unpin for FillBuf<'_, R>where
R: ?Sized,
impl<R> Unpin for Read<'_, R>
impl<R> Unpin for ReadExact<'_, R>
impl<R> Unpin for ReadLine<'_, R>
impl<R> Unpin for ReadToEnd<'_, R>
impl<R> Unpin for ReadToString<'_, R>
impl<R> Unpin for ReadUntil<'_, R>
impl<R> Unpin for ReadVectored<'_, R>
impl<S, B> Unpin for StreamReader<S, B>where
S: Unpin,
impl<S, Item> Unpin for SplitSink<S, Item>
impl<S, K, Req> Unpin for ReadyCache<K, S, Req>
impl<S> Unpin for Seek<'_, S>
impl<S> Unpin for SplitStream<S>
impl<Si, Item> Unpin for rustmax::prelude::sink::Close<'_, Si, Item>
impl<Si, Item> Unpin for Feed<'_, Si, Item>
impl<Si, Item> Unpin for rustmax::prelude::sink::Flush<'_, Si, Item>
impl<Si, Item> Unpin for Send<'_, Si, Item>
impl<Si, St> Unpin for SendAll<'_, Si, St>
impl<St> Unpin for rustmax::prelude::stream::Next<'_, St>
impl<St> Unpin for Recv<'_, St>
impl<St> Unpin for TryNext<'_, St>
impl<T, A> Unpin for Arc<T, A>
impl<T, A> Unpin for rustmax::alloc::boxed::Box<T, A>
impl<T, A> Unpin for Rc<T, A>
impl<T, A> Unpin for UniqueArc<T, A>
impl<T, A> Unpin for UniqueRc<T, A>
impl<T, F> Unpin for AlwaysReady<T, F>where
F: Fn() -> T,
impl<T, Request> Unpin for rustmax::tower::util::Ready<'_, T, Request>
impl<T, Request> Unpin for ReadyOneshot<T, Request>
impl<T> !Unpin for UnsafePinned<T>where
T: ?Sized,
When this type is used, that almost certainly means safe APIs need to use pinning to avoid the
aliases from becoming invalidated. Therefore let’s mark this as !Unpin. You can always opt
back in to Unpin with an impl block, provided your API is still sound while unpinned.