pub auto trait Unpin { }
๐Ÿ”ฌThis is a nightly-only experimental API. (prelude_future)
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.

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>

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.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,

1.48.0 ยท Sourceยง

impl<T> Unpin for Ready<T>

1.28.0 ยท Sourceยง

impl<T> Unpin for NonZero<T>

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 UniqueRc<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, A> Unpin for UniqueArc<T, A>
where A: Allocator, T: ?Sized,

Auto implementorsยง

ยง

impl Unpin for AsciiChar

ยง

impl Unpin for BacktraceStatus

ยง

impl Unpin for rustc_std_workspace_std::cmp::Ordering

ยง

impl Unpin for TryReserveErrorKind

ยง

impl Unpin for Infallible

ยง

impl Unpin for VarError

ยง

impl Unpin for FromBytesWithNulError

ยง

impl Unpin for c_void

ยง

impl Unpin for rustc_std_workspace_std::fmt::Alignment

ยง

impl Unpin for DebugAsHex

ยง

impl Unpin for Sign

ยง

impl Unpin for rustc_std_workspace_std::fs::TryLockError

ยง

impl Unpin for BasicBlock

ยง

impl Unpin for UnwindTerminateReason

ยง

impl Unpin for ErrorKind

ยง

impl Unpin for SeekFrom

ยง

impl Unpin for IpAddr

ยง

impl Unpin for Ipv6MulticastScope

ยง

impl Unpin for Shutdown

ยง

impl Unpin for rustc_std_workspace_std::net::SocketAddr

ยง

impl Unpin for FpCategory

ยง

impl Unpin for IntErrorKind

ยง

impl Unpin for OneSidedRangeBound

ยง

impl Unpin for AncillaryError

ยง

impl Unpin for BacktraceStyle

ยง

impl Unpin for GetDisjointMutError

ยง

impl Unpin for SearchStep

ยง

impl Unpin for rustc_std_workspace_std::sync::atomic::Ordering

ยง

impl Unpin for RecvTimeoutError

ยง

impl Unpin for TryRecvError

ยง

impl Unpin for AllocError

ยง

impl Unpin for Global

ยง

impl Unpin for Layout

ยง

impl Unpin for LayoutError

ยง

impl Unpin for System

ยง

impl Unpin for TypeId

ยง

impl Unpin for CpuidResult

ยง

impl Unpin for __m128

ยง

impl Unpin for __m128bh

ยง

impl Unpin for __m128d

ยง

impl Unpin for __m128h

ยง

impl Unpin for __m128i

ยง

impl Unpin for __m256

ยง

impl Unpin for __m256bh

ยง

impl Unpin for __m256d

ยง

impl Unpin for __m256h

ยง

impl Unpin for __m256i

ยง

impl Unpin for __m512

ยง

impl Unpin for __m512bh

ยง

impl Unpin for __m512d

ยง

impl Unpin for __m512h

ยง

impl Unpin for __m512i

ยง

impl Unpin for bf16

ยง

impl Unpin for TryFromSliceError

ยง

impl Unpin for rustc_std_workspace_std::ascii::EscapeDefault

ยง

impl Unpin for Backtrace

ยง

impl Unpin for BacktraceFrame

ยง

impl Unpin for ByteStr

ยง

impl Unpin for ByteString

ยง

impl Unpin for BorrowError

ยง

impl Unpin for BorrowMutError

ยง

impl Unpin for CharTryFromError

ยง

impl Unpin for DecodeUtf16Error

ยง

impl Unpin for rustc_std_workspace_std::char::EscapeDebug

ยง

impl Unpin for rustc_std_workspace_std::char::EscapeDefault

ยง

impl Unpin for rustc_std_workspace_std::char::EscapeUnicode

ยง

impl Unpin for ParseCharError

ยง

impl Unpin for ToLowercase

ยง

impl Unpin for ToUppercase

ยง

impl Unpin for TryFromCharError

ยง

impl Unpin for UnorderedKeyError

ยง

impl Unpin for TryReserveError

ยง

impl Unpin for Args

ยง

impl Unpin for ArgsOs

ยง

impl Unpin for JoinPathsError

ยง

impl Unpin for Vars

ยง

impl Unpin for VarsOs

ยง

impl Unpin for CStr

ยง

impl Unpin for CString

ยง

impl Unpin for FromBytesUntilNulError

ยง

impl Unpin for FromVecWithNulError

ยง

impl Unpin for IntoStringError

ยง

impl Unpin for NulError

ยง

impl Unpin for OsStr

ยง

impl Unpin for OsString

ยง

impl Unpin for rustc_std_workspace_std::fmt::Error

ยง

impl Unpin for FormattingOptions

ยง

impl Unpin for DirBuilder

ยง

impl Unpin for DirEntry

ยง

impl Unpin for File

ยง

impl Unpin for FileTimes

ยง

impl Unpin for FileType

ยง

impl Unpin for Metadata

ยง

impl Unpin for OpenOptions

ยง

impl Unpin for Permissions

ยง

impl Unpin for ReadDir

ยง

impl Unpin for DefaultHasher

ยง

impl Unpin for RandomState

ยง

impl Unpin for SipHasher

ยง

impl Unpin for ReturnToArg

ยง

impl Unpin for UnwindActionArg

ยง

impl Unpin for rustc_std_workspace_std::io::Empty

ยง

impl Unpin for rustc_std_workspace_std::io::Error

ยง

impl Unpin for PipeReader

ยง

impl Unpin for PipeWriter

ยง

impl Unpin for rustc_std_workspace_std::io::Repeat

ยง

impl Unpin for Sink

ยง

impl Unpin for Stderr

ยง

impl Unpin for Stdin

ยง

impl Unpin for Stdout

ยง

impl Unpin for WriterPanicked

ยง

impl Unpin for Assume

ยง

impl Unpin for AddrParseError

ยง

impl Unpin for IntoIncoming

ยง

impl Unpin for Ipv4Addr

ยง

impl Unpin for Ipv6Addr

ยง

impl Unpin for SocketAddrV4

ยง

impl Unpin for SocketAddrV6

ยง

impl Unpin for TcpListener

ยง

impl Unpin for TcpStream

ยง

impl Unpin for UdpSocket

ยง

impl Unpin for ParseFloatError

ยง

impl Unpin for ParseIntError

ยง

impl Unpin for TryFromIntError

ยง

impl Unpin for RangeFull

ยง

impl Unpin for OwnedFd

ยง

impl Unpin for PidFd

ยง

impl Unpin for stat

ยง

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

ยง

impl Unpin for SocketCred

ยง

impl Unpin for UCred

ยง

impl Unpin for UnixDatagram

ยง

impl Unpin for UnixListener

ยง

impl Unpin for UnixStream

ยง

impl Unpin for Path

ยง

impl Unpin for PathBuf

ยง

impl Unpin for StripPrefixError

ยง

impl Unpin for Child

ยง

impl Unpin for ChildStderr

ยง

impl Unpin for ChildStdin

ยง

impl Unpin for ChildStdout

ยง

impl Unpin for Command

ยง

impl Unpin for ExitCode

ยง

impl Unpin for ExitStatus

ยง

impl Unpin for ExitStatusError

ยง

impl Unpin for Output

ยง

impl Unpin for Stdio

ยง

impl Unpin for rustc_std_workspace_std::ptr::Alignment

ยง

impl Unpin for DefaultRandomSource

ยง

impl Unpin for ParseBoolError

ยง

impl Unpin for Utf8Error

ยง

impl Unpin for FromUtf8Error

ยง

impl Unpin for FromUtf16Error

ยง

impl Unpin for IntoChars

ยง

impl Unpin for String

ยง

impl Unpin for AtomicBool

ยง

impl Unpin for AtomicI8

ยง

impl Unpin for AtomicI16

ยง

impl Unpin for AtomicI32

ยง

impl Unpin for AtomicI64

ยง

impl Unpin for AtomicIsize

ยง

impl Unpin for AtomicU8

ยง

impl Unpin for AtomicU16

ยง

impl Unpin for AtomicU32

ยง

impl Unpin for AtomicU64

ยง

impl Unpin for AtomicUsize

ยง

impl Unpin for RecvError

ยง

impl Unpin for Barrier

ยง

impl Unpin for BarrierWaitResult

ยง

impl Unpin for Condvar

ยง

impl Unpin for rustc_std_workspace_std::sync::Once

ยง

impl Unpin for OnceState

ยง

impl Unpin for WaitTimeoutResult

ยง

impl Unpin for RawWaker

ยง

impl Unpin for RawWakerVTable

ยง

impl Unpin for AccessError

ยง

impl Unpin for Builder

ยง

impl Unpin for Thread

ยง

impl Unpin for ThreadId

ยง

impl Unpin for Duration

ยง

impl Unpin for Instant

ยง

impl Unpin for SystemTime

ยง

impl Unpin for SystemTimeError

ยง

impl Unpin for TryFromFloatSecsError

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<'a> Unpin for ContextBuilder<'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, 'b> Unpin for CharSliceSearcher<'a, 'b>

ยง

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

ยง

impl<'a, 'b, const N: usize> Unpin for CharArrayRefSearcher<'a, 'b, N>

ยง

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

ยง

impl<'a, A> Unpin for rustc_std_workspace_std::option::Iter<'a, A>

ยง

impl<'a, A> Unpin for rustc_std_workspace_std::option::IterMut<'a, A>

ยง

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

ยง

impl<'a, F> Unpin for CharPredicateSearcher<'a, F>
where F: Unpin,

ยง

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

ยง

impl<'a, I, A> Unpin for Splice<'a, I, A>
where I: Unpin,

ยง

impl<'a, K> Unpin for rustc_std_workspace_std::collections::btree_set::Cursor<'a, K>

ยง

impl<'a, K> Unpin for rustc_std_workspace_std::collections::hash_set::Drain<'a, K>

ยง

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

ยง

impl<'a, K, A> Unpin for rustc_std_workspace_std::collections::btree_set::CursorMut<'a, K, A>

ยง

impl<'a, K, A> Unpin for rustc_std_workspace_std::collections::btree_set::CursorMutKey<'a, K, A>

ยง

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

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::hash_map::Entry<'a, K, V>
where K: Unpin,

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::btree_map::Cursor<'a, K, V>

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::btree_map::Iter<'a, K, V>

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::btree_map::IterMut<'a, K, V>

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::btree_map::Keys<'a, K, V>

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::btree_map::Range<'a, K, V>

ยง

impl<'a, K, V> Unpin for RangeMut<'a, K, V>

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::btree_map::Values<'a, K, V>

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::btree_map::ValuesMut<'a, K, V>

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::hash_map::Drain<'a, K, V>

ยง

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

ยง

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

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::hash_map::Keys<'a, K, V>

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::hash_map::OccupiedEntry<'a, K, V>

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::hash_map::OccupiedError<'a, K, V>
where V: Unpin,

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::hash_map::VacantEntry<'a, K, V>
where K: Unpin,

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::hash_map::Values<'a, K, V>

ยง

impl<'a, K, V> Unpin for rustc_std_workspace_std::collections::hash_map::ValuesMut<'a, K, V>

ยง

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

ยง

impl<'a, K, V, A> Unpin for rustc_std_workspace_std::collections::btree_map::CursorMut<'a, K, V, A>

ยง

impl<'a, K, V, A> Unpin for rustc_std_workspace_std::collections::btree_map::CursorMutKey<'a, K, V, A>

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<'a, P> Unpin for MatchIndices<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

ยง

impl<'a, P> Unpin for Matches<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

ยง

impl<'a, P> Unpin for RMatchIndices<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

ยง

impl<'a, P> Unpin for RMatches<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

ยง

impl<'a, P> Unpin for rustc_std_workspace_std::str::RSplit<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

ยง

impl<'a, P> Unpin for rustc_std_workspace_std::str::RSplitN<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

ยง

impl<'a, P> Unpin for RSplitTerminator<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

ยง

impl<'a, P> Unpin for rustc_std_workspace_std::str::Split<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

ยง

impl<'a, P> Unpin for rustc_std_workspace_std::str::SplitInclusive<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

ยง

impl<'a, P> Unpin for rustc_std_workspace_std::str::SplitN<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

ยง

impl<'a, P> Unpin for SplitTerminator<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

ยง

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

ยง

impl<'a, T> Unpin for rustc_std_workspace_std::collections::btree_set::Iter<'a, T>

ยง

impl<'a, T> Unpin for rustc_std_workspace_std::collections::btree_set::Range<'a, T>

ยง

impl<'a, T> Unpin for rustc_std_workspace_std::collections::btree_set::SymmetricDifference<'a, T>

ยง

impl<'a, T> Unpin for rustc_std_workspace_std::collections::btree_set::Union<'a, T>

ยง

impl<'a, T> Unpin for rustc_std_workspace_std::collections::linked_list::Iter<'a, T>

ยง

impl<'a, T> Unpin for rustc_std_workspace_std::collections::linked_list::IterMut<'a, T>

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<'a, T> Unpin for rustc_std_workspace_std::sync::mpmc::Iter<'a, T>

ยง

impl<'a, T> Unpin for rustc_std_workspace_std::sync::mpmc::TryIter<'a, T>

ยง

impl<'a, T> Unpin for rustc_std_workspace_std::sync::mpsc::Iter<'a, T>

ยง

impl<'a, T> Unpin for rustc_std_workspace_std::sync::mpsc::TryIter<'a, T>

ยง

impl<'a, T> Unpin for MappedMutexGuard<'a, T>
where T: ?Sized,

ยง

impl<'a, T> Unpin for MappedRwLockReadGuard<'a, T>
where T: ?Sized,

ยง

impl<'a, T> Unpin for MappedRwLockWriteGuard<'a, T>
where T: ?Sized,

ยง

impl<'a, T> Unpin for MutexGuard<'a, T>
where T: ?Sized,

ยง

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

ยง

impl<'a, T> Unpin for RwLockReadGuard<'a, T>
where T: ?Sized,

ยง

impl<'a, T> Unpin for RwLockWriteGuard<'a, T>
where T: ?Sized,

ยง

impl<'a, T, A> Unpin for rustc_std_workspace_std::collections::btree_set::Entry<'a, T, A>
where A: Unpin, T: Unpin,

ยง

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

ยง

impl<'a, T, A> Unpin for DrainSorted<'a, T, A>

ยง

impl<'a, T, A> Unpin for PeekMut<'a, T, A>

ยง

impl<'a, T, A> Unpin for rustc_std_workspace_std::collections::btree_set::Difference<'a, T, A>

ยง

impl<'a, T, A> Unpin for rustc_std_workspace_std::collections::btree_set::Intersection<'a, T, A>

ยง

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

ยง

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

ยง

impl<'a, T, A> Unpin for rustc_std_workspace_std::collections::linked_list::Cursor<'a, T, A>

ยง

impl<'a, T, A> Unpin for rustc_std_workspace_std::collections::linked_list::CursorMut<'a, T, A>

ยง

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

ยง

impl<'a, T, A> Unpin for rustc_std_workspace_std::vec::Drain<'a, T, A>

ยง

impl<'a, T, F, A> Unpin for rustc_std_workspace_std::collections::btree_set::ExtractIf<'a, T, F, A>
where F: Unpin, A: Unpin,

ยง

impl<'a, T, F, A> Unpin for rustc_std_workspace_std::collections::linked_list::ExtractIf<'a, T, F, A>
where F: Unpin,

ยง

impl<'a, T, F, A> Unpin for rustc_std_workspace_std::vec::ExtractIf<'a, T, F, A>
where F: Unpin,

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<'a, T, P> Unpin for rustc_std_workspace_std::slice::RSplitN<'a, T, P>
where P: Unpin,

ยง

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

ยง

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

ยง

impl<'a, T, P> Unpin for rustc_std_workspace_std::slice::SplitInclusive<'a, T, P>
where P: Unpin,

ยง

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

ยง

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

ยง

impl<'a, T, P> Unpin for rustc_std_workspace_std::slice::SplitN<'a, T, P>
where P: Unpin,

ยง

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

ยง

impl<'a, T, S> Unpin for rustc_std_workspace_std::collections::hash_set::Entry<'a, T, S>
where T: Unpin,

ยง

impl<'a, T, S> Unpin for rustc_std_workspace_std::collections::hash_set::Difference<'a, T, S>

ยง

impl<'a, T, S> Unpin for rustc_std_workspace_std::collections::hash_set::Intersection<'a, T, S>

ยง

impl<'a, T, S> Unpin for rustc_std_workspace_std::collections::hash_set::OccupiedEntry<'a, T, S>

ยง

impl<'a, T, S> Unpin for rustc_std_workspace_std::collections::hash_set::SymmetricDifference<'a, T, S>

ยง

impl<'a, T, S> Unpin for rustc_std_workspace_std::collections::hash_set::Union<'a, T, S>

ยง

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

ยง

impl<'a, T, const N: usize> Unpin for rustc_std_workspace_std::slice::ArrayChunks<'a, T, N>

ยง

impl<'a, T, const N: usize> Unpin for ArrayChunksMut<'a, T, N>

ยง

impl<'a, T, const N: usize> Unpin for ArrayWindows<'a, T, N>

ยง

impl<'a, const N: usize> Unpin for CharArraySearcher<'a, N>

ยง

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

ยง

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

ยง

impl<'data> Unpin for BorrowedBuf<'data>

ยง

impl<'f> Unpin for VaListImpl<'f>

ยง

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

ยง

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

ยง

impl<'scope, T> Unpin for ScopedJoinHandle<'scope, T>

ยง

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

ยง

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

ยง

impl<A> Unpin for rustc_std_workspace_std::option::IntoIter<A>
where A: Unpin,

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<F> Unpin for OnceWith<F>
where 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>

ยง

impl<I> Unpin for DecodeUtf16<I>
where I: 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 Enumerate<I>
where I: Unpin,

ยง

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

ยง

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

ยง

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

ยง

impl<I> Unpin for Peekable<I>
where I: Unpin, <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 rustc_std_workspace_std::iter::Take<I>
where I: 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, F, const N: usize> Unpin for MapWindows<I, F, N>
where F: Unpin, I: Unpin, <I as Iterator>::Item: Unpin,

ยง

impl<I, G> Unpin for IntersperseWith<I, G>
where G: Unpin, <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 <U as IntoIterator>::IntoIter: Unpin, I: Unpin, F: Unpin,

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<K, V> Unpin for rustc_std_workspace_std::collections::hash_map::IntoKeys<K, V>
where K: Unpin, V: Unpin,

ยง

impl<K, V> Unpin for rustc_std_workspace_std::collections::hash_map::IntoValues<K, V>
where K: Unpin, V: Unpin,

ยง

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

ยง

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

ยง

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

ยง

impl<K, V, A> Unpin for BTreeMap<K, V, A>
where A: Unpin,

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<T> Unpin for rustc_std_workspace_std::sync::TryLockError<T>
where T: Unpin,

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<T> Unpin for Pending<T>

ยง

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

ยง

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

ยง

impl<T> Unpin for rustc_std_workspace_std::iter::Empty<T>

ยง

impl<T> Unpin for rustc_std_workspace_std::iter::Once<T>
where T: Unpin,

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<T> Unpin for Discriminant<T>

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<T> Unpin for AtomicPtr<T>

ยง

impl<T> Unpin for rustc_std_workspace_std::sync::mpmc::IntoIter<T>

ยง

impl<T> Unpin for rustc_std_workspace_std::sync::mpmc::Receiver<T>

ยง

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

ยง

impl<T> Unpin for rustc_std_workspace_std::sync::mpmc::Sender<T>

ยง

impl<T> Unpin for rustc_std_workspace_std::sync::mpsc::IntoIter<T>

ยง

impl<T> Unpin for rustc_std_workspace_std::sync::mpsc::Receiver<T>

ยง

impl<T> Unpin for rustc_std_workspace_std::sync::mpsc::Sender<T>

ยง

impl<T> Unpin for SyncSender<T>

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<T> Unpin for rustc_std_workspace_std::thread::local_impl::EagerStorage<T>
where T: Unpin,

ยง

impl<T> Unpin for JoinHandle<T>

ยง

impl<T> Unpin for LocalKey<T>

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<T, A> Unpin for rustc_std_workspace_std::rc::Weak<T, A>
where A: Unpin, T: ?Sized,

ยง

impl<T, A> Unpin for rustc_std_workspace_std::sync::Weak<T, A>
where A: Unpin, T: ?Sized,

ยง

impl<T, A> Unpin for rustc_std_workspace_std::vec::IntoIter<T, A>
where T: Unpin, A: Unpin,

ยง

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

ยง

impl<T, D> Unpin for rustc_std_workspace_std::thread::local_impl::LazyStorage<T, D>
where T: Unpin, D: Unpin,

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<T, const N: usize> Unpin for rustc_std_workspace_std::array::IntoIter<T, N>
where T: Unpin,

ยง

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

ยง

impl<T, const N: usize> Unpin for Simd<T, N>
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 W: Unpin + ?Sized,

ยง

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

ยง

impl<const N: usize> Unpin for LaneCount<N>