wiwi::prelude_std::marker

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

§

impl<'__pin, F> Unpin for Unconstrained<F>
where <PinnedFieldsOfHelperStruct<__Origin<'__pin, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,

§

impl<'__pin, R> Unpin for BufReader<R>
where <PinnedFieldsOfHelperStruct<__Origin<'__pin, R>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,

§

impl<'__pin, R> Unpin for Lines<R>
where <PinnedFieldsOfHelperStruct<__Origin<'__pin, R>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,

§

impl<'__pin, R> Unpin for Split<R>
where <PinnedFieldsOfHelperStruct<__Origin<'__pin, R>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,

§

impl<'__pin, R> Unpin for Take<R>
where <PinnedFieldsOfHelperStruct<__Origin<'__pin, R>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,

§

impl<'__pin, R, W> Unpin for Join<R, W>
where <PinnedFieldsOfHelperStruct<__Origin<'__pin, R, W>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,

§

impl<'__pin, RW> Unpin for BufStream<RW>
where <PinnedFieldsOfHelperStruct<__Origin<'__pin, RW>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,

§

impl<'__pin, T> Unpin for Timeout<T>
where <PinnedFieldsOfHelperStruct<__Origin<'__pin, T>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,

§

impl<'__pin, T, F> Unpin for TaskLocalFuture<T, F>
where <PinnedFieldsOfHelperStruct<__Origin<'__pin, T, F>> as PinnedFieldsOfHelperTrait>::Actual: Unpin, T: 'static,

§

impl<'__pin, W> Unpin for BufWriter<W>
where <PinnedFieldsOfHelperStruct<__Origin<'__pin, W>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,

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

§

impl<T> Unpin for JoinHandle<T>

§

impl<T> Unpin for Receiver<T>

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 wiwi::prelude_std::Box<T, A>
where A: Allocator, T: ?Sized,

1.33.0 · Source§

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

§

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

Source§

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

Auto implementors§

§

impl Unpin for wiwi::encoding::hex::DecodeError

§

impl Unpin for wiwi::encoding::z85::DecodeError

§

impl Unpin for wiwi::prelude_std::atomic::Ordering

§

impl Unpin for wiwi::prelude_std::cmp::Ordering

§

impl Unpin for Infallible

§

impl Unpin for VarError

§

impl Unpin for wiwi::prelude_std::fmt::Alignment

§

impl Unpin for BacktraceStyle

§

impl Unpin for SearchStep

§

impl Unpin for MarkerInit

§

impl Unpin for MarkerUninit

§

impl Unpin for wiwi::clock_timer::builder::Builder

§

impl Unpin for BuilderWithEnd

§

impl Unpin for BuilderWithInterval

§

impl Unpin for BuilderWithStart

§

impl Unpin for ClockTimer

§

impl Unpin for Tick

§

impl Unpin for WordRef

§

impl Unpin for Base16

§

impl Unpin for Base32

§

impl Unpin for Base64

§

impl Unpin for Hex

§

impl Unpin for RFC1751

§

impl Unpin for Z85

§

impl Unpin for EncodedReprInfo

§

impl Unpin for EndianBig

§

impl Unpin for EndianLittle

§

impl Unpin for EndianNative

§

impl Unpin for wiwi::parser::stateful::NumF32BE

§

impl Unpin for wiwi::parser::stateful::NumF32LE

§

impl Unpin for wiwi::parser::stateful::NumF32NE

§

impl Unpin for wiwi::parser::stateful::NumF64BE

§

impl Unpin for wiwi::parser::stateful::NumF64LE

§

impl Unpin for wiwi::parser::stateful::NumF64NE

§

impl Unpin for wiwi::parser::stateful::NumI8BE

§

impl Unpin for wiwi::parser::stateful::NumI8LE

§

impl Unpin for wiwi::parser::stateful::NumI8NE

§

impl Unpin for wiwi::parser::stateful::NumI16BE

§

impl Unpin for wiwi::parser::stateful::NumI16LE

§

impl Unpin for wiwi::parser::stateful::NumI16NE

§

impl Unpin for wiwi::parser::stateful::NumI32BE

§

impl Unpin for wiwi::parser::stateful::NumI32LE

§

impl Unpin for wiwi::parser::stateful::NumI32NE

§

impl Unpin for wiwi::parser::stateful::NumI64BE

§

impl Unpin for wiwi::parser::stateful::NumI64LE

§

impl Unpin for wiwi::parser::stateful::NumI64NE

§

impl Unpin for wiwi::parser::stateful::NumI128BE

§

impl Unpin for wiwi::parser::stateful::NumI128LE

§

impl Unpin for wiwi::parser::stateful::NumI128NE

§

impl Unpin for wiwi::parser::stateful::NumIsizeBE

§

impl Unpin for wiwi::parser::stateful::NumIsizeLE

§

impl Unpin for wiwi::parser::stateful::NumIsizeNE

§

impl Unpin for wiwi::parser::stateful::NumU8BE

§

impl Unpin for wiwi::parser::stateful::NumU8LE

§

impl Unpin for wiwi::parser::stateful::NumU8NE

§

impl Unpin for wiwi::parser::stateful::NumU16BE

§

impl Unpin for wiwi::parser::stateful::NumU16LE

§

impl Unpin for wiwi::parser::stateful::NumU16NE

§

impl Unpin for wiwi::parser::stateful::NumU32BE

§

impl Unpin for wiwi::parser::stateful::NumU32LE

§

impl Unpin for wiwi::parser::stateful::NumU32NE

§

impl Unpin for wiwi::parser::stateful::NumU64BE

§

impl Unpin for wiwi::parser::stateful::NumU64LE

§

impl Unpin for wiwi::parser::stateful::NumU64NE

§

impl Unpin for wiwi::parser::stateful::NumU128BE

§

impl Unpin for wiwi::parser::stateful::NumU128LE

§

impl Unpin for wiwi::parser::stateful::NumU128NE

§

impl Unpin for wiwi::parser::stateful::NumUsizeBE

§

impl Unpin for wiwi::parser::stateful::NumUsizeLE

§

impl Unpin for wiwi::parser::stateful::NumUsizeNE

§

impl Unpin for wiwi::parser::stateful::Take

§

impl Unpin for wiwi::parser::stateless::NumF32BE

§

impl Unpin for wiwi::parser::stateless::NumF32LE

§

impl Unpin for wiwi::parser::stateless::NumF32NE

§

impl Unpin for wiwi::parser::stateless::NumF64BE

§

impl Unpin for wiwi::parser::stateless::NumF64LE

§

impl Unpin for wiwi::parser::stateless::NumF64NE

§

impl Unpin for wiwi::parser::stateless::NumI8BE

§

impl Unpin for wiwi::parser::stateless::NumI8LE

§

impl Unpin for wiwi::parser::stateless::NumI8NE

§

impl Unpin for wiwi::parser::stateless::NumI16BE

§

impl Unpin for wiwi::parser::stateless::NumI16LE

§

impl Unpin for wiwi::parser::stateless::NumI16NE

§

impl Unpin for wiwi::parser::stateless::NumI32BE

§

impl Unpin for wiwi::parser::stateless::NumI32LE

§

impl Unpin for wiwi::parser::stateless::NumI32NE

§

impl Unpin for wiwi::parser::stateless::NumI64BE

§

impl Unpin for wiwi::parser::stateless::NumI64LE

§

impl Unpin for wiwi::parser::stateless::NumI64NE

§

impl Unpin for wiwi::parser::stateless::NumI128BE

§

impl Unpin for wiwi::parser::stateless::NumI128LE

§

impl Unpin for wiwi::parser::stateless::NumI128NE

§

impl Unpin for wiwi::parser::stateless::NumIsizeBE

§

impl Unpin for wiwi::parser::stateless::NumIsizeLE

§

impl Unpin for wiwi::parser::stateless::NumIsizeNE

§

impl Unpin for wiwi::parser::stateless::NumU8BE

§

impl Unpin for wiwi::parser::stateless::NumU8LE

§

impl Unpin for wiwi::parser::stateless::NumU8NE

§

impl Unpin for wiwi::parser::stateless::NumU16BE

§

impl Unpin for wiwi::parser::stateless::NumU16LE

§

impl Unpin for wiwi::parser::stateless::NumU16NE

§

impl Unpin for wiwi::parser::stateless::NumU32BE

§

impl Unpin for wiwi::parser::stateless::NumU32LE

§

impl Unpin for wiwi::parser::stateless::NumU32NE

§

impl Unpin for wiwi::parser::stateless::NumU64BE

§

impl Unpin for wiwi::parser::stateless::NumU64LE

§

impl Unpin for wiwi::parser::stateless::NumU64NE

§

impl Unpin for wiwi::parser::stateless::NumU128BE

§

impl Unpin for wiwi::parser::stateless::NumU128LE

§

impl Unpin for wiwi::parser::stateless::NumU128NE

§

impl Unpin for wiwi::parser::stateless::NumUsizeBE

§

impl Unpin for wiwi::parser::stateless::NumUsizeLE

§

impl Unpin for wiwi::parser::stateless::NumUsizeNE

§

impl Unpin for wiwi::parser::stateless::Take

§

impl Unpin for AtomicCounter

§

impl Unpin for ThreadCounter

§

impl Unpin for wiwi::serialiser::binary::Error

§

impl Unpin for AllocError

§

impl Unpin for Global

§

impl Unpin for Layout

§

impl Unpin for LayoutError

§

impl Unpin for System

§

impl Unpin for TryFromSliceError

§

impl Unpin for BorrowError

§

impl Unpin for BorrowMutError

§

impl Unpin for Args

§

impl Unpin for ArgsOs

§

impl Unpin for JoinPathsError

§

impl Unpin for Vars

§

impl Unpin for VarsOs

§

impl Unpin for wiwi::prelude_std::fmt::Error

§

impl Unpin for DefaultHasher

§

impl Unpin for RandomState

§

impl Unpin for SipHasher

§

impl Unpin for Assume

§

impl Unpin for RangeFull

§

impl Unpin for wiwi::prelude_std::ptr::Alignment

§

impl Unpin for ParseBoolError

§

impl Unpin for Utf8Error

§

impl Unpin for FromUtf8Error

§

impl Unpin for FromUtf16Error

§

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 String

§

impl Unpin for TypeId

§

impl Unpin for StringInlineable

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<'a> Unpin for Bytes<'a>

§

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

§

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

§

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

§

impl<'a> Unpin for EscapeDebug<'a>

§

impl<'a> Unpin for EscapeDefault<'a>

§

impl<'a> Unpin for EscapeUnicode<'a>

§

impl<'a> Unpin for wiwi::prelude_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 wiwi::prelude_std::string::Drain<'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, A> Unpin for wiwi::prelude_std::option::Iter<'a, A>

§

impl<'a, A> Unpin for wiwi::prelude_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, 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 wiwi::prelude_std::str::RSplit<'a, P>
where <P as Pattern>::Searcher<'a>: Unpin,

§

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

§

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

§

impl<'a, P> Unpin for wiwi::prelude_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 wiwi::prelude_std::result::Iter<'a, T>

§

impl<'a, T> Unpin for wiwi::prelude_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 wiwi::prelude_std::slice::Iter<'a, T>

§

impl<'a, T> Unpin for wiwi::prelude_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, A> Unpin for wiwi::prelude_std::vec::Drain<'a, T, A>

§

impl<'a, T, F, A> Unpin for 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 wiwi::prelude_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 wiwi::prelude_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 wiwi::prelude_std::slice::Split<'a, T, P>
where P: Unpin,

§

impl<'a, T, P> Unpin for wiwi::prelude_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 wiwi::prelude_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, const N: usize> Unpin for wiwi::prelude_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<A> Unpin for wiwi::prelude_std::iter::Repeat<A>
where A: Unpin,

§

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

§

impl<A> Unpin for wiwi::prelude_std::option::IntoIter<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, M> Unpin for RcStr<C, M>

§

impl<C, M> Unpin for RcStrWeak<C, M>

§

impl<C, V, S> Unpin for wiwi::rc::Rc<C, V, S>

§

impl<C, V, S> Unpin for RcWeak<C, V, S>

§

impl<E> Unpin for wiwi::parser::Error<E>
where E: Unpin,

§

impl<F> Unpin for wiwi::prelude_std::fmt::FromFn<F>
where F: Unpin,

§

impl<F> Unpin for wiwi::prelude_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<H> Unpin for BuildHasherDefault<H>

§

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 wiwi::prelude_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 wiwi::prelude_std::iter::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, O> Unpin for Success<I, O>
where O: 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 wiwi::prelude_std::iter::ArrayChunks<I, N>
where I: Unpin, <I as Iterator>::Item: Unpin,

§

impl<Idx> Unpin for 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<P, F, O> Unpin for wiwi::parser::util::Map<P, F, O>
where P: Unpin, F: Unpin,

§

impl<P, I, O, E> Unpin for wiwi::parser::stateful::Void<P, I, O, E>
where P: Unpin,

§

impl<P, I, O, E> Unpin for wiwi::parser::stateless::Repeat<P, I, O, E>
where P: Unpin,

§

impl<P, I, O, E> Unpin for Spin<P, I, O, E>
where P: Unpin,

§

impl<P, I, O, E> Unpin for wiwi::parser::stateless::Void<P, I, O, E>
where P: Unpin,

§

impl<P, I, O, E> Unpin for AdaptStateful<P, I, O, E>
where P: Unpin,

§

impl<P, I, O, E, EReal, PBefore, OBefore, EBefore, PAfter, OAfter, EAfter> Unpin for wiwi::parser::stateful::Delimited<P, I, O, E, EReal, PBefore, OBefore, EBefore, PAfter, OAfter, EAfter>
where PBefore: Unpin, P: Unpin, PAfter: Unpin,

§

impl<P, I, O, E, EReal, PBefore, OBefore, EBefore, PAfter, OAfter, EAfter> Unpin for wiwi::parser::stateless::Delimited<P, I, O, E, EReal, PBefore, OBefore, EBefore, PAfter, OAfter, EAfter>
where PBefore: Unpin, P: Unpin, PAfter: Unpin,

§

impl<Start, End, Interval> Unpin for wiwi::clock_timer::builder2::Builder<Start, End, Interval>
where Start: Unpin, End: Unpin, Interval: Unpin,

§

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

§

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

§

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

§

impl<T> Unpin for wiwi::parser::stateful::Tag<T>
where T: Unpin,

§

impl<T> Unpin for wiwi::parser::stateless::Tag<T>
where T: Unpin,

§

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

§

impl<T> Unpin for AsyncDropInPlace<T>
where <T as AsyncDestruct>::AsyncDestructor: Unpin, T: ?Sized,

§

impl<T> Unpin for Pending<T>

§

impl<T> Unpin for Empty<T>

§

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

§

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

§

impl<T> Unpin for Discriminant<T>

§

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 wiwi::prelude_std::result::IntoIter<T>
where T: Unpin,

§

impl<T> Unpin for AtomicPtr<T>

§

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

§

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

§

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

§

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

§

impl<T, A> Unpin for wiwi::prelude_std::ArcWeak<T, A>
where A: Unpin, T: ?Sized,

§

impl<T, A> Unpin for wiwi::prelude_std::RcWeak<T, A>
where A: Unpin, T: ?Sized,

§

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

§

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

§

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

§

impl<T, F> Unpin for LazyWrapState<T, F>
where T: Unpin, F: 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, M> Unpin for Nominal<T, M>
where T: Unpin, M: Unpin,

§

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

§

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

§

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

§

impl<const N: usize> Unpin for wiwi::parser::stateful::TakeArray<N>

§

impl<const N: usize> Unpin for wiwi::parser::stateful::TakeConst<N>

§

impl<const N: usize> Unpin for wiwi::parser::stateless::TakeArray<N>

§

impl<const N: usize> Unpin for wiwi::parser::stateless::TakeConst<N>