std::marker::Unpin - Rust
Description: API documentation for the Rust `Unpin` trait in crate `std`.
Keywords: rust, rustlang, rust-lang, Unpin

# 1.33.0[−][src]Trait std::marker::Unpin

    #[lang = "unpin"]pub auto trait Unpin { }

Types that can be safely moved after being pinned.

Rust itself has no notion of immovable types, and considers moves (e.g., through assignment or `mem::replace`) to always be safe.

The `Pin` type is used instead to prevent moves through the type system. Pointers `P<T>` wrapped in the `Pin<P<T>>` wrapper can't be moved out of. See the `pin` module documentation for more information on pinning.

Implementing the `Unpin` trait for `T` lifts the restrictions of pinning off the type, which then allows moving `T` out of `Pin<P<T>>` with functions such as `mem::replace`.

`Unpin` has no consequence at all for non-pinned data. In particular, `mem::replace` happily moves `!Unpin` data (it works for any `&mut T`, not just when `T: Unpin`). However, you cannot use `mem::replace` on data wrapped inside a `Pin<P<T>>` because you cannot get the `&mut T` you need for that, 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());

Run

This trait is automatically implemented for almost every type.

## Implementations on Foreign Types

### `impl Unpin for Argument`

### `impl Unpin for FormatSpec`

### `impl Unpin for Alignment`

### `impl Unpin for Count`

### `impl<F> Unpin for PollFn<F>`[src]

Loading content...

## Implementors

### `impl !Unpin for PhantomPinned`[src]

### `impl Unpin for Waker`[src]

### `impl<'a, T> Unpin for &'a T where
T: 'a + ?Sized,` [src]

### `impl<'a, T> Unpin for &'a mut T where
T: 'a + ?Sized,` [src]

### `impl<T> Unpin for *const T where
T: ?Sized,` [src]

### `impl<T> Unpin for *mut T where
T: ?Sized,` [src]

### `impl<T> Unpin for Pending<T>`[src]

### `impl<T> Unpin for Ready<T>`[src]

### `impl<T> Unpin for Rc<T> where
T: ?Sized,` [src]

### `impl<T> Unpin for Arc<T> where
T: ?Sized,` [src]

### `impl<T, A> Unpin for Box<T, A> where
A: AllocRef,
T: ?Sized,` [src]

Loading content...

## Auto implementors

### `impl Unpin for BacktraceStatus`

### `impl Unpin for std::cmp::Ordering`

### `impl Unpin for TryReserveError`

### `impl Unpin for Infallible`

### `impl Unpin for VarError`

### `impl Unpin for c_void`

### `impl Unpin for std::fmt::Alignment`

### `impl Unpin for ErrorKind`

### `impl Unpin for SeekFrom`

### `impl Unpin for IpAddr`

### `impl Unpin for Ipv6MulticastScope`

### `impl Unpin for Shutdown`

### `impl Unpin for std::net::SocketAddr`

### `impl Unpin for FpCategory`

### `impl Unpin for IntErrorKind`

### `impl Unpin for SearchStep`

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

### `impl Unpin for RecvTimeoutError`

### `impl Unpin for TryRecvError`

### `impl Unpin for bool`

### `impl Unpin for char`

### `impl Unpin for f32`

### `impl Unpin for f64`

### `impl Unpin for i8`

### `impl Unpin for i16`

### `impl Unpin for i32`

### `impl Unpin for i64`

### `impl Unpin for i128`

### `impl Unpin for isize`

### `impl Unpin for [u8]`

### `impl Unpin for str`

### `impl Unpin for u8`

### `impl Unpin for u16`

### `impl Unpin for u32`

### `impl Unpin for u64`

### `impl Unpin for u128`

### `impl Unpin for usize`

### `impl Unpin for AllocError`

### `impl Unpin for Global`

### `impl Unpin for Layout`

### `impl Unpin for LayoutErr`

### `impl Unpin for System`

### `impl Unpin for TypeId`

### `impl Unpin for TryFromSliceError`

### `impl Unpin for std::ascii::EscapeDefault`

### `impl Unpin for Backtrace`

### `impl Unpin for BorrowError`

### `impl Unpin for BorrowMutError`

### `impl Unpin for CharTryFromError`

### `impl Unpin for DecodeUtf16Error`

### `impl Unpin for std::char::EscapeDebug`

### `impl Unpin for std::char::EscapeDefault`

### `impl Unpin for std::char::EscapeUnicode`

### `impl Unpin for ParseCharError`

### `impl Unpin for ToLowercase`

### `impl Unpin for ToUppercase`

### `impl Unpin for DefaultHasher`

### `impl Unpin for RandomState`

### `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 FromBytesWithNulError`

### `impl Unpin for FromVecWithNulError`

### `impl Unpin for IntoStringError`

### `impl Unpin for NulError`

### `impl Unpin for OsStr`

### `impl Unpin for OsString`

### `impl Unpin for std::fmt::Error`

### `impl Unpin for DirBuilder`

### `impl Unpin for DirEntry`

### `impl Unpin for File`

### `impl Unpin for FileType`

### `impl Unpin for Metadata`

### `impl Unpin for OpenOptions`

### `impl Unpin for Permissions`

### `impl Unpin for ReadDir`

### `impl Unpin for SipHasher`

### `impl Unpin for std::io::Empty`

### `impl Unpin for std::io::Error`

### `impl Unpin for Initializer`

### `impl Unpin for std::io::Repeat`

### `impl Unpin for Sink`

### `impl Unpin for Stderr`

### `impl Unpin for Stdin`

### `impl Unpin for Stdout`

### `impl Unpin for AddrParseError`

### `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 NonZeroI8`

### `impl Unpin for NonZeroI16`

### `impl Unpin for NonZeroI32`

### `impl Unpin for NonZeroI64`

### `impl Unpin for NonZeroI128`

### `impl Unpin for NonZeroIsize`

### `impl Unpin for NonZeroU8`

### `impl Unpin for NonZeroU16`

### `impl Unpin for NonZeroU32`

### `impl Unpin for NonZeroU64`

### `impl Unpin for NonZeroU128`

### `impl Unpin for NonZeroUsize`

### `impl Unpin for ParseFloatError`

### `impl Unpin for ParseIntError`

### `impl Unpin for TryFromIntError`

### `impl Unpin for RangeFull`

### `impl Unpin for NoneError`

### `impl Unpin for stat`

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

### `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 Output`

### `impl Unpin for Stdio`

### `impl Unpin for TraitObject`

### `impl Unpin for ParseBoolError`

### `impl Unpin for Utf8Error`

### `impl Unpin for FromUtf8Error`

### `impl Unpin for FromUtf16Error`

### `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 AtomicI128`

### `impl Unpin for AtomicIsize`

### `impl Unpin for AtomicU8`

### `impl Unpin for AtomicU16`

### `impl Unpin for AtomicU32`

### `impl Unpin for AtomicU64`

### `impl Unpin for AtomicU128`

### `impl Unpin for AtomicUsize`

### `impl Unpin for RecvError`

### `impl Unpin for Barrier`

### `impl Unpin for BarrierWaitResult`

### `impl Unpin for Condvar`

### `impl Unpin for 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<'a> Unpin for Component<'a>`

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

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

### `impl<'a> Unpin for std::error::Chain<'a>`

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

### `impl<'a> Unpin for Formatter<'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 std::net::Incoming<'a>`

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

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

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

### `impl<'a> Unpin for PanicInfo<'a>`

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

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

### `impl<'a> Unpin for Display<'a>`

### `impl<'a> Unpin for 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 CharSearcher<'a>`

### `impl<'a> Unpin for 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 std::str::EscapeDebug<'a>`

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

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

### `impl<'a> Unpin for 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 std::string::Drain<'a>`

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

### `impl<'a, 'b> Unpin for DebugList<'a, 'b> where
'b: 'a,`

### `impl<'a, 'b> Unpin for DebugMap<'a, 'b> where
'b: 'a,`

### `impl<'a, 'b> Unpin for DebugSet<'a, 'b> where
'b: 'a,`

### `impl<'a, 'b> Unpin for DebugStruct<'a, 'b> where
'b: 'a,`

### `impl<'a, 'b> Unpin for DebugTuple<'a, 'b> where
'b: 'a,`

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

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

### `impl<'a, 'f> Unpin for VaList<'a, 'f> where
'f: 'a,`

### `impl<'a, A> Unpin for std::option::Iter<'a, A>`

### `impl<'a, A> Unpin for std::option::IterMut<'a, A>`

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

### `impl<'a, F> Unpin for CharPredicateSearcher<'a, F> where
F: MultiCharEq + Unpin,`

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

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

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

### `impl<'a, K, F> Unpin for std::collections::hash_set::DrainFilter<'a, K, F> where
F: Unpin,`

### `impl<'a, K, V> Unpin for std::collections::btree_map::Entry<'a, K, V> where
K: Unpin,`

### `impl<'a, K, V> Unpin for std::collections::hash_map::Entry<'a, K, V> where
K: Unpin,`

### `impl<'a, K, V> Unpin for std::collections::btree_map::Iter<'a, K, V>`

### `impl<'a, K, V> Unpin for std::collections::btree_map::IterMut<'a, K, V>`

### `impl<'a, K, V> Unpin for std::collections::btree_map::Keys<'a, K, V>`

### `impl<'a, K, V> Unpin for std::collections::btree_map::OccupiedEntry<'a, K, V>`

### `impl<'a, K, V> Unpin for std::collections::btree_map::Range<'a, K, V>`

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

### `impl<'a, K, V> Unpin for std::collections::btree_map::VacantEntry<'a, K, V> where
K: Unpin,`

### `impl<'a, K, V> Unpin for std::collections::btree_map::Values<'a, K, V>`

### `impl<'a, K, V> Unpin for std::collections::btree_map::ValuesMut<'a, K, V>`

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

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

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

### `impl<'a, K, V> Unpin for std::collections::hash_map::Keys<'a, K, V>`

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

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

### `impl<'a, K, V> Unpin for std::collections::hash_map::Values<'a, K, V>`

### `impl<'a, K, V> Unpin for std::collections::hash_map::ValuesMut<'a, K, V>`

### `impl<'a, K, V, F> Unpin for std::collections::btree_map::DrainFilter<'a, K, V, F> where
F: Unpin,`

### `impl<'a, K, V, F> Unpin for std::collections::hash_map::DrainFilter<'a, K, V, F> where
F: Unpin,`

### `impl<'a, K, V, S> Unpin for RawEntryMut<'a, K, V, S>`

### `impl<'a, K, V, S> Unpin for RawEntryBuilder<'a, K, V, S>`

### `impl<'a, K, V, S> Unpin for RawEntryBuilderMut<'a, K, V, S>`

### `impl<'a, K, V, S> Unpin for RawOccupiedEntryMut<'a, K, V, S>`

### `impl<'a, K, V, S> Unpin for RawVacantEntryMut<'a, K, V, S>`

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

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

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

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

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

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

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

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

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

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

### `impl<'a, T> Unpin for std::collections::binary_heap::Drain<'a, T>`

### `impl<'a, T> Unpin for DrainSorted<'a, T>`

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

### `impl<'a, T> Unpin for PeekMut<'a, T>`

### `impl<'a, T> Unpin for std::collections::btree_set::Difference<'a, T>`

### `impl<'a, T> Unpin for std::collections::btree_set::Intersection<'a, T>`

### `impl<'a, T> Unpin for std::collections::btree_set::Iter<'a, T>`

### `impl<'a, T> Unpin for std::collections::btree_set::Range<'a, T>`

### `impl<'a, T> Unpin for std::collections::btree_set::SymmetricDifference<'a, T>`

### `impl<'a, T> Unpin for std::collections::btree_set::Union<'a, T>`

### `impl<'a, T> Unpin for std::collections::linked_list::Cursor<'a, T>`

### `impl<'a, T> Unpin for CursorMut<'a, T>`

### `impl<'a, T> Unpin for std::collections::linked_list::Iter<'a, T>`

### `impl<'a, T> Unpin for std::collections::linked_list::IterMut<'a, T>`

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

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

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

### `impl<'a, T> Unpin for std::result::Iter<'a, T>`

### `impl<'a, T> Unpin for 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 std::slice::Iter<'a, T>`

### `impl<'a, T> Unpin for 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 std::sync::mpsc::Iter<'a, T>`

### `impl<'a, T> Unpin for TryIter<'a, T>`

### `impl<'a, T> Unpin for std::vec::Drain<'a, T>`

### `impl<'a, T, F> Unpin for std::collections::btree_set::DrainFilter<'a, T, F> where
F: Unpin,`

### `impl<'a, T, F> Unpin for std::collections::linked_list::DrainFilter<'a, T, F> where
F: Unpin,`

### `impl<'a, T, F> Unpin for std::vec::DrainFilter<'a, T, F> where
F: Unpin,`

### `impl<'a, T, P> Unpin for 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 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 std::slice::Split<'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 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 std::collections::hash_set::Difference<'a, T, S>`

### `impl<'a, T, S> Unpin for std::collections::hash_set::Intersection<'a, T, S>`

### `impl<'a, T, S> Unpin for std::collections::hash_set::SymmetricDifference<'a, T, S>`

### `impl<'a, T, S> Unpin for std::collections::hash_set::Union<'a, T, S>`

### `impl<'a, T, const N: usize> Unpin for 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, T: ?Sized> Unpin for MutexGuard<'a, T>`

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

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

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

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

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

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

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

### `impl<A, B> Unpin for 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 std::io::Lines<B> where
B: Unpin,`

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

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

### `impl<F> Unpin for FromFn<F> where
F: Unpin,`

### `impl<F> Unpin for OnceWith<F> where
F: Unpin,`

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

### `impl<H> Unpin for BuildHasherDefault<H> where
H: Unpin,`

### `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: Unpin,
<<I as Iterator>::Item as IntoIterator>::IntoIter: Unpin,`

### `impl<I> Unpin for Fuse<I> where
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 std::iter::Take<I> where
I: Unpin,`

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

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

### `impl<I, F> Unpin for Map<I, F> where
F: 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
F: Unpin,
I: Unpin,
St: Unpin,`

### `impl<I, U, F> Unpin for FlatMap<I, U, F> where
F: Unpin,
I: Unpin,
<U as IntoIterator>::IntoIter: Unpin,`

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

### `impl<Idx> Unpin for RangeFrom<Idx> where
Idx: Unpin,`

### `impl<Idx> Unpin for RangeInclusive<Idx> where
Idx: Unpin,`

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

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

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

### `impl<K, V> Unpin for std::collections::btree_map::IntoIter<K, V>`

### `impl<K, V> Unpin for std::collections::btree_map::IntoKeys<K, V>`

### `impl<K, V> Unpin for std::collections::btree_map::IntoValues<K, V>`

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

### `impl<K, V> Unpin for std::collections::hash_map::IntoKeys<K, V> where
K: Unpin,
V: Unpin,`

### `impl<K, V> Unpin for std::collections::hash_map::IntoValues<K, V> where
K: Unpin,
V: Unpin,`

### `impl<K, V> Unpin for BTreeMap<K, V> where
K: Unpin,
V: Unpin,`

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

### `impl<P> Unpin for Pin<P> where
P: Unpin,`

### `impl<R> Unpin for BufReader<R> where
R: Unpin,`

### `impl<R> Unpin for 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 TryLockError<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 [T] where
T: Unpin,`

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

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

### `impl<T> Unpin for IntoIterSorted<T> where
T: Unpin,`

### `impl<T> Unpin for std::collections::btree_set::IntoIter<T>`

### `impl<T> Unpin for std::collections::linked_list::IntoIter<T>`

### `impl<T> Unpin for BTreeSet<T> where
T: Unpin,`

### `impl<T> Unpin for BinaryHeap<T> where
T: Unpin,`

### `impl<T> Unpin for LinkedList<T>`

### `impl<T> Unpin for VecDeque<T> where
T: Unpin,`

### `impl<T> Unpin for std::collections::vec_deque::IntoIter<T> where
T: Unpin,`

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

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

### `impl<T> Unpin for std::iter::Empty<T> where
T: Unpin,`

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

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

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

### `impl<T> Unpin for SyncOnceCell<T> where
T: Unpin,`

### `impl<T> Unpin for Discriminant<T> where
<T as DiscriminantKind>::Discriminant: Unpin,`

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

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

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

### `impl<T> Unpin for AtomicPtr<T>`

### `impl<T> Unpin for std::sync::mpsc::IntoIter<T>`

### `impl<T> Unpin for Receiver<T>`

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

### `impl<T> Unpin for Sender<T>`

### `impl<T> Unpin for SyncSender<T>`

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

### `impl<T> Unpin for JoinHandle<T>`

### `impl<T> Unpin for LocalKey<T>`

### `impl<T> Unpin for std::vec::IntoIter<T> where
T: Unpin,`

### `impl<T> Unpin for Vec<T> where
T: Unpin,`

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

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

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

### `impl<T, F> Unpin for Lazy<T, F> where
F: Unpin,
T: Unpin,`

### `impl<T, F> Unpin for SyncLazy<T, F> where
F: Unpin,
T: Unpin,`

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

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

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

### `impl<T, const N: usize> Unpin for std::array::IntoIter<T, N> where
T: Unpin,`

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

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

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

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

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

### `impl<T: ?Sized> Unpin for NonNull<T>`

### `impl<T: ?Sized> Unpin for std::rc::Weak<T>`

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

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

### `impl<T: ?Sized> Unpin for std::sync::Weak<T>`

### `impl<W> Unpin for BufWriter<W> where
W: Unpin,`

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

### `impl<W> Unpin for LineWriter<W> where
W: Unpin,`

### `impl<Y, R> Unpin for GeneratorState<Y, R> where
R: Unpin,
Y: Unpin,`

Loading content...