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.

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: ?Sized> Unpin for DynMetadata<Dyn>

1.64.0 · Source§

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

Source§

impl<I> Unpin for FromIter<I>

1.48.0 · Source§

impl<T> Unpin for Ready<T>

1.28.0 · Source§

impl<T> Unpin for NonZero<T>

Source§

impl<T: ?Sized> !Unpin for UnsafePinned<T>

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: ?Sized> Unpin for *const T

1.38.0 · Source§

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

1.33.0 · Source§

impl<T: ?Sized> Unpin for &T

1.33.0 · Source§

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

Auto implementors§

§

impl Unpin for AsciiChar

§

impl Unpin for CharErrorKind

§

impl Unpin for EscapeDebugInner

§

impl Unpin for core::cmp::Ordering

§

impl Unpin for Infallible

§

impl Unpin for FindImm

§

impl Unpin for FromBytesWithNulError

§

impl Unpin for c_void

§

impl Unpin for core::fmt::Alignment

§

impl Unpin for DebugAsHex

§

impl Unpin for core::fmt::Sign

§

impl Unpin for Count

§

impl Unpin for BasicBlock

§

impl Unpin for UnwindTerminateReason

§

impl Unpin for IpAddr

§

impl Unpin for Ipv6MulticastScope

§

impl Unpin for AddrKind

§

impl Unpin for SocketAddr

§

impl Unpin for FloatErrorKind

§

impl Unpin for FpCategory

§

impl Unpin for IntErrorKind

§

impl Unpin for FullDecoded

§

impl Unpin for core::num::flt2dec::Sign

§

impl Unpin for OneSidedRangeBound

§

impl Unpin for NeverShortCircuitResidual

§

impl Unpin for AlignmentEnum

§

impl Unpin for Direction

§

impl Unpin for GetDisjointMutError

§

impl Unpin for MatchOnly

§

impl Unpin for RejectAndMatch

§

impl Unpin for SearchStep

§

impl Unpin for StrSearcherImpl

§

impl Unpin for core::sync::atomic::Ordering

§

impl Unpin for TryFromFloatSecsErrorKind

§

impl Unpin for bool

§

impl Unpin for char

§

impl Unpin for f16

§

impl Unpin for f32

§

impl Unpin for f64

§

impl Unpin for f128

§

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 str

§

impl Unpin for u8

§

impl Unpin for u16

§

impl Unpin for u32

§

impl Unpin for u64

§

impl Unpin for u128

§

impl Unpin for ()

§

impl Unpin for usize

§

impl Unpin for Layout

§

impl Unpin for LayoutError

§

impl Unpin for AllocError

§

impl Unpin for TypeId

§

impl Unpin for TryFromSliceError

§

impl Unpin for core::ascii::EscapeDefault

§

impl Unpin for TryCaptureWithDebug

§

impl Unpin for TryCaptureWithoutDebug

§

impl Unpin for ByteStr

§

impl Unpin for BorrowError

§

impl Unpin for BorrowMutError

§

impl Unpin for CharTryFromError

§

impl Unpin for ParseCharError

§

impl Unpin for DecodeUtf16Error

§

impl Unpin for EscapeDebugExtArgs

§

impl Unpin for CaseMappingIter

§

impl Unpin for core::char::EscapeDebug

§

impl Unpin for core::char::EscapeDefault

§

impl Unpin for core::char::EscapeUnicode

§

impl Unpin for ToLowercase

§

impl Unpin for ToUppercase

§

impl Unpin for TryFromCharError

§

impl Unpin for float64x1_t

§

impl Unpin for float64x1x2_t

§

impl Unpin for float64x1x3_t

§

impl Unpin for float64x1x4_t

§

impl Unpin for float64x2_t

§

impl Unpin for float64x2x2_t

§

impl Unpin for float64x2x3_t

§

impl Unpin for float64x2x4_t

§

impl Unpin for SY

§

impl Unpin for float16x4_t

§

impl Unpin for float16x4x2_t

§

impl Unpin for float16x4x3_t

§

impl Unpin for float16x4x4_t

§

impl Unpin for float16x8_t

§

impl Unpin for float16x8x2_t

§

impl Unpin for float16x8x3_t

§

impl Unpin for float16x8x4_t

§

impl Unpin for float32x2_t

§

impl Unpin for float32x2x2_t

§

impl Unpin for float32x2x3_t

§

impl Unpin for float32x2x4_t

§

impl Unpin for float32x4_t

§

impl Unpin for float32x4x2_t

§

impl Unpin for float32x4x3_t

§

impl Unpin for float32x4x4_t

§

impl Unpin for int8x8_t

§

impl Unpin for int8x8x2_t

§

impl Unpin for int8x8x3_t

§

impl Unpin for int8x8x4_t

§

impl Unpin for int8x16_t

§

impl Unpin for int8x16x2_t

§

impl Unpin for int8x16x3_t

§

impl Unpin for int8x16x4_t

§

impl Unpin for int16x4_t

§

impl Unpin for int16x4x2_t

§

impl Unpin for int16x4x3_t

§

impl Unpin for int16x4x4_t

§

impl Unpin for int16x8_t

§

impl Unpin for int16x8x2_t

§

impl Unpin for int16x8x3_t

§

impl Unpin for int16x8x4_t

§

impl Unpin for int32x2_t

§

impl Unpin for int32x2x2_t

§

impl Unpin for int32x2x3_t

§

impl Unpin for int32x2x4_t

§

impl Unpin for int32x4_t

§

impl Unpin for int32x4x2_t

§

impl Unpin for int32x4x3_t

§

impl Unpin for int32x4x4_t

§

impl Unpin for int64x1_t

§

impl Unpin for int64x1x2_t

§

impl Unpin for int64x1x3_t

§

impl Unpin for int64x1x4_t

§

impl Unpin for int64x2_t

§

impl Unpin for int64x2x2_t

§

impl Unpin for int64x2x3_t

§

impl Unpin for int64x2x4_t

§

impl Unpin for poly8x8_t

§

impl Unpin for poly8x8x2_t

§

impl Unpin for poly8x8x3_t

§

impl Unpin for poly8x8x4_t

§

impl Unpin for poly8x16_t

§

impl Unpin for poly8x16x2_t

§

impl Unpin for poly8x16x3_t

§

impl Unpin for poly8x16x4_t

§

impl Unpin for poly16x4_t

§

impl Unpin for poly16x4x2_t

§

impl Unpin for poly16x4x3_t

§

impl Unpin for poly16x4x4_t

§

impl Unpin for poly16x8_t

§

impl Unpin for poly16x8x2_t

§

impl Unpin for poly16x8x3_t

§

impl Unpin for poly16x8x4_t

§

impl Unpin for poly64x1_t

§

impl Unpin for poly64x1x2_t

§

impl Unpin for poly64x1x3_t

§

impl Unpin for poly64x1x4_t

§

impl Unpin for poly64x2_t

§

impl Unpin for poly64x2x2_t

§

impl Unpin for poly64x2x3_t

§

impl Unpin for poly64x2x4_t

§

impl Unpin for uint8x8_t

§

impl Unpin for uint8x8x2_t

§

impl Unpin for uint8x8x3_t

§

impl Unpin for uint8x8x4_t

§

impl Unpin for uint8x16_t

§

impl Unpin for uint8x16x2_t

§

impl Unpin for uint8x16x3_t

§

impl Unpin for uint8x16x4_t

§

impl Unpin for uint16x4_t

§

impl Unpin for uint16x4x2_t

§

impl Unpin for uint16x4x3_t

§

impl Unpin for uint16x4x4_t

§

impl Unpin for uint16x8_t

§

impl Unpin for uint16x8x2_t

§

impl Unpin for uint16x8x3_t

§

impl Unpin for uint16x8x4_t

§

impl Unpin for uint32x2_t

§

impl Unpin for uint32x2x2_t

§

impl Unpin for uint32x2x3_t

§

impl Unpin for uint32x2x4_t

§

impl Unpin for uint32x4_t

§

impl Unpin for uint32x4x2_t

§

impl Unpin for uint32x4x3_t

§

impl Unpin for uint32x4x4_t

§

impl Unpin for uint64x1_t

§

impl Unpin for uint64x1x2_t

§

impl Unpin for uint64x1x3_t

§

impl Unpin for uint64x1x4_t

§

impl Unpin for uint64x2_t

§

impl Unpin for uint64x2x2_t

§

impl Unpin for uint64x2x3_t

§

impl Unpin for uint64x2x4_t

§

impl Unpin for v4f64

§

impl Unpin for v4i64

§

impl Unpin for v4u64

§

impl Unpin for v8f32

§

impl Unpin for v8i32

§

impl Unpin for v8u32

§

impl Unpin for v16i16

§

impl Unpin for v16u16

§

impl Unpin for v32i8

§

impl Unpin for v32u8

§

impl Unpin for v2f64

§

impl Unpin for v2i64

§

impl Unpin for v2u64

§

impl Unpin for v4f32

§

impl Unpin for v4i32

§

impl Unpin for v4u32

§

impl Unpin for v8i16

§

impl Unpin for v8u16

§

impl Unpin for v16i8

§

impl Unpin for v16u8

§

impl Unpin for f16x2

§

impl Unpin for core::core_arch::powerpc::altivec::vector_bool_char

§

impl Unpin for core::core_arch::powerpc::altivec::vector_bool_int

§

impl Unpin for core::core_arch::powerpc::altivec::vector_bool_short

§

impl Unpin for core::core_arch::powerpc::altivec::vector_float

§

impl Unpin for core::core_arch::powerpc::altivec::vector_signed_char

§

impl Unpin for core::core_arch::powerpc::altivec::vector_signed_int

§

impl Unpin for core::core_arch::powerpc::altivec::vector_signed_short

§

impl Unpin for core::core_arch::powerpc::altivec::vector_unsigned_char

§

impl Unpin for core::core_arch::powerpc::altivec::vector_unsigned_int

§

impl Unpin for core::core_arch::powerpc::altivec::vector_unsigned_short

§

impl Unpin for vector_bool_long

§

impl Unpin for core::core_arch::powerpc::vsx::vector_double

§

impl Unpin for vector_signed_long

§

impl Unpin for vector_unsigned_long

§

impl Unpin for core::core_arch::s390x::vector::vector_bool_char

§

impl Unpin for core::core_arch::s390x::vector::vector_bool_int

§

impl Unpin for vector_bool_long_long

§

impl Unpin for core::core_arch::s390x::vector::vector_bool_short

§

impl Unpin for core::core_arch::s390x::vector::vector_double

§

impl Unpin for core::core_arch::s390x::vector::vector_float

§

impl Unpin for core::core_arch::s390x::vector::vector_signed_char

§

impl Unpin for core::core_arch::s390x::vector::vector_signed_int

§

impl Unpin for vector_signed_long_long

§

impl Unpin for core::core_arch::s390x::vector::vector_signed_short

§

impl Unpin for core::core_arch::s390x::vector::vector_unsigned_char

§

impl Unpin for core::core_arch::s390x::vector::vector_unsigned_int

§

impl Unpin for vector_unsigned_long_long

§

impl Unpin for core::core_arch::s390x::vector::vector_unsigned_short

§

impl Unpin for f16x4

§

impl Unpin for f16x8

§

impl Unpin for f16x16

§

impl Unpin for f16x32

§

impl Unpin for f32x2

§

impl Unpin for f32x4

§

impl Unpin for f32x8

§

impl Unpin for f32x16

§

impl Unpin for f64x1

§

impl Unpin for f64x2

§

impl Unpin for f64x4

§

impl Unpin for f64x8

§

impl Unpin for i8x2

§

impl Unpin for i8x4

§

impl Unpin for i8x8

§

impl Unpin for i8x16

§

impl Unpin for i8x32

§

impl Unpin for i8x64

§

impl Unpin for i16x2

§

impl Unpin for i16x4

§

impl Unpin for i16x8

§

impl Unpin for i16x16

§

impl Unpin for i16x32

§

impl Unpin for i32x2

§

impl Unpin for i32x4

§

impl Unpin for i32x8

§

impl Unpin for i32x16

§

impl Unpin for i32x32

§

impl Unpin for i64x1

§

impl Unpin for i64x2

§

impl Unpin for i64x4

§

impl Unpin for i64x8

§

impl Unpin for m8x16

§

impl Unpin for m8x32

§

impl Unpin for m16x8

§

impl Unpin for m16x16

§

impl Unpin for m32x4

§

impl Unpin for m32x8

§

impl Unpin for m64x2

§

impl Unpin for u8x2

§

impl Unpin for u8x4

§

impl Unpin for u8x8

§

impl Unpin for u8x16

§

impl Unpin for u8x32

§

impl Unpin for u8x64

§

impl Unpin for u16x2

§

impl Unpin for u16x4

§

impl Unpin for u16x8

§

impl Unpin for u16x16

§

impl Unpin for u16x32

§

impl Unpin for u16x64

§

impl Unpin for u32x2

§

impl Unpin for u32x4

§

impl Unpin for u32x8

§

impl Unpin for u32x16

§

impl Unpin for u32x32

§

impl Unpin for u64x1

§

impl Unpin for u64x2

§

impl Unpin for u64x4

§

impl Unpin for u64x8

§

impl Unpin for v128

§

impl Unpin for CpuidResult

§

impl Unpin for AesOutput

§

impl Unpin for EncodeKey128Output

§

impl Unpin for EncodeKey256Output

§

impl Unpin for WideAesOutput

§

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 Internal

§

impl Unpin for CStr

§

impl Unpin for FromBytesUntilNulError

§

impl Unpin for PadAdapterState

§

impl Unpin for Binary

§

impl Unpin for LowerHex

§

impl Unpin for Octal

§

impl Unpin for UpperHex

§

impl Unpin for Placeholder

§

impl Unpin for UnsafeArg

§

impl Unpin for Error

§

impl Unpin for FormattingOptions

§

impl Unpin for PostPadding

§

impl Unpin for Sip13Rounds

§

impl Unpin for Sip24Rounds

§

impl Unpin for SipHasher24

§

impl Unpin for SipHasher

§

impl Unpin for core::hash::sip::State

§

impl Unpin for ReturnToArg

§

impl Unpin for UnwindActionArg

§

impl Unpin for Assume

§

impl Unpin for Ipv4Addr

§

impl Unpin for Ipv6Addr

§

impl Unpin for AddrParseError

§

impl Unpin for SocketAddrV4

§

impl Unpin for SocketAddrV6

§

impl Unpin for Big32x40

§

impl Unpin for Big8x3

§

impl Unpin for BiasedFp

§

impl Unpin for Decimal

§

impl Unpin for DecimalSeq

§

impl Unpin for ParseFloatError

§

impl Unpin for ParseIntError

§

impl Unpin for TryFromIntError

§

impl Unpin for Decoded

§

impl Unpin for I32NotAllOnes

§

impl Unpin for I64NotAllOnes

§

impl Unpin for Nanoseconds

§

impl Unpin for NonZeroI8Inner

§

impl Unpin for NonZeroI16Inner

§

impl Unpin for NonZeroI32Inner

§

impl Unpin for NonZeroI64Inner

§

impl Unpin for NonZeroI128Inner

§

impl Unpin for NonZeroIsizeInner

§

impl Unpin for NonZeroU8Inner

§

impl Unpin for NonZeroU16Inner

§

impl Unpin for NonZeroU32Inner

§

impl Unpin for NonZeroU64Inner

§

impl Unpin for NonZeroU128Inner

§

impl Unpin for NonZeroUsizeInner

§

impl Unpin for U32NotAllOnes

§

impl Unpin for U64NotAllOnes

§

impl Unpin for UsizeNoHighBit

§

impl Unpin for IndexRange

§

impl Unpin for core::ptr::alignment::Alignment

§

impl Unpin for RangeFull

§

impl Unpin for EscapeByte

§

impl Unpin for DriftsortRun

§

impl Unpin for ParseBoolError

§

impl Unpin for Utf8Error

§

impl Unpin for EmptyNeedle

§

impl Unpin for TwoWaySearcher

§

impl Unpin for BytesIsNotEmpty

§

impl Unpin for CharEscapeDebugContinue

§

impl Unpin for CharEscapeDefault

§

impl Unpin for CharEscapeUnicode

§

impl Unpin for IsAsciiWhitespace

§

impl Unpin for IsNotEmpty

§

impl Unpin for IsWhitespace

§

impl Unpin for LinesMap

§

impl Unpin for UnsafeBytesToStr

§

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 RawWaker

§

impl Unpin for RawWakerVTable

§

impl Unpin for Duration

§

impl Unpin for TryFromFloatSecsError

§

impl Unpin for ShortOffsetRunHeader

§

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

§

impl<'a> Unpin for ArgumentType<'a>

§

impl<'a> Unpin for Part<'a>

§

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

§

impl<'a> Unpin for ExtData<'a>

§

impl<'a> Unpin for Source<'a>

§

impl<'a> Unpin for core::ffi::c_str::Bytes<'a>

§

impl<'a> Unpin for Argument<'a>

§

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

§

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

§

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

§

impl<'a> Unpin for Parser<'a>

§

impl<'a> Unpin for Formatted<'a>

§

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

§

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

§

impl<'a> Unpin for PanicMessage<'a>

§

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

§

impl<'a> Unpin for core::str::iter::Bytes<'a>

§

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

§

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

§

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

§

impl<'a> Unpin for core::str::iter::EscapeDebug<'a>

§

impl<'a> Unpin for core::str::iter::EscapeDefault<'a>

§

impl<'a> Unpin for core::str::iter::EscapeUnicode<'a>

§

impl<'a> Unpin for Lines<'a>

§

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

§

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

§

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

§

impl<'a> Unpin for Debug<'a>

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<'a, 'b> Unpin for DebugInner<'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 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 core::option::Iter<'a, A>

§

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

§

impl<'a, C> Unpin for MultiCharEqSearcher<'a, C>
where C: Unpin,

§

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

§

impl<'a, I> Unpin for TaggedOption<'a, I>
where <I as Type<'a>>::Reified: Unpin,

§

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

§

impl<'a, I, R> Unpin for GenericShunt<'a, I, R>
where I: Unpin,

§

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

§

impl<'a, P> Unpin for MatchIndicesInternal<'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 MatchesInternal<'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 core::str::iter::RSplit<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

§

impl<'a, P> Unpin for core::str::iter::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 core::str::iter::Split<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

§

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

§

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

§

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

§

impl<'a, P> Unpin for SplitNInternal<'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 Drain<'a, T>

§

impl<'a, T> Unpin for core::array::Guard<'a, T>

§

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

§

impl<'a, T> Unpin for core::mem::maybe_uninit::Guard<'a, T>

§

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

§

impl<'a, T> Unpin for core::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 core::slice::iter::Iter<'a, T>

§

impl<'a, T> Unpin for core::slice::iter::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, 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 core::slice::iter::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 core::slice::iter::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 core::slice::iter::Split<'a, T, P>
where P: Unpin,

§

impl<'a, T, P> Unpin for core::slice::iter::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 core::slice::iter::SplitN<'a, T, P>
where P: Unpin,

§

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

§

impl<'a, T, const N: usize> Unpin for core::slice::iter::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> Unpin for BorrowRef<'b>

§

impl<'b> Unpin for BorrowRefMut<'b>

§

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

§

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

§

impl<'buf, 'state> Unpin for PadAdapter<'buf, 'state>

§

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

§

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

§

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

§

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

§

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

§

impl<A> Unpin for Item<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 Chain<A, B>
where A: Unpin, B: Unpin,

§

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

§

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

§

impl<C> Unpin for MultiCharEqPattern<C>
where C: Unpin,

§

impl<DATA> Unpin for PolymorphicIter<DATA>
where DATA: Unpin + ?Sized,

§

impl<E> Unpin for Tagged<E>
where E: Unpin + ?Sized,

§

impl<E, M> Unpin for Capture<E, M>
where E: Unpin, M: Unpin,

§

impl<F> Unpin for MaybeDone<F>
where F: Unpin, <F as Future>::Output: Unpin,

§

impl<F> Unpin for core::fmt::builders::FromFn<F>
where F: Unpin,

§

impl<F> Unpin for core::iter::sources::from_fn::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 core::error::tags::Ref<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 Take<I>
where I: Unpin,

§

impl<I> Unpin for GenericSplitN<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> Unpin for FlattenCompat<I, U>
where U: Unpin, I: 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 core::iter::adapters::array_chunks::ArrayChunks<I, N>
where I: Unpin, <I as Iterator>::Item: Unpin,

§

impl<I, const N: usize> Unpin for MapWindowsInner<I, N>
where I: Unpin, <I as Iterator>::Item: Unpin,

§

impl<Idx> Unpin for core::ops::range::Range<Idx>
where Idx: Unpin,

§

impl<Idx> Unpin for core::ops::range::RangeFrom<Idx>
where Idx: Unpin,

§

impl<Idx> Unpin for core::ops::range::RangeInclusive<Idx>
where Idx: Unpin,

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<Ret, T> Unpin for fn(T₁, T₂, …, Tₙ) -> Ret

§

impl<S> Unpin for Hasher<S>
where S: Unpin,

§

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

§

impl<T> Unpin for Bound<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 (T₁, T₂, …, Tₙ)
where T: Unpin,

§

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

§

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

§

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

§

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 Unaligned<T>
where T: Unpin,

§

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

§

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

§

impl<T> Unpin for Pending<T>

§

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

§

impl<T> Unpin for Empty<T>

§

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

§

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

§

impl<T> Unpin for Discriminant<T>

§

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

§

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

§

impl<T> Unpin for NeverShortCircuit<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 core::result::IntoIter<T>
where T: Unpin,

§

impl<T> Unpin for CopyOnDrop<T>

§

impl<T> Unpin for MergeState<T>

§

impl<T> Unpin for core::slice::sort::stable::quicksort::PartitionState<T>

§

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

§

impl<T> Unpin for GapGuardRaw<T>

§

impl<T> Unpin for core::slice::sort::unstable::quicksort::PartitionState<T>

§

impl<T> Unpin for AtomicPtr<T>

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<T, F> Unpin for core::cell::lazy::State<T, F>
where F: Unpin, T: 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, U> Unpin for PackedTuple<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 core::array::iter::IntoIter<T, N>
where T: Unpin,

§

impl<T, const N: usize> Unpin for core::core_simd::masks::mask_impl::Mask<T, N>
where T: Unpin,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<const LEN: usize> Unpin for SimdShuffleIdx<LEN>

§

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

§

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

§

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

§

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

§

impl<const N: usize> Unpin for [u8; N]

§

impl<const SIZE: usize> Unpin for DisplayBuffer<SIZE>