Trait frame_support::dispatch::marker::Unpin

1.33.0 · source ·
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 an &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.

Implementors§

1.33.0 · source§

impl !Unpin for PhantomPinned

source§

impl Unpin for LocalWaker

1.36.0 · source§

impl Unpin for Waker

source§

impl<'__pin, 'a, R, W> Unpin for Copy<'a, R, W>
where __Origin<'__pin, 'a, R, W>: Unpin, W: ?Sized,

source§

impl<'__pin, 'a, R, W> Unpin for CopyBuf<'a, R, W>
where __Origin<'__pin, 'a, R, W>: Unpin, W: ?Sized,

source§

impl<'__pin, 'a, R, W> Unpin for CopyBufAbortable<'a, R, W>
where __Origin<'__pin, 'a, R, W>: Unpin, W: ?Sized,

source§

impl<'__pin, 'a, St> Unpin for Peek<'a, St>
where St: Stream, __Origin<'__pin, 'a, St>: Unpin,

source§

impl<'__pin, 'a, St> Unpin for PeekMut<'a, St>
where St: Stream, __Origin<'__pin, 'a, St>: Unpin,

source§

impl<'__pin, 'a, St, F> Unpin for NextIf<'a, St, F>
where St: Stream, __Origin<'__pin, 'a, St, F>: Unpin,

source§

impl<'__pin, 'a, St, T> Unpin for NextIfEq<'a, St, T>
where St: Stream, __Origin<'__pin, 'a, St, T>: Unpin, T: ?Sized,

source§

impl<'__pin, F> Unpin for futures_util::future::future::Flatten<F>
where __Origin<'__pin, F>: Unpin, F: Future,

source§

impl<'__pin, F> Unpin for FlattenStream<F>
where __Origin<'__pin, F>: Unpin, F: Future,

source§

impl<'__pin, F> Unpin for futures_util::future::future::IntoStream<F>
where __Origin<'__pin, F>: Unpin,

source§

impl<'__pin, F> Unpin for OptionFuture<F>
where __Origin<'__pin, F>: Unpin,

source§

impl<'__pin, Fut1, Fut2> Unpin for Join<Fut1, Fut2>
where Fut1: Future, Fut2: Future, __Origin<'__pin, Fut1, Fut2>: Unpin,

source§

impl<'__pin, Fut1, Fut2> Unpin for futures_util::future::try_future::TryFlatten<Fut1, Fut2>
where __Origin<'__pin, Fut1, Fut2>: Unpin,

source§

impl<'__pin, Fut1, Fut2> Unpin for TryJoin<Fut1, Fut2>
where Fut1: TryFuture, Fut2: TryFuture, __Origin<'__pin, Fut1, Fut2>: Unpin,

source§

impl<'__pin, Fut1, Fut2, F> Unpin for futures_util::future::future::Then<Fut1, Fut2, F>
where __Origin<'__pin, Fut1, Fut2, F>: Unpin,

source§

impl<'__pin, Fut1, Fut2, F> Unpin for futures_util::future::try_future::AndThen<Fut1, Fut2, F>
where __Origin<'__pin, Fut1, Fut2, F>: Unpin,

source§

impl<'__pin, Fut1, Fut2, F> Unpin for futures_util::future::try_future::OrElse<Fut1, Fut2, F>
where __Origin<'__pin, Fut1, Fut2, F>: Unpin,

source§

impl<'__pin, Fut1, Fut2, Fut3> Unpin for Join3<Fut1, Fut2, Fut3>
where Fut1: Future, Fut2: Future, Fut3: Future, __Origin<'__pin, Fut1, Fut2, Fut3>: Unpin,

source§

impl<'__pin, Fut1, Fut2, Fut3> Unpin for TryJoin3<Fut1, Fut2, Fut3>
where Fut1: TryFuture, Fut2: TryFuture, Fut3: TryFuture, __Origin<'__pin, Fut1, Fut2, Fut3>: Unpin,

source§

impl<'__pin, Fut1, Fut2, Fut3, Fut4> Unpin for Join4<Fut1, Fut2, Fut3, Fut4>
where Fut1: Future, Fut2: Future, Fut3: Future, Fut4: Future, __Origin<'__pin, Fut1, Fut2, Fut3, Fut4>: Unpin,

source§

impl<'__pin, Fut1, Fut2, Fut3, Fut4> Unpin for TryJoin4<Fut1, Fut2, Fut3, Fut4>
where Fut1: TryFuture, Fut2: TryFuture, Fut3: TryFuture, Fut4: TryFuture, __Origin<'__pin, Fut1, Fut2, Fut3, Fut4>: Unpin,

source§

impl<'__pin, Fut1, Fut2, Fut3, Fut4, Fut5> Unpin for Join5<Fut1, Fut2, Fut3, Fut4, Fut5>
where Fut1: Future, Fut2: Future, Fut3: Future, Fut4: Future, Fut5: Future, __Origin<'__pin, Fut1, Fut2, Fut3, Fut4, Fut5>: Unpin,

source§

impl<'__pin, Fut1, Fut2, Fut3, Fut4, Fut5> Unpin for TryJoin5<Fut1, Fut2, Fut3, Fut4, Fut5>
where Fut1: TryFuture, Fut2: TryFuture, Fut3: TryFuture, Fut4: TryFuture, Fut5: TryFuture, __Origin<'__pin, Fut1, Fut2, Fut3, Fut4, Fut5>: Unpin,

source§

impl<'__pin, Fut> Unpin for futures_util::future::future::catch_unwind::CatchUnwind<Fut>
where __Origin<'__pin, Fut>: Unpin,

source§

impl<'__pin, Fut> Unpin for futures_util::future::future::fuse::Fuse<Fut>
where __Origin<'__pin, Fut>: Unpin,

source§

impl<'__pin, Fut> Unpin for Remote<Fut>
where Fut: Future, __Origin<'__pin, Fut>: Unpin,

source§

impl<'__pin, Fut> Unpin for NeverError<Fut>
where __Origin<'__pin, Fut>: Unpin,

source§

impl<'__pin, Fut> Unpin for UnitError<Fut>
where __Origin<'__pin, Fut>: Unpin,

source§

impl<'__pin, Fut> Unpin for IntoFuture<Fut>
where __Origin<'__pin, Fut>: Unpin,

source§

impl<'__pin, Fut> Unpin for TryFlattenStream<Fut>
where __Origin<'__pin, Fut>: Unpin, Fut: TryFuture,

source§

impl<'__pin, Fut> Unpin for Once<Fut>
where __Origin<'__pin, Fut>: Unpin,

source§

impl<'__pin, Fut, E> Unpin for futures_util::future::try_future::ErrInto<Fut, E>
where __Origin<'__pin, Fut, E>: Unpin,

source§

impl<'__pin, Fut, E> Unpin for OkInto<Fut, E>
where __Origin<'__pin, Fut, E>: Unpin,

source§

impl<'__pin, Fut, F> Unpin for futures_util::future::future::Inspect<Fut, F>
where __Origin<'__pin, Fut, F>: Unpin,

source§

impl<'__pin, Fut, F> Unpin for futures_util::future::future::Map<Fut, F>
where __Origin<'__pin, Fut, F>: Unpin,

source§

impl<'__pin, Fut, F> Unpin for futures_util::future::try_future::InspectErr<Fut, F>
where __Origin<'__pin, Fut, F>: Unpin,

source§

impl<'__pin, Fut, F> Unpin for futures_util::future::try_future::InspectOk<Fut, F>
where __Origin<'__pin, Fut, F>: Unpin,

source§

impl<'__pin, Fut, F> Unpin for futures_util::future::try_future::MapErr<Fut, F>
where __Origin<'__pin, Fut, F>: Unpin,

source§

impl<'__pin, Fut, F> Unpin for futures_util::future::try_future::MapOk<Fut, F>
where __Origin<'__pin, Fut, F>: Unpin,

source§

impl<'__pin, Fut, F> Unpin for UnwrapOrElse<Fut, F>
where __Origin<'__pin, Fut, F>: Unpin,

source§

impl<'__pin, Fut, F, G> Unpin for MapOkOrElse<Fut, F, G>
where __Origin<'__pin, Fut, F, G>: Unpin,

source§

impl<'__pin, Fut, Si> Unpin for FlattenSink<Fut, Si>
where __Origin<'__pin, Fut, Si>: Unpin,

source§

impl<'__pin, Fut, T> Unpin for MapInto<Fut, T>
where __Origin<'__pin, Fut, T>: Unpin,

source§

impl<'__pin, R> Unpin for BufReader<R>
where __Origin<'__pin, R>: Unpin,

source§

impl<'__pin, R> Unpin for Lines<R>
where __Origin<'__pin, R>: Unpin,

source§

impl<'__pin, R> Unpin for futures_util::io::take::Take<R>
where __Origin<'__pin, R>: Unpin,

source§

impl<'__pin, S> Unpin for futures_util::stream::poll_immediate::PollImmediate<S>
where __Origin<'__pin, S>: Unpin,

source§

impl<'__pin, Si1, Si2> Unpin for Fanout<Si1, Si2>
where __Origin<'__pin, Si1, Si2>: Unpin,

source§

impl<'__pin, Si, F> Unpin for SinkMapErr<Si, F>
where __Origin<'__pin, Si, F>: Unpin,

source§

impl<'__pin, Si, Item> Unpin for Buffer<Si, Item>
where __Origin<'__pin, Si, Item>: Unpin,

source§

impl<'__pin, Si, Item, E> Unpin for SinkErrInto<Si, Item, E>
where Si: Sink<Item>, __Origin<'__pin, Si, Item, E>: Unpin,

source§

impl<'__pin, Si, Item, U, Fut, F> Unpin for With<Si, Item, U, Fut, F>
where __Origin<'__pin, Si, Item, U, Fut, F>: Unpin,

source§

impl<'__pin, Si, Item, U, St, F> Unpin for WithFlatMap<Si, Item, U, St, F>
where __Origin<'__pin, Si, Item, U, St, F>: Unpin,

source§

impl<'__pin, St1, St2> Unpin for futures_util::stream::select::Select<St1, St2>
where __Origin<'__pin, St1, St2>: Unpin,

source§

impl<'__pin, St1, St2> Unpin for futures_util::stream::stream::chain::Chain<St1, St2>
where __Origin<'__pin, St1, St2>: Unpin,

source§

impl<'__pin, St1, St2> Unpin for Zip<St1, St2>
where St1: Stream, St2: Stream, __Origin<'__pin, St1, St2>: Unpin,

source§

impl<'__pin, St1, St2, Clos, State> Unpin for SelectWithStrategy<St1, St2, Clos, State>
where __Origin<'__pin, St1, St2, Clos, State>: Unpin,

source§

impl<'__pin, St> Unpin for BufferUnordered<St>
where __Origin<'__pin, St>: Unpin, St: Stream,

source§

impl<'__pin, St> Unpin for Buffered<St>
where __Origin<'__pin, St>: Unpin, St: Stream, <St as Stream>::Item: Future,

source§

impl<'__pin, St> Unpin for futures_util::stream::stream::catch_unwind::CatchUnwind<St>
where __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for Chunks<St>
where St: Stream, __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for Concat<St>
where St: Stream, __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for Count<St>
where __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for Cycle<St>
where __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for Enumerate<St>
where __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for futures_util::stream::stream::fuse::Fuse<St>
where __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for Peekable<St>
where St: Stream, __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for ReadyChunks<St>
where St: Stream, __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for Skip<St>
where __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for futures_util::stream::stream::Flatten<St>
where __Origin<'__pin, St>: Unpin, St: Stream,

source§

impl<'__pin, St> Unpin for futures_util::stream::stream::take::Take<St>
where __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for IntoAsyncRead<St>
where __Origin<'__pin, St>: Unpin, St: TryStream<Error = Error>, <St as TryStream>::Ok: AsRef<[u8]>,

source§

impl<'__pin, St> Unpin for futures_util::stream::try_stream::into_stream::IntoStream<St>
where __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for TryBufferUnordered<St>
where __Origin<'__pin, St>: Unpin, St: TryStream,

source§

impl<'__pin, St> Unpin for TryBuffered<St>
where __Origin<'__pin, St>: Unpin, St: TryStream, <St as TryStream>::Ok: TryFuture,

source§

impl<'__pin, St> Unpin for TryChunks<St>
where St: TryStream, __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for TryConcat<St>
where St: TryStream, __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St> Unpin for futures_util::stream::try_stream::try_flatten::TryFlatten<St>
where __Origin<'__pin, St>: Unpin, St: TryStream,

source§

impl<'__pin, St> Unpin for TryFlattenUnordered<St>
where __Origin<'__pin, St>: Unpin, St: TryStream, <St as TryStream>::Ok: TryStream + Unpin, <<St as TryStream>::Ok as TryStream>::Error: From<<St as TryStream>::Error>,

source§

impl<'__pin, St> Unpin for TryReadyChunks<St>
where St: TryStream, __Origin<'__pin, St>: Unpin,

source§

impl<'__pin, St, C> Unpin for Collect<St, C>
where __Origin<'__pin, St, C>: Unpin,

source§

impl<'__pin, St, C> Unpin for TryCollect<St, C>
where __Origin<'__pin, St, C>: Unpin,

source§

impl<'__pin, St, E> Unpin for futures_util::stream::try_stream::ErrInto<St, E>
where __Origin<'__pin, St, E>: Unpin,

source§

impl<'__pin, St, F> Unpin for futures_util::stream::stream::map::Map<St, F>
where __Origin<'__pin, St, F>: Unpin,

source§

impl<'__pin, St, F> Unpin for futures_util::stream::stream::Inspect<St, F>
where __Origin<'__pin, St, F>: Unpin,

source§

impl<'__pin, St, F> Unpin for futures_util::stream::try_stream::InspectErr<St, F>
where __Origin<'__pin, St, F>: Unpin,

source§

impl<'__pin, St, F> Unpin for futures_util::stream::try_stream::InspectOk<St, F>
where __Origin<'__pin, St, F>: Unpin,

source§

impl<'__pin, St, F> Unpin for futures_util::stream::try_stream::MapErr<St, F>
where __Origin<'__pin, St, F>: Unpin,

source§

impl<'__pin, St, F> Unpin for futures_util::stream::try_stream::MapOk<St, F>
where __Origin<'__pin, St, F>: Unpin,

source§

impl<'__pin, St, FromA, FromB> Unpin for Unzip<St, FromA, FromB>
where __Origin<'__pin, St, FromA, FromB>: Unpin,

source§

impl<'__pin, St, Fut> Unpin for TakeUntil<St, Fut>
where St: Stream, Fut: Future, __Origin<'__pin, St, Fut>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for All<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for Any<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for Filter<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin, St: Stream,

source§

impl<'__pin, St, Fut, F> Unpin for FilterMap<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for ForEach<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for ForEachConcurrent<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for SkipWhile<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin, St: Stream,

source§

impl<'__pin, St, Fut, F> Unpin for TakeWhile<St, Fut, F>
where St: Stream, __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for futures_util::stream::stream::then::Then<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for futures_util::stream::try_stream::and_then::AndThen<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for futures_util::stream::try_stream::or_else::OrElse<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for TryAll<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for TryAny<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for TryFilter<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin, St: TryStream,

source§

impl<'__pin, St, Fut, F> Unpin for TryFilterMap<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for TryForEach<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for TryForEachConcurrent<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin,

source§

impl<'__pin, St, Fut, F> Unpin for TrySkipWhile<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin, St: TryStream,

source§

impl<'__pin, St, Fut, F> Unpin for TryTakeWhile<St, Fut, F>
where __Origin<'__pin, St, Fut, F>: Unpin, St: TryStream,

source§

impl<'__pin, St, Fut, T, F> Unpin for Fold<St, Fut, T, F>
where __Origin<'__pin, St, Fut, T, F>: Unpin,

source§

impl<'__pin, St, Fut, T, F> Unpin for TryFold<St, Fut, T, F>
where __Origin<'__pin, St, Fut, T, F>: Unpin,

source§

impl<'__pin, St, S, Fut, F> Unpin for Scan<St, S, Fut, F>
where St: Stream, __Origin<'__pin, St, S, Fut, F>: Unpin,

source§

impl<'__pin, St, Si> Unpin for Forward<St, Si>
where __Origin<'__pin, St, Si>: Unpin, St: TryStream,

source§

impl<'__pin, St, U, F> Unpin for FlatMap<St, U, F>
where __Origin<'__pin, St, U, F>: Unpin,

source§

impl<'__pin, St, U, F> Unpin for FlatMapUnordered<St, U, F>
where __Origin<'__pin, St, U, F>: Unpin, St: Stream, U: Stream + Unpin, F: FnMut(<St as Stream>::Item) -> U,

source§

impl<'__pin, T> Unpin for Abortable<T>
where __Origin<'__pin, T>: Unpin,

source§

impl<'__pin, T> Unpin for futures_util::future::poll_immediate::PollImmediate<T>
where __Origin<'__pin, T>: Unpin,

source§

impl<'__pin, T> Unpin for Instrumented<T>
where __Origin<'__pin, T>: Unpin,

source§

impl<'__pin, T> Unpin for WithDispatch<T>
where __Origin<'__pin, T>: Unpin,

source§

impl<'__pin, T, F, Fut> Unpin for TryUnfold<T, F, Fut>
where __Origin<'__pin, T, F, Fut>: Unpin,

source§

impl<'__pin, T, F, Fut> Unpin for futures_util::stream::unfold::Unfold<T, F, Fut>
where __Origin<'__pin, T, F, Fut>: Unpin,

source§

impl<'__pin, T, F, R> Unpin for futures_util::sink::unfold::Unfold<T, F, R>
where __Origin<'__pin, T, F, R>: Unpin,

source§

impl<'__pin, T, U> Unpin for futures_util::io::chain::Chain<T, U>
where __Origin<'__pin, T, U>: Unpin,

source§

impl<'__pin, W> Unpin for BufWriter<W>
where __Origin<'__pin, W>: Unpin,

source§

impl<'__pin, W> Unpin for LineWriter<W>
where W: AsyncWrite, __Origin<'__pin, W>: Unpin,

source§

impl<'__pin, W, Item> Unpin for IntoSink<W, Item>
where __Origin<'__pin, W, Item>: Unpin,

source§

impl<A, B> Unpin for futures_util::future::select::Select<A, B>
where A: Unpin, B: Unpin,

source§

impl<A, B> Unpin for TrySelect<A, B>
where A: Unpin, B: Unpin,

source§

impl<A, F> Unpin for RepeatWith<F>
where F: FnMut() -> A,

source§

impl<A, O> Unpin for BitArray<A, O>
where A: BitViewSized, O: BitOrder,

source§

impl<Dyn> Unpin for DynMetadata<Dyn>
where Dyn: ?Sized,

source§

impl<F> Unpin for Lazy<F>

source§

impl<F> Unpin for futures_util::future::poll_fn::PollFn<F>

source§

impl<F> Unpin for futures_util::stream::poll_fn::PollFn<F>

1.64.0 · source§

impl<F> Unpin for core::future::poll_fn::PollFn<F>
where F: Unpin,

source§

impl<Fut> Unpin for MaybeDone<Fut>
where Fut: Future + Unpin,

source§

impl<Fut> Unpin for TryMaybeDone<Fut>
where Fut: TryFuture + Unpin,

source§

impl<Fut> Unpin for SelectAll<Fut>
where Fut: Unpin,

source§

impl<Fut> Unpin for SelectOk<Fut>
where Fut: Unpin,

source§

impl<Fut> Unpin for FuturesUnordered<Fut>

source§

impl<I> Unpin for futures_util::stream::iter::Iter<I>

source§

impl<I> Unpin for FromIter<I>

source§

impl<R> Unpin for FillBuf<'_, R>
where R: ?Sized,

source§

impl<R> Unpin for Read<'_, R>
where R: Unpin + ?Sized,

source§

impl<R> Unpin for ReadExact<'_, R>
where R: Unpin + ?Sized,

source§

impl<R> Unpin for ReadLine<'_, R>
where R: Unpin + ?Sized,

source§

impl<R> Unpin for ReadToEnd<'_, R>
where R: Unpin + ?Sized,

source§

impl<R> Unpin for ReadToString<'_, R>
where R: Unpin + ?Sized,

source§

impl<R> Unpin for ReadUntil<'_, R>
where R: Unpin + ?Sized,

source§

impl<R> Unpin for ReadVectored<'_, R>
where R: Unpin + ?Sized,

source§

impl<S> Unpin for Seek<'_, S>
where S: Unpin + ?Sized,

source§

impl<S> Unpin for SplitStream<S>

source§

impl<S, Item> Unpin for SplitSink<S, Item>

source§

impl<Si, Item> Unpin for futures_util::sink::close::Close<'_, Si, Item>
where Si: Unpin + ?Sized,

source§

impl<Si, Item> Unpin for Feed<'_, Si, Item>
where Si: Unpin + ?Sized,

source§

impl<Si, Item> Unpin for futures_util::sink::flush::Flush<'_, Si, Item>
where Si: Unpin + ?Sized,

source§

impl<Si, Item> Unpin for Send<'_, Si, Item>
where Si: Unpin + ?Sized,

source§

impl<Si, St> Unpin for SendAll<'_, Si, St>
where Si: Unpin + ?Sized, St: TryStream + Unpin + ?Sized,

source§

impl<St> Unpin for Next<'_, St>
where St: Unpin + ?Sized,

source§

impl<St> Unpin for TryNext<'_, St>
where St: Unpin + ?Sized,

1.38.0 · source§

impl<T> Unpin for *const T
where T: ?Sized,

1.38.0 · source§

impl<T> Unpin for *mut T
where T: ?Sized,

1.33.0 · source§

impl<T> Unpin for &T
where T: ?Sized,

1.33.0 · source§

impl<T> Unpin for &mut T
where T: ?Sized,

source§

impl<T> Unpin for futures_channel::mpsc::Receiver<T>

source§

impl<T> Unpin for UnboundedReceiver<T>

source§

impl<T> Unpin for futures_channel::oneshot::Receiver<T>

source§

impl<T> Unpin for Sender<T>

source§

impl<T> Unpin for FutureObj<'_, T>

source§

impl<T> Unpin for LocalFutureObj<'_, T>

source§

impl<T> Unpin for futures_util::future::pending::Pending<T>

source§

impl<T> Unpin for futures_util::future::ready::Ready<T>

source§

impl<T> Unpin for AllowStdIo<T>

source§

impl<T> Unpin for BiLockAcquire<'_, T>

source§

impl<T> Unpin for Drain<T>

source§

impl<T> Unpin for Empty<T>

source§

impl<T> Unpin for FuturesOrdered<T>
where T: Future,

source§

impl<T> Unpin for futures_util::stream::pending::Pending<T>

source§

impl<T> Unpin for Repeat<T>

1.48.0 · source§

impl<T> Unpin for core::future::ready::Ready<T>

1.28.0 · source§

impl<T> Unpin for NonZero<T>

source§

impl<T, A> Unpin for allocator_api2::stable::boxed::Box<T, A>
where A: Allocator + 'static, T: ?Sized,

1.33.0 · source§

impl<T, A> Unpin for alloc::boxed::Box<T, A>
where A: Allocator, T: ?Sized,

1.33.0 · source§

impl<T, A> Unpin for Rc<T, A>
where A: Allocator, T: ?Sized,

1.33.0 · source§

impl<T, A> Unpin for Arc<T, A>
where A: Allocator, T: ?Sized,

source§

impl<T, F> Unpin for AlwaysReady<T, F>
where F: Fn() -> T,

source§

impl<T, O> Unpin for BitSlice<T, O>
where T: BitStore, O: BitOrder,

source§

impl<W> Unpin for futures_util::io::close::Close<'_, W>
where W: Unpin + ?Sized,

source§

impl<W> Unpin for futures_util::io::flush::Flush<'_, W>
where W: Unpin + ?Sized,

source§

impl<W> Unpin for Write<'_, W>
where W: Unpin + ?Sized,

source§

impl<W> Unpin for WriteAll<'_, W>
where W: Unpin + ?Sized,

source§

impl<W> Unpin for WriteVectored<'_, W>
where W: Unpin + ?Sized,

Auto implementors§

§

impl Unpin for Never

§

impl Unpin for Void

§

impl Unpin for DispatchError

§

impl Unpin for InvalidTransaction

§

impl Unpin for TransactionSource

§

impl Unpin for TransactionValidityError

§

impl Unpin for UnknownTransaction

§

impl Unpin for ChildInfo

§

impl Unpin for ChildType

§

impl Unpin for KillStorageResult

§

impl Unpin for StateVersion

§

impl Unpin for Everything

§

impl Unpin for ExecuteOverweightError

§

impl Unpin for Nothing

§

impl Unpin for ProcessMessageError

§

impl Unpin for frame_support::traits::TryStateSelect

§

impl Unpin for UpgradeCheckSelect

§

impl Unpin for LookupError

§

impl Unpin for BalanceStatus

§

impl Unpin for DepositConsequence

§

impl Unpin for ExistenceRequirement

§

impl Unpin for Fortitude

§

impl Unpin for Precision

§

impl Unpin for Preservation

§

impl Unpin for Provenance

§

impl Unpin for Restriction

§

impl Unpin for PaymentStatus

§

impl Unpin for DispatchClass

§

impl Unpin for Pays

§

impl Unpin for Alignment

§

impl Unpin for CheckInherentsResult

§

impl Unpin for Instance1

§

impl Unpin for GetDefault

§

impl Unpin for InherentData

§

impl Unpin for ValidTransaction

§

impl Unpin for Weight

§

impl Unpin for MultiRemovalResults

§

impl Unpin for StorageNoopGuard

§

impl Unpin for OptionQuery

§

impl Unpin for ValueQuery

§

impl Unpin for Blake2_128

§

impl Unpin for Blake2_128Concat

§

impl Unpin for Blake2_256

§

impl Unpin for Identity

§

impl Unpin for OpaqueMetadata

§

impl Unpin for PalletId

§

impl Unpin for Twox64Concat

§

impl Unpin for Twox128

§

impl Unpin for Twox256

§

impl Unpin for Backing

§

impl Unpin for CallMetadata

§

impl Unpin for CrateVersion

§

impl Unpin for EqualPrivilegeOnly

§

impl Unpin for Footprint

§

impl Unpin for NoStorageVersionSet

§

impl Unpin for PalletInfoData

§

impl Unpin for StorageInfo

§

impl Unpin for StorageVersion

§

impl Unpin for TrackedStorageKey

§

impl Unpin for WithdrawReasons

§

impl Unpin for BlockExecutionWeight

§

impl Unpin for ExtrinsicBaseWeight

§

impl Unpin for ParityDbWeight

§

impl Unpin for RocksDbWeight

§

impl Unpin for OldWeight

§

impl Unpin for RuntimeDbWeight

§

impl Unpin for WeightMeter

§

impl Unpin for Error

§

impl Unpin for DispatchInfo

§

impl Unpin for PostDispatchInfo

§

impl Unpin for Maybe

§

impl Unpin for NoRuntime

§

impl Unpin for Runtime

§

impl<'a> Unpin for Arguments<'a>

§

impl<'a> Unpin for Formatter<'a>

§

impl<'a, 'b> Unpin for DebugList<'a, 'b>

§

impl<'a, 'b> Unpin for DebugMap<'a, 'b>

§

impl<'a, 'b> Unpin for DebugSet<'a, 'b>

§

impl<'a, 'b> Unpin for DebugStruct<'a, 'b>

§

impl<'a, 'b> Unpin for DebugTuple<'a, 'b>

§

impl<'a, T> Unpin for Value<'a, T>
where T: Unpin,

§

impl<'a, T> Unpin for frame_support::dispatch::result::Iter<'a, T>

§

impl<'a, T> Unpin for IterMut<'a, T>

§

impl<'a, T, S> Unpin for BoundedSlice<'a, T, S>
where S: Unpin,

§

impl<A, B> Unpin for SameOrOther<A, B>
where A: Unpin, B: Unpin,

§

impl<A, B, OnDrop, OppositeOnDrop> Unpin for frame_support::traits::tokens::fungibles::Imbalance<A, B, OnDrop, OppositeOnDrop>
where A: Unpin, B: Unpin, OnDrop: Unpin, OppositeOnDrop: Unpin,

§

impl<A, T> Unpin for frame_support::traits::tokens::fungible::Dust<A, T>
where <T as Inspect<A>>::Balance: Unpin,

§

impl<A, T> Unpin for frame_support::traits::tokens::fungibles::Dust<A, T>
where <T as Inspect<A>>::AssetId: Unpin, <T as Inspect<A>>::Balance: Unpin,

§

impl<AccountId> Unpin for RawOrigin<AccountId>
where AccountId: Unpin,

§

impl<AccountId, U> Unpin for frame_support::traits::tokens::fungible::DecreaseIssuance<AccountId, U>
where AccountId: Unpin, U: Unpin,

§

impl<AccountId, U> Unpin for frame_support::traits::tokens::fungible::IncreaseIssuance<AccountId, U>
where AccountId: Unpin, U: Unpin,

§

impl<AccountId, U> Unpin for frame_support::traits::tokens::fungibles::DecreaseIssuance<AccountId, U>
where AccountId: Unpin, U: Unpin,

§

impl<AccountId, U> Unpin for frame_support::traits::tokens::fungibles::IncreaseIssuance<AccountId, U>
where AccountId: Unpin, U: Unpin,

§

impl<B, OnDrop, OppositeOnDrop> Unpin for frame_support::traits::tokens::fungible::Imbalance<B, OnDrop, OppositeOnDrop>
where B: Unpin, OnDrop: Unpin, OppositeOnDrop: Unpin,

§

impl<B, PositiveImbalance> Unpin for SignedImbalance<B, PositiveImbalance>
where PositiveImbalance: Unpin, <PositiveImbalance as Imbalance<B>>::Opposite: Unpin,

§

impl<Balance> Unpin for WithdrawConsequence<Balance>
where Balance: Unpin,

§

impl<Balance> Unpin for FeePolynomial<Balance>
where Balance: Unpin,

§

impl<Balance> Unpin for WeightToFeeCoefficient<Balance>
where Balance: Unpin,

§

impl<Balance, Imbalance, Target1, Target2, const PART1: u32, const PART2: u32> Unpin for SplitTwoWays<Balance, Imbalance, Target1, Target2, PART1, PART2>
where Balance: Unpin, Imbalance: Unpin, Target1: Unpin, Target2: Unpin,

§

impl<BlockNumber> Unpin for DispatchTime<BlockNumber>
where BlockNumber: Unpin,

§

impl<C, A> Unpin for ActiveIssuanceOf<C, A>
where C: Unpin, A: Unpin,

§

impl<C, A> Unpin for TotalIssuanceOf<C, A>
where C: Unpin, A: Unpin,

§

impl<CP> Unpin for FromContainsPair<CP>
where CP: Unpin,

§

impl<E> Unpin for MakeFatalError<E>
where E: Unpin,

§

impl<E, O, N, C> Unpin for TransformOrigin<E, O, N, C>
where E: Unpin, O: Unpin, N: Unpin, C: Unpin,

§

impl<EO> Unpin for AsEnsureOriginWithArg<EO>
where EO: Unpin,

§

impl<Error> Unpin for ResultQuery<Error>
where Error: Unpin,

§

impl<Exclude> Unpin for EverythingBut<Exclude>
where Exclude: Unpin,

§

impl<F> Unpin for FormatterFn<F>
where F: Unpin,

§

impl<F, A> Unpin for PayFromAccount<F, A>
where F: Unpin, A: Unpin,

§

impl<F, A, AccountId> Unpin for frame_support::traits::tokens::fungible::ItemOf<F, A, AccountId>
where F: Unpin, A: Unpin, AccountId: Unpin,

§

impl<F, A, AccountId> Unpin for frame_support::traits::tokens::nonfungible::ItemOf<F, A, AccountId>
where F: Unpin, A: Unpin, AccountId: Unpin,

§

impl<F, A, AccountId> Unpin for frame_support::traits::tokens::nonfungible_v2::ItemOf<F, A, AccountId>
where F: Unpin, A: Unpin, AccountId: Unpin,

§

impl<F, T> Unpin for ClearFilterGuard<F, T>
where <F as FilterStack<T>>::Stack: Unpin, T: Unpin,

§

impl<F, T> Unpin for FilterStackGuard<F, T>
where F: Unpin, T: Unpin,

§

impl<Hasher, KeyType> Unpin for Key<Hasher, KeyType>
where Hasher: Unpin, KeyType: Unpin,

§

impl<K, T, H> Unpin for StorageKeyIterator<K, T, H>
where K: Unpin, T: Unpin, H: Unpin,

§

impl<K, V, S> Unpin for BoundedBTreeMap<K, V, S>
where S: Unpin,

§

impl<L, R> Unpin for EitherOf<L, R>
where L: Unpin, R: Unpin,

§

impl<L, R> Unpin for EitherOfDiverse<L, R>
where L: Unpin, R: Unpin,

§

impl<M> Unpin for KeyLenOf<M>
where M: Unpin,

§

impl<O, A, Morph, Inner, Success> Unpin for TryWithMorphedArg<O, A, Morph, Inner, Success>
where O: Unpin, A: Unpin, Morph: Unpin, Inner: Unpin, Success: Unpin,

§

impl<OM> Unpin for AsContains<OM>
where OM: Unpin,

§

impl<Orig, Mutator> Unpin for TryMapSuccess<Orig, Mutator>
where Orig: Unpin, Mutator: Unpin,

§

impl<Origin, PrivilegeCmp> Unpin for EnsureOriginEqualOrHigherPrivilege<Origin, PrivilegeCmp>
where Origin: Unpin, PrivilegeCmp: Unpin,

§

impl<Original, Mutator> Unpin for MapSuccess<Original, Mutator>
where Original: Unpin, Mutator: Unpin,

§

impl<OverweightAddr> Unpin for NoopServiceQueues<OverweightAddr>
where OverweightAddr: Unpin,

§

impl<P, DbWeight> Unpin for RemovePallet<P, DbWeight>
where P: Unpin, DbWeight: Unpin,

§

impl<P, T> Unpin for ClassCountOf<P, T>
where P: Unpin, T: Unpin,

§

impl<Prefix, Hasher1, Key1, Hasher2, Key2, Value, QueryKind, OnEmpty, MaxValues> Unpin for StorageDoubleMap<Prefix, Hasher1, Key1, Hasher2, Key2, Value, QueryKind, OnEmpty, MaxValues>
where Prefix: Unpin, Hasher1: Unpin, Key1: Unpin, Hasher2: Unpin, Key2: Unpin, Value: Unpin, QueryKind: Unpin, OnEmpty: Unpin, MaxValues: Unpin,

§

impl<Prefix, Hasher, Key, Value, QueryKind, OnEmpty, MaxValues> Unpin for CountedStorageMap<Prefix, Hasher, Key, Value, QueryKind, OnEmpty, MaxValues>
where Prefix: Unpin, Hasher: Unpin, Key: Unpin, Value: Unpin, QueryKind: Unpin, OnEmpty: Unpin, MaxValues: Unpin,

§

impl<Prefix, Hasher, Key, Value, QueryKind, OnEmpty, MaxValues> Unpin for StorageMap<Prefix, Hasher, Key, Value, QueryKind, OnEmpty, MaxValues>
where Prefix: Unpin, Hasher: Unpin, Key: Unpin, Value: Unpin, QueryKind: Unpin, OnEmpty: Unpin, MaxValues: Unpin,

§

impl<Prefix, Key, Value, QueryKind, OnEmpty, MaxValues> Unpin for StorageNMap<Prefix, Key, Value, QueryKind, OnEmpty, MaxValues>
where Prefix: Unpin, Key: Unpin, Value: Unpin, QueryKind: Unpin, OnEmpty: Unpin, MaxValues: Unpin,

§

impl<Prefix, Value, QueryKind, OnEmpty> Unpin for StorageValue<Prefix, Value, QueryKind, OnEmpty>
where Prefix: Unpin, Value: Unpin, QueryKind: Unpin, OnEmpty: Unpin,

§

impl<R> Unpin for TransactionOutcome<R>
where R: Unpin,

§

impl<S, K, T> Unpin for StorageMapShim<S, K, T>
where S: Unpin, K: Unpin, T: Unpin,

§

impl<Success> Unpin for NeverEnsureOrigin<Success>
where Success: Unpin,

§

impl<T> Unpin for Bounded<T>
where T: Unpin,

§

impl<T> Unpin for PhantomData<T>
where T: Unpin + ?Sized,

§

impl<T> Unpin for StorageIterator<T>
where T: Unpin,

§

impl<T> Unpin for ChildTriePrefixIterator<T>

§

impl<T> Unpin for KeyPrefixIterator<T>

§

impl<T> Unpin for IsInVec<T>
where T: Unpin,

§

impl<T> Unpin for WrapperKeepOpaque<T>
where T: Unpin,

§

impl<T> Unpin for WrapperOpaque<T>
where T: Unpin,

§

impl<T> Unpin for IdentityFee<T>
where T: Unpin,

§

impl<T> Unpin for IntoIter<T>
where T: Unpin,

§

impl<T> Unpin for PerDispatchClass<T>
where T: Unpin,

§

impl<T, A> Unpin for Vec<T, A>
where A: Unpin, T: Unpin,

§

impl<T, E> Unpin for Result<T, E>
where T: Unpin, E: Unpin,

§

impl<T, Hash> Unpin for MaybeHashed<T, Hash>
where T: Unpin, Hash: Unpin,

§

impl<T, M> Unpin for ConstantMultiplier<T, M>
where T: Unpin, M: Unpin,

§

impl<T, OnRemoval> Unpin for PrefixIterator<T, OnRemoval>
where OnRemoval: Unpin,

§

impl<T, S> Unpin for BoundedBTreeSet<T, S>
where S: Unpin,

§

impl<T, S> Unpin for BoundedVec<T, S>
where S: Unpin, T: Unpin,

§

impl<T, S> Unpin for WeakBoundedVec<T, S>
where S: Unpin, T: Unpin,

§

impl<Tally, Moment, Class> Unpin for PollStatus<Tally, Moment, Class>
where Tally: Unpin, Class: Unpin, Moment: Unpin,

§

impl<These, Except> Unpin for TheseExcept<These, Except>
where These: Unpin, Except: Unpin,

§

impl<These, Those> Unpin for InsideBoth<These, Those>
where These: Unpin, Those: Unpin,

§

impl<const T: bool> Unpin for ConstBool<T>

§

impl<const T: i8> Unpin for ConstI8<T>

§

impl<const T: i16> Unpin for ConstI16<T>

§

impl<const T: i32> Unpin for ConstI32<T>

§

impl<const T: i64> Unpin for ConstI64<T>

§

impl<const T: i128> Unpin for ConstI128<T>

§

impl<const T: u8> Unpin for ConstU8<T>

§

impl<const T: u16> Unpin for ConstU16<T>

§

impl<const T: u32> Unpin for ConstU32<T>

§

impl<const T: u64> Unpin for ConstU64<T>

§

impl<const T: u128> Unpin for ConstU128<T>