Skip to main content

Unpin

Trait 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 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§

1.33.0 · Source§

impl !Unpin for PhantomPinned

Source§

impl Unpin for LocalWaker

1.36.0 · Source§

impl Unpin for Waker

Source§

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

1.64.0 · Source§

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

Source§

impl<I> Unpin for FromIter<I>

1.33.0 · Source§

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

1.33.0 · Source§

impl<T, A> Unpin for 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,

Source§

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

Source§

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

Source§

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.

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 *const T is !null
where T: ?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.28.0 · Source§

impl<T> Unpin for NonZero<T>

1.48.0 · Source§

impl<T> Unpin for Ready<T>

Auto implementors§

§

impl Unpin for Abi

§

impl Unpin for AccessError

§

impl Unpin for AddrParseError

§

impl Unpin for std::mem::Alignment

§

impl Unpin for std::fmt::Alignment

§

impl Unpin for AllocError

§

impl Unpin for AncillaryError

§

impl Unpin for Args

§

impl Unpin for ArgsOs

§

impl Unpin for Array

§

impl Unpin for AsciiChar

§

impl Unpin for Assume

§

impl Unpin for AtomicOrdering

§

impl Unpin for Backtrace

§

impl Unpin for BacktraceFrame

§

impl Unpin for BacktraceStatus

§

impl Unpin for BacktraceStyle

§

impl Unpin for Barrier

§

impl Unpin for BarrierWaitResult

§

impl Unpin for BasicBlock

§

impl Unpin for BorrowError

§

impl Unpin for BorrowMutError

§

impl Unpin for Builder

§

impl Unpin for ByteStr

§

impl Unpin for ByteString

§

impl Unpin for CStr

§

impl Unpin for CString

§

impl Unpin for CharCase

§

impl Unpin for CharTryFromError

§

impl Unpin for Child

§

impl Unpin for ChildStderr

§

impl Unpin for ChildStdin

§

impl Unpin for ChildStdout

§

impl Unpin for Command

§

impl Unpin for CommandResolvedEnvs

§

impl Unpin for std::sync::nonpoison::Condvar

§

impl Unpin for std::sync::Condvar

§

impl Unpin for Const

§

impl Unpin for DebugAsHex

§

impl Unpin for DecodeUtf16Error

§

impl Unpin for DefaultHasher

§

impl Unpin for Dir

§

impl Unpin for DirBuilder

§

impl Unpin for DirEntry

§

impl Unpin for Duration

§

impl Unpin for DynTrait

§

impl Unpin for DynTraitPredicate

§

impl Unpin for std::io::Empty

§

impl Unpin for std::io::Error

§

impl Unpin for std::fmt::Error

§

impl Unpin for ErrorKind

§

impl Unpin for std::char::EscapeDebug

§

impl Unpin for std::ascii::EscapeDefault

§

impl Unpin for std::char::EscapeDefault

§

impl Unpin for std::char::EscapeUnicode

§

impl Unpin for ExitCode

§

impl Unpin for ExitStatus

§

impl Unpin for ExitStatusError

§

impl Unpin for FieldId

§

impl Unpin for File

§

impl Unpin for FileTimes

§

impl Unpin for FileType

§

impl Unpin for FnPtr

§

impl Unpin for FormattingOptions

§

impl Unpin for FpCategory

§

impl Unpin for FromBytesUntilNulError

§

impl Unpin for FromBytesWithNulError

§

impl Unpin for FromUtf8Error

§

impl Unpin for FromUtf16Error

§

impl Unpin for FromVecWithNulError

§

impl Unpin for Generic

§

impl Unpin for GenericType

§

impl Unpin for GetDisjointMutError

§

impl Unpin for Global

§

impl Unpin for HandleOrInvalid

§

impl Unpin for HandleOrNull

§

impl Unpin for Instant

§

impl Unpin for IntErrorKind

§

impl Unpin for IntoChars

§

impl Unpin for IntoIncoming

§

impl Unpin for IntoStringError

§

impl Unpin for InvalidHandleError

§

impl Unpin for IpAddr

§

impl Unpin for Ipv4Addr

§

impl Unpin for Ipv6Addr

§

impl Unpin for Ipv6MulticastScope

§

impl Unpin for JoinPathsError

§

impl Unpin for Layout

§

impl Unpin for LayoutError

§

impl Unpin for Lifetime

§

impl Unpin for Locality

§

impl Unpin for Metadata

§

impl Unpin for NormalizeError

§

impl Unpin for NulError

§

impl Unpin for NullHandleError

§

impl Unpin for std::sync::Once

§

impl Unpin for OnceState

§

impl Unpin for OneSidedRangeBound

§

impl Unpin for OpenOptions

§

impl Unpin for std::sync::atomic::Ordering

§

impl Unpin for std::cmp::Ordering

§

impl Unpin for OsStr

§

impl Unpin for OsString

§

impl Unpin for Output

§

impl Unpin for OwnedFd

§

impl Unpin for OwnedHandle

§

impl Unpin for OwnedSocket

§

impl Unpin for ParseBoolError

§

impl Unpin for ParseCharError

§

impl Unpin for ParseFloatError

§

impl Unpin for ParseIntError

§

impl Unpin for Path

§

impl Unpin for PathBuf

§

impl Unpin for Permissions

§

impl Unpin for PidFd

§

impl Unpin for PipeReader

§

impl Unpin for PipeWriter

§

impl Unpin for Pointer

§

impl Unpin for RandomState

§

impl Unpin for RangeFull

§

impl Unpin for RawWaker

§

impl Unpin for RawWakerVTable

§

impl Unpin for ReadDir

§

impl Unpin for RecvError

§

impl Unpin for std::sync::mpsc::RecvTimeoutError

§

impl Unpin for Reference

§

impl Unpin for std::io::Repeat

§

impl Unpin for ReturnToArg

§

impl Unpin for SearchStep

§

impl Unpin for SeekFrom

§

impl Unpin for Shutdown

§

impl Unpin for Sign

§

impl Unpin for SimdAlign

§

impl Unpin for Sink

§

impl Unpin for SipHasher

§

impl Unpin for Slice

§

impl Unpin for std::net::SocketAddr

§

impl Unpin for std::os::unix::net::SocketAddr

§

impl Unpin for std::os::windows::net::SocketAddr

§

impl Unpin for SocketAddrV4

§

impl Unpin for SocketAddrV6

§

impl Unpin for SocketCred

§

impl Unpin for Stderr

§

impl Unpin for Stdin

§

impl Unpin for Stdio

§

impl Unpin for Stdout

§

impl Unpin for Str

§

impl Unpin for String

§

impl Unpin for StripPrefixError

§

impl Unpin for System

§

impl Unpin for SystemRng

§

impl Unpin for SystemTime

§

impl Unpin for SystemTimeError

§

impl Unpin for TcpListener

§

impl Unpin for TcpStream

§

impl Unpin for Thread

§

impl Unpin for ThreadId

§

impl Unpin for ToCasefold

§

impl Unpin for ToLowercase

§

impl Unpin for ToTitlecase

§

impl Unpin for ToUppercase

§

impl Unpin for Trait

§

impl Unpin for TryFromCharError

§

impl Unpin for TryFromFloatSecsError

§

impl Unpin for TryFromIntError

§

impl Unpin for TryFromSliceError

§

impl Unpin for std::fs::TryLockError

§

impl Unpin for std::sync::mpsc::TryRecvError

§

impl Unpin for TryReserveError

§

impl Unpin for TryReserveErrorKind

§

impl Unpin for Type

§

impl Unpin for TypeId

§

impl Unpin for TypeKind

§

impl Unpin for UCred

§

impl Unpin for UdpSocket

§

impl Unpin for UnixDatagram

§

impl Unpin for std::os::unix::net::UnixListener

§

impl Unpin for std::os::windows::net::UnixListener

§

impl Unpin for std::os::unix::net::UnixStream

§

impl Unpin for std::os::windows::net::UnixStream

§

impl Unpin for UnorderedKeyError

§

impl Unpin for UnwindActionArg

§

impl Unpin for UnwindTerminateReason

§

impl Unpin for Utf8Error

§

impl Unpin for VarError

§

impl Unpin for VariantId

§

impl Unpin for Vars

§

impl Unpin for VarsOs

§

impl Unpin for WaitTimeoutResult

§

impl Unpin for WouldBlock

§

impl Unpin for WriterPanicked

§

impl Unpin for XdgDirsIter

§

impl Unpin for c_void

§

impl Unpin for stat

§

impl<'a, 'b, const N: usize> Unpin for CharArrayRefSearcher<'a, 'b, N>
where <MultiCharEqPattern<&'b [char; N]> as Pattern>::Searcher<'a>: Unpin,

§

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

§

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, 'b> Unpin for StrSearcher<'a, 'b>

§

impl<'a, A> Unpin for std::option::Iter<'a, A>
where Item<&'a A>: Unpin,

§

impl<'a, A> Unpin for std::option::IterMut<'a, A>
where Item<&'a mut A>: Unpin,

§

impl<'a, B> Unpin for Cow<'a, B>
where &'a B: Unpin, <B as ToOwned>::Owned: Unpin, B: ?Sized,

§

impl<'a, F> Unpin for CharPredicateSearcher<'a, F>
where <MultiCharEqPattern<F> as Pattern>::Searcher<'a>: Unpin,

§

impl<'a, I, A> Unpin for std::collections::vec_deque::Splice<'a, I, A>
where Drain<'a, <I as Iterator>::Item, A>: Unpin, I: Unpin,

§

impl<'a, I, A> Unpin for std::vec::Splice<'a, I, A>
where Drain<'a, <I as Iterator>::Item, A>: Unpin, I: Unpin,

§

impl<'a, I> Unpin for ByRefSized<'a, I>

§

impl<'a, K, A> Unpin for std::collections::btree_set::CursorMut<'a, K, A>
where CursorMut<'a, K, SetValZST, A>: Unpin,

§

impl<'a, K, A> Unpin for std::collections::btree_set::CursorMutKey<'a, K, A>
where CursorMutKey<'a, K, SetValZST, A>: Unpin,

§

impl<'a, K, A> Unpin for std::collections::hash_set::Drain<'a, K, A>
where Drain<'a, K, A>: Unpin,

§

impl<'a, K, F, A> Unpin for std::collections::hash_set::ExtractIf<'a, K, F, A>
where ExtractIf<'a, K, F, A>: Unpin,

§

impl<'a, K, V, A> Unpin for std::collections::btree_map::CursorMut<'a, K, V, A>
where CursorMutKey<'a, K, V, A>: Unpin,

§

impl<'a, K, V, A> Unpin for std::collections::btree_map::CursorMutKey<'a, K, V, A>
where Option<Handle<NodeRef<Mut<'a>, K, V, Leaf>, Edge>>: Unpin, DormantMutRef<'a, Option<NodeRef<Owned, K, V, LeafOrInternal>>>: Unpin, &'a mut A: Unpin,

§

impl<'a, K, V, A> Unpin for std::collections::hash_map::Drain<'a, K, V, A>
where Drain<'a, K, V, A>: Unpin,

§

impl<'a, K, V, A> Unpin for std::collections::hash_map::Entry<'a, K, V, A>
where OccupiedEntry<'a, K, V, A>: Unpin, VacantEntry<'a, K, V, A>: Unpin,

§

impl<'a, K, V, A> Unpin for std::collections::btree_map::Entry<'a, K, V, A>
where VacantEntry<'a, K, V, A>: Unpin, OccupiedEntry<'a, K, V, A>: Unpin,

§

impl<'a, K, V, A> Unpin for std::collections::btree_map::OccupiedEntry<'a, K, V, A>
where Handle<NodeRef<Mut<'a>, K, V, LeafOrInternal>, KV>: Unpin, DormantMutRef<'a, BTreeMap<K, V, A>>: Unpin, A: Unpin, PhantomData<&'a mut (K, V)>: Unpin,

§

impl<'a, K, V, A> Unpin for std::collections::hash_map::OccupiedEntry<'a, K, V, A>
where RustcOccupiedEntry<'a, K, V, A>: Unpin,

§

impl<'a, K, V, A> Unpin for std::collections::hash_map::OccupiedError<'a, K, V, A>
where OccupiedEntry<'a, K, V, A>: Unpin, K: Unpin, V: Unpin,

§

impl<'a, K, V, A> Unpin for std::collections::btree_map::OccupiedError<'a, K, V, A>
where OccupiedEntry<'a, K, V, A>: Unpin, K: Unpin, V: Unpin,

§

impl<'a, K, V, A> Unpin for std::collections::btree_map::VacantEntry<'a, K, V, A>
where K: Unpin, Option<Handle<NodeRef<Mut<'a>, K, V, Leaf>, Edge>>: Unpin, DormantMutRef<'a, BTreeMap<K, V, A>>: Unpin, A: Unpin, PhantomData<&'a mut (K, V)>: Unpin,

§

impl<'a, K, V, A> Unpin for std::collections::hash_map::VacantEntry<'a, K, V, A>
where RustcVacantEntry<'a, K, V, A>: Unpin,

§

impl<'a, K, V, F, A> Unpin for std::collections::hash_map::ExtractIf<'a, K, V, F, A>
where ExtractIf<'a, K, V, F, A>: Unpin,

§

impl<'a, K, V, R, F, A> Unpin for std::collections::btree_map::ExtractIf<'a, K, V, R, F, A>
where F: Unpin, ExtractIfInner<'a, K, V, R>: Unpin, A: Unpin,

§

impl<'a, K, V> Unpin for std::collections::btree_map::Cursor<'a, K, V>
where Option<Handle<NodeRef<Immut<'a>, K, V, Leaf>, Edge>>: Unpin, Option<&'a NodeRef<Owned, K, V, LeafOrInternal>>: Unpin,

§

impl<'a, K, V> Unpin for std::collections::hash_map::Iter<'a, K, V>
where Iter<'a, K, V>: Unpin,

§

impl<'a, K, V> Unpin for std::collections::btree_map::Iter<'a, K, V>
where LazyLeafRange<Immut<'a>, K, V>: Unpin,

§

impl<'a, K, V> Unpin for std::collections::hash_map::IterMut<'a, K, V>
where IterMut<'a, K, V>: Unpin,

§

impl<'a, K, V> Unpin for std::collections::btree_map::IterMut<'a, K, V>
where LazyLeafRange<ValMut<'a>, K, V>: Unpin, PhantomData<&'a mut (K, V)>: Unpin,

§

impl<'a, K, V> Unpin for std::collections::hash_map::Keys<'a, K, V>
where Iter<'a, K, V>: Unpin,

§

impl<'a, K, V> Unpin for std::collections::btree_map::Keys<'a, K, V>
where Iter<'a, K, V>: Unpin,

§

impl<'a, K, V> Unpin for std::collections::btree_map::Range<'a, K, V>
where LeafRange<Immut<'a>, K, V>: Unpin,

§

impl<'a, K, V> Unpin for RangeMut<'a, K, V>
where LeafRange<ValMut<'a>, K, V>: Unpin, PhantomData<&'a mut (K, V)>: Unpin,

§

impl<'a, K, V> Unpin for std::collections::hash_map::Values<'a, K, V>
where Iter<'a, K, V>: Unpin,

§

impl<'a, K, V> Unpin for std::collections::btree_map::Values<'a, K, V>
where Iter<'a, K, V>: Unpin,

§

impl<'a, K, V> Unpin for std::collections::hash_map::ValuesMut<'a, K, V>
where IterMut<'a, K, V>: Unpin,

§

impl<'a, K, V> Unpin for std::collections::btree_map::ValuesMut<'a, K, V>
where IterMut<'a, K, V>: Unpin,

§

impl<'a, K> Unpin for std::collections::btree_set::Cursor<'a, K>
where Cursor<'a, K, SetValZST>: Unpin,

§

impl<'a, K> Unpin for std::collections::hash_set::Iter<'a, K>
where Iter<'a, K>: Unpin,

§

impl<'a, P> Unpin for MatchIndices<'a, P>
where MatchIndicesInternal<'a, P>: Unpin,

§

impl<'a, P> Unpin for Matches<'a, P>
where MatchesInternal<'a, P>: Unpin,

§

impl<'a, P> Unpin for RMatchIndices<'a, P>
where MatchIndicesInternal<'a, P>: Unpin,

§

impl<'a, P> Unpin for RMatches<'a, P>
where MatchesInternal<'a, P>: Unpin,

§

impl<'a, P> Unpin for std::str::RSplit<'a, P>
where SplitInternal<'a, P>: Unpin,

§

impl<'a, P> Unpin for std::str::RSplitN<'a, P>
where SplitNInternal<'a, P>: Unpin,

§

impl<'a, P> Unpin for RSplitTerminator<'a, P>
where SplitInternal<'a, P>: Unpin,

§

impl<'a, P> Unpin for std::str::Split<'a, P>
where SplitInternal<'a, P>: Unpin,

§

impl<'a, P> Unpin for std::str::SplitInclusive<'a, P>
where SplitInternal<'a, P>: Unpin,

§

impl<'a, P> Unpin for std::str::SplitN<'a, P>
where SplitNInternal<'a, P>: Unpin,

§

impl<'a, P> Unpin for SplitTerminator<'a, P>
where SplitInternal<'a, P>: Unpin,

§

impl<'a, T, A> Unpin for std::collections::linked_list::Cursor<'a, T, A>
where Option<NonNull<Node<T>>>: Unpin, &'a LinkedList<T, A>: Unpin,

§

impl<'a, T, A> Unpin for std::collections::linked_list::CursorMut<'a, T, A>
where Option<NonNull<Node<T>>>: Unpin, &'a mut LinkedList<T, A>: Unpin,

§

impl<'a, T, A> Unpin for std::collections::btree_set::Difference<'a, T, A>
where DifferenceInner<'a, T, A>: Unpin,

§

impl<'a, T, A> Unpin for std::collections::binary_heap::Drain<'a, T, A>
where Drain<'a, T, A>: Unpin,

§

impl<'a, T, A> Unpin for std::vec::Drain<'a, T, A>
where Iter<'a, T>: Unpin, NonNull<Vec<T, A>>: Unpin,

§

impl<'a, T, A> Unpin for std::collections::vec_deque::Drain<'a, T, A>

§

impl<'a, T, A> Unpin for DrainSorted<'a, T, A>
where &'a mut BinaryHeap<T, A>: Unpin,

§

impl<'a, T, A> Unpin for std::collections::btree_set::Entry<'a, T, A>
where OccupiedEntry<'a, T, A>: Unpin, VacantEntry<'a, T, A>: Unpin,

§

impl<'a, T, A> Unpin for std::collections::btree_set::Intersection<'a, T, A>
where IntersectionInner<'a, T, A>: Unpin,

§

impl<'a, T, A> Unpin for std::collections::btree_set::OccupiedEntry<'a, T, A>
where OccupiedEntry<'a, T, SetValZST, A>: Unpin,

§

impl<'a, T, A> Unpin for std::collections::binary_heap::PeekMut<'a, T, A>
where &'a mut BinaryHeap<T, A>: Unpin,

§

impl<'a, T, A> Unpin for std::vec::PeekMut<'a, T, A>
where &'a mut Vec<T, A>: Unpin,

§

impl<'a, T, A> Unpin for std::collections::btree_set::VacantEntry<'a, T, A>
where VacantEntry<'a, T, SetValZST, A>: Unpin,

§

impl<'a, T, F, A> Unpin for std::collections::linked_list::ExtractIf<'a, T, F, A>
where &'a mut LinkedList<T, A>: Unpin, Option<NonNull<Node<T>>>: Unpin, F: Unpin,

§

impl<'a, T, F, A> Unpin for std::vec::ExtractIf<'a, T, F, A>
where &'a mut Vec<T, A>: Unpin, F: Unpin,

§

impl<'a, T, F, A> Unpin for std::collections::vec_deque::ExtractIf<'a, T, F, A>
where &'a mut VecDeque<T, A>: Unpin, F: Unpin,

§

impl<'a, T, P> Unpin for ChunkBy<'a, T, P>
where &'a [T]: Unpin, P: Unpin,

§

impl<'a, T, P> Unpin for ChunkByMut<'a, T, P>
where &'a mut [T]: Unpin, P: Unpin,

§

impl<'a, T, P> Unpin for std::slice::RSplit<'a, T, P>
where Split<'a, T, P>: Unpin,

§

impl<'a, T, P> Unpin for RSplitMut<'a, T, P>
where SplitMut<'a, T, P>: Unpin,

§

impl<'a, T, P> Unpin for std::slice::RSplitN<'a, T, P>
where GenericSplitN<RSplit<'a, T, P>>: Unpin,

§

impl<'a, T, P> Unpin for RSplitNMut<'a, T, P>
where GenericSplitN<RSplitMut<'a, T, P>>: Unpin,

§

impl<'a, T, P> Unpin for std::slice::Split<'a, T, P>
where &'a [T]: Unpin, P: Unpin,

§

impl<'a, T, P> Unpin for std::slice::SplitInclusive<'a, T, P>
where &'a [T]: Unpin, P: Unpin,

§

impl<'a, T, P> Unpin for SplitInclusiveMut<'a, T, P>
where &'a mut [T]: Unpin, P: Unpin,

§

impl<'a, T, P> Unpin for SplitMut<'a, T, P>
where &'a mut [T]: Unpin, P: Unpin,

§

impl<'a, T, P> Unpin for std::slice::SplitN<'a, T, P>
where GenericSplitN<Split<'a, T, P>>: Unpin,

§

impl<'a, T, P> Unpin for SplitNMut<'a, T, P>
where GenericSplitN<SplitMut<'a, T, P>>: Unpin,

§

impl<'a, T, R, F, A> Unpin for std::collections::btree_set::ExtractIf<'a, T, R, F, A>
where F: Unpin, ExtractIfInner<'a, T, SetValZST, R>: Unpin, A: Unpin,

§

impl<'a, T, S, A> Unpin for std::collections::hash_set::Difference<'a, T, S, A>
where Iter<'a, T>: Unpin, &'a HashSet<T, S, A>: Unpin,

§

impl<'a, T, S, A> Unpin for std::collections::hash_set::Entry<'a, T, S, A>
where OccupiedEntry<'a, T, S, A>: Unpin, VacantEntry<'a, T, S, A>: Unpin,

§

impl<'a, T, S, A> Unpin for std::collections::hash_set::Intersection<'a, T, S, A>
where Iter<'a, T>: Unpin, &'a HashSet<T, S, A>: Unpin,

§

impl<'a, T, S, A> Unpin for std::collections::hash_set::OccupiedEntry<'a, T, S, A>
where OccupiedEntry<'a, T, S, A>: Unpin,

§

impl<'a, T, S, A> Unpin for std::collections::hash_set::SymmetricDifference<'a, T, S, A>
where Chain<Difference<'a, T, S, A>, Difference<'a, T, S, A>>: Unpin,

§

impl<'a, T, S, A> Unpin for std::collections::hash_set::Union<'a, T, S, A>
where Chain<Iter<'a, T>, Difference<'a, T, S, A>>: Unpin,

§

impl<'a, T, S, A> Unpin for std::collections::hash_set::VacantEntry<'a, T, S, A>
where VacantEntry<'a, T, S, A>: Unpin,

§

impl<'a, T, const N: usize> Unpin for ArrayWindows<'a, T, N>
where &'a [T]: Unpin,

§

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

§

impl<'a, T> Unpin for Chunks<'a, T>
where &'a [T]: Unpin,

§

impl<'a, T> Unpin for ChunksExact<'a, T>
where &'a [T]: Unpin,

§

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

§

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

§

impl<'a, T> Unpin for std::sync::mpmc::Iter<'a, T>
where &'a Receiver<T>: Unpin,

§

impl<'a, T> Unpin for std::sync::mpsc::Iter<'a, T>
where &'a Receiver<T>: Unpin,

§

impl<'a, T> Unpin for std::collections::binary_heap::Iter<'a, T>
where Iter<'a, T>: Unpin,

§

impl<'a, T> Unpin for std::collections::vec_deque::Iter<'a, T>
where Iter<'a, T>: Unpin,

§

impl<'a, T> Unpin for std::collections::btree_set::Iter<'a, T>
where Keys<'a, T, SetValZST>: Unpin,

§

impl<'a, T> Unpin for std::slice::Iter<'a, T>

§

impl<'a, T> Unpin for std::result::Iter<'a, T>
where Option<&'a T>: Unpin,

§

impl<'a, T> Unpin for std::collections::linked_list::Iter<'a, T>
where Option<NonNull<Node<T>>>: Unpin, PhantomData<&'a Node<T>>: Unpin,

§

impl<'a, T> Unpin for std::collections::vec_deque::IterMut<'a, T>
where IterMut<'a, T>: Unpin,

§

impl<'a, T> Unpin for std::slice::IterMut<'a, T>

§

impl<'a, T> Unpin for std::result::IterMut<'a, T>

§

impl<'a, T> Unpin for std::collections::linked_list::IterMut<'a, T>
where Option<NonNull<Node<T>>>: Unpin, PhantomData<&'a mut Node<T>>: Unpin,

§

impl<'a, T> Unpin for std::sync::nonpoison::MappedMutexGuard<'a, T>

§

impl<'a, T> Unpin for std::sync::MappedMutexGuard<'a, T>

§

impl<'a, T> Unpin for std::sync::nonpoison::MutexGuard<'a, T>
where &'a Mutex<T>: Unpin, T: ?Sized,

§

impl<'a, T> Unpin for std::sync::MutexGuard<'a, T>
where &'a Mutex<T>: Unpin, T: ?Sized,

§

impl<'a, T> Unpin for RChunks<'a, T>
where &'a [T]: Unpin,

§

impl<'a, T> Unpin for RChunksExact<'a, T>
where &'a [T]: Unpin,

§

impl<'a, T> Unpin for RChunksExactMut<'a, T>
where *mut [T]: Unpin, &'a mut [T]: Unpin,

§

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

§

impl<'a, T> Unpin for std::collections::btree_set::Range<'a, T>
where Range<'a, T, SetValZST>: Unpin,

§

impl<'a, T> Unpin for ReentrantLockGuard<'a, T>
where &'a ReentrantLock<T>: Unpin, T: ?Sized,

§

impl<'a, T> Unpin for std::collections::btree_set::SymmetricDifference<'a, T>
where MergeIterInner<Iter<'a, T>>: Unpin,

§

impl<'a, T> Unpin for std::sync::mpmc::TryIter<'a, T>
where &'a Receiver<T>: Unpin,

§

impl<'a, T> Unpin for std::sync::mpsc::TryIter<'a, T>
where &'a Receiver<T>: Unpin,

§

impl<'a, T> Unpin for std::collections::btree_set::Union<'a, T>
where MergeIterInner<Iter<'a, T>>: Unpin,

§

impl<'a, T> Unpin for Windows<'a, T>
where &'a [T]: Unpin,

§

impl<'a, const N: usize> Unpin for CharArraySearcher<'a, N>
where <MultiCharEqPattern<[char; N]> as Pattern>::Searcher<'a>: Unpin,

§

impl<'a> !Unpin for Request<'a>

§

impl<'a> Unpin for Ancestors<'a>

§

impl<'a> Unpin for AncillaryData<'a>

§

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

§

impl<'a> Unpin for std::str::Bytes<'a>

§

impl<'a> Unpin for CharIndices<'a>

§

impl<'a> Unpin for CharSearcher<'a>

§

impl<'a> Unpin for Chars<'a>

§

impl<'a> Unpin for CommandArgs<'a>

§

impl<'a> Unpin for CommandEnvs<'a>

§

impl<'a> Unpin for Component<'a>

§

impl<'a> Unpin for Components<'a>

§

impl<'a> Unpin for Context<'a>

§

impl<'a> Unpin for ContextBuilder<'a>

§

impl<'a> Unpin for std::ffi::os_str::Display<'a>

§

impl<'a> Unpin for std::path::Display<'a>

§

impl<'a> Unpin for std::string::Drain<'a>

§

impl<'a> Unpin for EncodeUtf16<'a>

§

impl<'a> Unpin for EncodeWide<'a>

§

impl<'a> Unpin for EscapeAscii<'a>

§

impl<'a> Unpin for std::str::EscapeDebug<'a>

§

impl<'a> Unpin for std::str::EscapeDefault<'a>

§

impl<'a> Unpin for std::str::EscapeUnicode<'a>

§

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

§

impl<'a> Unpin for std::net::Incoming<'a>

§

impl<'a> Unpin for std::os::unix::net::Incoming<'a>

§

impl<'a> Unpin for std::os::windows::net::Incoming<'a>

§

impl<'a> Unpin for IoSlice<'a>

§

impl<'a> Unpin for IoSliceMut<'a>

§

impl<'a> Unpin for std::path::Iter<'a>

§

impl<'a> Unpin for std::str::Lines<'a>

§

impl<'a> Unpin for LinesAny<'a>

§

impl<'a> Unpin for Location<'a>

§

impl<'a> Unpin for Messages<'a>

§

impl<'a> Unpin for PanicHookInfo<'a>

§

impl<'a> Unpin for PhantomContravariantLifetime<'a>

§

impl<'a> Unpin for PhantomCovariantLifetime<'a>

§

impl<'a> Unpin for PhantomInvariantLifetime<'a>

§

impl<'a> Unpin for Prefix<'a>

§

impl<'a> Unpin for PrefixComponent<'a>

§

impl<'a> Unpin for ProcThreadAttributeList<'a>

§

impl<'a> Unpin for ProcThreadAttributeListBuilder<'a>

§

impl<'a> Unpin for ScmCredentials<'a>

§

impl<'a> Unpin for ScmRights<'a>

§

impl<'a> Unpin for SocketAncillary<'a>

§

impl<'a> Unpin for SplitAsciiWhitespace<'a>

§

impl<'a> Unpin for SplitPaths<'a>

§

impl<'a> Unpin for SplitWhitespace<'a>

§

impl<'a> Unpin for StderrLock<'a>

§

impl<'a> Unpin for StdinLock<'a>

§

impl<'a> Unpin for StdoutLock<'a>

§

impl<'a> Unpin for Utf8Chunk<'a>

§

impl<'a> Unpin for Utf8Chunks<'a>

§

impl<'a> Unpin for Utf8Pattern<'a>

§

impl<'a> Unpin for VaList<'a>

§

impl<'b, T> Unpin for Ref<'b, T>
where NonNull<T>: Unpin, T: ?Sized,

§

impl<'b, T> Unpin for RefMut<'b, T>

§

impl<'data, T> Unpin for BorrowedBuf<'data, T>
where &'data mut [MaybeUninit<T>]: Unpin,

§

impl<'fd> Unpin for BorrowedFd<'fd>

§

impl<'handle> Unpin for BorrowedHandle<'handle>

§

impl<'rwlock, T> Unpin for std::sync::nonpoison::MappedRwLockReadGuard<'rwlock, T>
where NonNull<T>: Unpin, T: ?Sized,

§

impl<'rwlock, T> Unpin for std::sync::MappedRwLockReadGuard<'rwlock, T>
where NonNull<T>: Unpin, T: ?Sized,

§

impl<'rwlock, T> Unpin for std::sync::nonpoison::MappedRwLockWriteGuard<'rwlock, T>

§

impl<'rwlock, T> Unpin for std::sync::MappedRwLockWriteGuard<'rwlock, T>

§

impl<'rwlock, T> Unpin for std::sync::nonpoison::RwLockReadGuard<'rwlock, T>
where NonNull<T>: Unpin, T: ?Sized,

§

impl<'rwlock, T> Unpin for std::sync::RwLockReadGuard<'rwlock, T>
where NonNull<T>: Unpin, T: ?Sized,

§

impl<'rwlock, T> Unpin for std::sync::nonpoison::RwLockWriteGuard<'rwlock, T>
where &'rwlock RwLock<T>: Unpin, T: ?Sized,

§

impl<'rwlock, T> Unpin for std::sync::RwLockWriteGuard<'rwlock, T>
where &'rwlock RwLock<T>: Unpin, T: ?Sized,

§

impl<'scope, 'env> Unpin for Scope<'scope, 'env>

§

impl<'scope, T> Unpin for ScopedJoinHandle<'scope, T>
where JoinInner<'scope, T>: Unpin,

§

impl<'socket> Unpin for BorrowedSocket<'socket>

§

impl<A, B> Unpin for std::iter::Chain<A, B>
where Option<A>: Unpin, Option<B>: Unpin,

§

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

§

impl<A> Unpin for std::option::IntoIter<A>
where Item<A>: Unpin,

§

impl<A> Unpin for OptionFlatten<A>
where Option<A>: Unpin,

§

impl<A> Unpin for RangeFromIter<A>
where A: Unpin,

§

impl<A> Unpin for RangeInclusiveIter<A>

§

impl<A> Unpin for RangeIter<A>
where Range<A>: Unpin,

§

impl<A> Unpin for std::iter::Repeat<A>
where A: Unpin,

§

impl<A> Unpin for RepeatN<A>
where Option<RepeatNInner<A>>: Unpin,

§

impl<B, C> Unpin for ControlFlow<B, C>
where C: Unpin, B: Unpin,

§

impl<B> Unpin for std::io::Lines<B>
where B: Unpin,

§

impl<B> Unpin for std::io::Split<B>
where B: Unpin,

§

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

§

impl<F> Unpin for std::iter::FromFn<F>
where F: Unpin,

§

impl<F> Unpin for std::fmt::FromFn<F>
where F: Unpin,

§

impl<F> Unpin for OnceWith<F>
where Option<F>: Unpin,

§

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

§

impl<G> Unpin for FromCoroutine<G>
where G: Unpin,

§

impl<H> Unpin for BuildHasherDefault<H>
where PhantomData<fn() -> H>: Unpin,

§

impl<I, F, const N: usize> Unpin for MapWindows<I, F, N>
where F: Unpin, MapWindowsInner<I, N>: Unpin,

§

impl<I, F> Unpin for FilterMap<I, F>
where I: Unpin, F: Unpin,

§

impl<I, F> Unpin for Inspect<I, F>
where I: Unpin, F: Unpin,

§

impl<I, F> Unpin for Map<I, F>
where I: Unpin, F: Unpin,

§

impl<I, G> Unpin for IntersperseWith<I, G>
where G: Unpin, Option<<I as Iterator>::Item>: Unpin, I: Unpin,

§

impl<I, P> Unpin for Filter<I, P>
where I: Unpin, P: Unpin,

§

impl<I, P> Unpin for MapWhile<I, P>
where I: Unpin, P: Unpin,

§

impl<I, P> Unpin for SkipWhile<I, P>
where I: Unpin, P: Unpin,

§

impl<I, P> Unpin for TakeWhile<I, P>
where I: Unpin, P: Unpin,

§

impl<I, St, F> Unpin for Scan<I, St, F>
where I: Unpin, F: Unpin, St: Unpin,

§

impl<I, U, F> Unpin for FlatMap<I, U, F>
where FlattenCompat<Map<I, F>, <U as IntoIterator>::IntoIter>: Unpin,

§

impl<I, const N: usize> Unpin for ArrayChunks<I, N>
where I: Unpin, Option<IntoIter<<I as Iterator>::Item, N>>: Unpin,

§

impl<I> Unpin for Cloned<I>
where I: Unpin,

§

impl<I> Unpin for Copied<I>
where I: Unpin,

§

impl<I> Unpin for Cycle<I>
where I: Unpin,

§

impl<I> Unpin for DecodeUtf16<I>
where I: Unpin,

§

impl<I> Unpin for Enumerate<I>
where I: Unpin,

§

impl<I> Unpin for Flatten<I>
where FlattenCompat<I, <<I as Iterator>::Item as IntoIterator>::IntoIter>: Unpin,

§

impl<I> Unpin for Fuse<I>
where Option<I>: Unpin,

§

impl<I> Unpin for Intersperse<I>
where <I as Iterator>::Item: Sized + Unpin, Option<<I as Iterator>::Item>: Unpin, I: Unpin,

§

impl<I> Unpin for Peekable<I>
where I: Unpin, Option<Option<<I as Iterator>::Item>>: Unpin,

§

impl<I> Unpin for Skip<I>
where I: Unpin,

§

impl<I> Unpin for StepBy<I>
where I: Unpin,

§

impl<I> Unpin for std::iter::Take<I>
where I: Unpin,

§

impl<Idx> Unpin for std::ops::Range<Idx>
where Idx: Unpin,

§

impl<Idx> Unpin for std::range::Range<Idx>
where Idx: Unpin,

§

impl<Idx> Unpin for std::ops::RangeFrom<Idx>
where Idx: Unpin,

§

impl<Idx> Unpin for std::range::RangeFrom<Idx>
where Idx: Unpin,

§

impl<Idx> Unpin for std::ops::RangeInclusive<Idx>
where Idx: Unpin,

§

impl<Idx> Unpin for std::range::RangeInclusive<Idx>
where Idx: Unpin,

§

impl<Idx> Unpin for RangeTo<Idx>
where Idx: Unpin,

§

impl<Idx> Unpin for std::ops::RangeToInclusive<Idx>
where Idx: Unpin,

§

impl<Idx> Unpin for std::range::RangeToInclusive<Idx>
where Idx: Unpin,

§

impl<K, A> Unpin for std::collections::hash_set::IntoIter<K, A>
where IntoIter<K, A>: Unpin,

§

impl<K, V, A> Unpin for BTreeMap<K, V, A>
where Option<NodeRef<Owned, K, V, LeafOrInternal>>: Unpin, ManuallyDrop<A>: Unpin, PhantomData<Box<(K, V), A>>: Unpin,

§

impl<K, V, A> Unpin for std::collections::hash_map::IntoIter<K, V, A>
where IntoIter<K, V, A>: Unpin,

§

impl<K, V, A> Unpin for std::collections::btree_map::IntoIter<K, V, A>
where LazyLeafRange<Dying, K, V>: Unpin, A: Unpin,

§

impl<K, V, A> Unpin for std::collections::hash_map::IntoKeys<K, V, A>
where IntoIter<K, V, A>: Unpin,

§

impl<K, V, A> Unpin for std::collections::btree_map::IntoKeys<K, V, A>
where IntoIter<K, V, A>: Unpin,

§

impl<K, V, A> Unpin for std::collections::hash_map::IntoValues<K, V, A>
where IntoIter<K, V, A>: Unpin,

§

impl<K, V, A> Unpin for std::collections::btree_map::IntoValues<K, V, A>
where IntoIter<K, V, A>: Unpin,

§

impl<K, V, S, A> Unpin for HashMap<K, V, S, A>
where HashMap<K, V, S, A>: Unpin,

§

impl<P> Unpin for MaybeDangling<P>
where P: Unpin + ?Sized,

§

impl<Ptr> Unpin for Pin<Ptr>
where Ptr: Unpin,

§

impl<R> Unpin for BufReader<R>
where R: Unpin + ?Sized,

§

impl<R> Unpin for std::io::Bytes<R>
where R: Unpin,

§

impl<T, A> Unpin for BTreeSet<T, A>
where BTreeMap<T, SetValZST, A>: Unpin,

§

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

§

impl<T, A> Unpin for std::collections::binary_heap::IntoIter<T, A>
where IntoIter<T, A>: Unpin,

§

impl<T, A> Unpin for std::collections::btree_set::IntoIter<T, A>
where IntoIter<T, SetValZST, A>: Unpin,

§

impl<T, A> Unpin for std::collections::linked_list::IntoIter<T, A>
where LinkedList<T, A>: Unpin,

§

impl<T, A> Unpin for std::vec::IntoIter<T, A>

§

impl<T, A> Unpin for std::collections::vec_deque::IntoIter<T, A>
where VecDeque<T, A>: Unpin,

§

impl<T, A> Unpin for IntoIterSorted<T, A>
where BinaryHeap<T, A>: Unpin,

§

impl<T, A> Unpin for LinkedList<T, A>
where Option<NonNull<Node<T>>>: Unpin, A: Unpin, PhantomData<Box<Node<T>, A>>: Unpin,

§

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

§

impl<T, A> Unpin for VecDeque<T, A>
where RawVec<T, A>: Unpin,

§

impl<T, A> Unpin for std::sync::Weak<T, A>
where NonNull<ArcInner<T>>: Unpin, A: Unpin, T: ?Sized,

§

impl<T, A> Unpin for std::rc::Weak<T, A>
where NonNull<RcInner<T>>: Unpin, A: Unpin, T: ?Sized,

§

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

§

impl<T, F> Unpin for DropGuard<T, F>

§

impl<T, F> Unpin for LazyCell<T, F>
where UnsafeCell<State<T, F>>: Unpin,

§

impl<T, F> Unpin for LazyLock<T, F>
where UnsafeCell<Data<T, F>>: Unpin,

§

impl<T, F> Unpin for Successors<T, F>
where Option<T>: Unpin, F: Unpin,

§

impl<T, S, A> Unpin for HashSet<T, S, A>
where HashSet<T, S, A>: Unpin,

§

impl<T, U> Unpin for std::io::Chain<T, U>
where T: Unpin, U: Unpin,

§

impl<T, const N: usize, A> Unpin for BoxedArrayIntoIter<T, N, A>
where IntoIter<T, A>: Unpin,

§

impl<T, const N: usize> Unpin for std::array::IntoIter<T, N>
where ManuallyDrop<PolymorphicIter<[MaybeUninit<T>; N]>>: Unpin,

§

impl<T, const N: usize> Unpin for Mask<T, N>
where Simd<T, N>: Unpin,

§

impl<T, const N: usize> Unpin for Simd<T, N>
where [T; N]: Unpin,

§

impl<T, const VARIANT: u32, const FIELD: u32> Unpin for FieldRepresentingType<T, VARIANT, FIELD>
where PhantomData<fn(T) -> T>: Unpin, T: ?Sized,

§

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

§

impl<T> Unpin for Atomic<T>

§

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

§

impl<T> Unpin for Cell<T>
where UnsafeCell<T>: Unpin, T: ?Sized,

§

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

§

impl<T> Unpin for CovariantUnsafeCell<T>
where UnsafeCell<T>: Unpin, T: ?Sized,

§

impl<T> Unpin for std::io::Cursor<T>
where T: Unpin,

§

impl<T> Unpin for Discriminant<T>

§

impl<T> Unpin for std::iter::Empty<T>
where PhantomData<fn() -> T>: Unpin,

§

impl<T> Unpin for std::result::IntoIter<T>
where Option<T>: Unpin,

§

impl<T> Unpin for std::sync::mpmc::IntoIter<T>
where Receiver<T>: Unpin,

§

impl<T> Unpin for std::sync::mpsc::IntoIter<T>
where Receiver<T>: Unpin,

§

impl<T> Unpin for JoinHandle<T>
where JoinInner<'static, T>: Unpin,

§

impl<T> Unpin for LocalKey<T>
where fn(Option<&mut Option<T>>) -> *const T: Unpin,

§

impl<T> Unpin for ManuallyDrop<T>
where MaybeDangling<T>: Unpin, T: ?Sized,

§

impl<T> Unpin for MaybeUninit<T>
where ManuallyDrop<T>: Unpin,

§

impl<T> Unpin for std::sync::nonpoison::Mutex<T>
where UnsafeCell<T>: Unpin, T: ?Sized,

§

impl<T> Unpin for std::sync::Mutex<T>
where UnsafeCell<T>: Unpin, T: ?Sized,

§

impl<T> Unpin for NonNull<T>
where *const T is !null: Unpin, T: ?Sized,

§

impl<T> Unpin for std::iter::Once<T>
where IntoIter<T>: Unpin,

§

impl<T> Unpin for OnceCell<T>
where UnsafeCell<Option<T>>: Unpin,

§

impl<T> Unpin for OnceLock<T>

§

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

§

impl<T> Unpin for Pending<T>
where PhantomData<fn() -> T>: Unpin,

§

impl<T> Unpin for PhantomContravariant<T>
where PhantomData<fn(T)>: Unpin, T: ?Sized,

§

impl<T> Unpin for PhantomCovariant<T>
where PhantomData<fn() -> T>: Unpin, T: ?Sized,

§

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

§

impl<T> Unpin for PhantomInvariant<T>
where PhantomData<fn(T) -> T>: Unpin, T: ?Sized,

§

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

§

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

§

impl<T> Unpin for std::sync::mpsc::Receiver<T>
where Receiver<T>: Unpin,

§

impl<T> Unpin for std::sync::oneshot::Receiver<T>
where Receiver<T>: Unpin,

§

impl<T> Unpin for std::sync::mpmc::Receiver<T>
where ReceiverFlavor<T>: Unpin,

§

impl<T> Unpin for std::sync::oneshot::RecvTimeoutError<T>
where Receiver<T>: Unpin,

§

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

§

impl<T> Unpin for RefCell<T>
where UnsafeCell<T>: Unpin, T: ?Sized,

§

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

§

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

§

impl<T> Unpin for std::sync::nonpoison::RwLock<T>
where UnsafeCell<T>: Unpin, T: ?Sized,

§

impl<T> Unpin for std::sync::RwLock<T>
where UnsafeCell<T>: Unpin, T: ?Sized,

§

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

§

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

§

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

§

impl<T> Unpin for std::sync::mpsc::Sender<T>
where Sender<T>: Unpin,

§

impl<T> Unpin for std::sync::oneshot::Sender<T>
where Sender<T>: Unpin,

§

impl<T> Unpin for std::sync::mpmc::Sender<T>
where SenderFlavor<T>: Unpin,

§

impl<T> Unpin for SyncSender<T>
where Sender<T>: Unpin,

§

impl<T> Unpin for SyncUnsafeCell<T>
where UnsafeCell<T>: Unpin, T: ?Sized,

§

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

§

impl<T> Unpin for std::io::Take<T>
where T: Unpin,

§

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

§

impl<T> Unpin for TraitImpl<T>
where DynMetadata<T>: Unpin, T: ?Sized,

§

impl<T> Unpin for std::sync::TryLockError<T>
where PoisonError<T>: Unpin,

§

impl<T> Unpin for std::sync::oneshot::TryRecvError<T>
where Receiver<T>: Unpin,

§

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

§

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

§

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

§

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

§

impl<W> Unpin for BufWriter<W>
where W: Unpin + ?Sized,

§

impl<W> Unpin for IntoInnerError<W>
where W: Unpin,

§

impl<W> Unpin for LineWriter<W>
where BufWriter<W>: Unpin, W: ?Sized,

§

impl<Y, R> Unpin for CoroutineState<Y, R>
where Y: Unpin, R: Unpin,