Skip to main content

Send

Trait Send 

1.0.0 ยท Source
pub unsafe auto trait Send { }
Expand description

Types that can be transferred across thread boundaries.

This trait is automatically implemented when the compiler determines itโ€™s appropriate.

An example of a non-Send type is the reference-counting pointer rc::Rc. If two threads attempt to clone Rcs that point to the same reference-counted value, they might try to update the reference count at the same time, which is undefined behavior because Rc doesnโ€™t use atomic operations. Its cousin sync::Arc does use atomic operations (incurring some overhead) and thus is Send.

See the Nomicon and the Sync trait for more details.

Dyn Compatibilityยง

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementorsยง

1.26.0 ยท Sourceยง

impl !Send for Args

1.26.0 ยท Sourceยง

impl !Send for ArgsOs

1.0.0 ยท Sourceยง

impl !Send for Arguments<'_>

Sourceยง

impl !Send for LocalWaker

1.98.0 ยท Sourceยง

impl !Send for VarsOs

1.63.0 ยท Sourceยง

impl Send for BorrowedHandle<'_>

Available on Windows only.
Sourceยง

impl Send for core::ffi::c_str::Bytes<'_>

1.6.0 ยท Sourceยง

impl Send for std::string::Drain<'_>

1.63.0 ยท Sourceยง

impl Send for HandleOrInvalid

Available on Windows only.
1.63.0 ยท Sourceยง

impl Send for HandleOrNull

Available on Windows only.
1.10.0 ยท Sourceยง

impl Send for Location<'_>

1.63.0 ยท Sourceยง

impl Send for OwnedHandle

Available on Windows only.
1.0.0 ยท Sourceยง

impl Send for TypeId

1.36.0 ยท Sourceยง

impl Send for Waker

1.44.0 ยท Sourceยง

impl<'a> Send for IoSlice<'a>

1.44.0 ยท Sourceยง

impl<'a> Send for IoSliceMut<'a>

Sourceยง

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

1.0.0 ยท Sourceยง

impl<T, A> !Send for Rc<T, A>
where A: Allocator, T: ?Sized,

Sourceยง

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

1.4.0 ยท Sourceยง

impl<T, A> !Send for std::rc::Weak<T, A>
where A: Allocator, T: ?Sized,

1.0.0 ยท Sourceยง

impl<T, A> Send for Arc<T, A>
where T: Sync + Send + ?Sized, A: Allocator + Send + Sync,

Sourceยง

impl<T, A> Send for std::collections::linked_list::Cursor<'_, T, A>
where T: Sync, A: Allocator + Sync,

Sourceยง

impl<T, A> Send for std::collections::linked_list::CursorMut<'_, T, A>
where T: Send, A: Allocator + Send,

1.6.0 ยท Sourceยง

impl<T, A> Send for std::collections::vec_deque::Drain<'_, T, A>
where T: Send, A: Allocator + Send,

1.6.0 ยท Sourceยง

impl<T, A> Send for std::vec::Drain<'_, T, A>
where T: Send, A: Send + Allocator,

1.0.0 ยท Sourceยง

impl<T, A> Send for std::vec::IntoIter<T, A>
where T: Send, A: Allocator + Send,

1.0.0 ยท Sourceยง

impl<T, A> Send for LinkedList<T, A>
where T: Send, A: Allocator + Send,

Sourceยง

impl<T, A> Send for UniqueArc<T, A>
where T: Sync + Send + ?Sized, A: Allocator + Send + Sync,

1.4.0 ยท Sourceยง

impl<T, A> Send for std::sync::Weak<T, A>
where T: Sync + Send + ?Sized, A: Allocator + Send + Sync,

Sourceยง

impl<T: ?Sized + Send> Send for std::sync::nonpoison::Mutex<T>

T must be Send for a Mutex to be Send because it is possible to acquire the owned T from the Mutex via into_inner.

1.0.0 ยท Sourceยง

impl<T: ?Sized + Send> Send for std::sync::Mutex<T>

T must be Send for a Mutex to be Send because it is possible to acquire the owned T from the Mutex via into_inner.

Sourceยง

impl<T: ?Sized + Send> Send for std::sync::nonpoison::RwLock<T>

1.0.0 ยท Sourceยง

impl<T: ?Sized + Send> Send for std::sync::RwLock<T>

Sourceยง

impl<T: ?Sized> !Send for std::sync::nonpoison::MappedMutexGuard<'_, T>

Sourceยง

impl<T: ?Sized> !Send for std::sync::MappedMutexGuard<'_, T>

Sourceยง

impl<T: ?Sized> !Send for std::sync::nonpoison::MappedRwLockReadGuard<'_, T>

Sourceยง

impl<T: ?Sized> !Send for std::sync::MappedRwLockReadGuard<'_, T>

Sourceยง

impl<T: ?Sized> !Send for std::sync::nonpoison::MappedRwLockWriteGuard<'_, T>

Sourceยง

impl<T: ?Sized> !Send for std::sync::MappedRwLockWriteGuard<'_, T>

Sourceยง

impl<T: ?Sized> !Send for std::sync::nonpoison::MutexGuard<'_, T>

A MutexGuard is not Send to maximize platform portability.

On platforms that use POSIX threads (commonly referred to as pthreads) there is a requirement to release mutex locks on the same thread they were acquired. For this reason, MutexGuard must not implement Send to prevent it being dropped from another thread.

1.0.0 ยท Sourceยง

impl<T: ?Sized> !Send for std::sync::MutexGuard<'_, T>

A MutexGuard is not Send to maximize platform portability.

On platforms that use POSIX threads (commonly referred to as pthreads) there is a requirement to release mutex locks on the same thread they were acquired. For this reason, MutexGuard must not implement Send to prevent it being dropped from another thread.

Sourceยง

impl<T: ?Sized> !Send for ReentrantLockGuard<'_, T>

Sourceยง

impl<T: ?Sized> !Send for std::sync::nonpoison::RwLockReadGuard<'_, T>

1.0.0 ยท Sourceยง

impl<T: ?Sized> !Send for std::sync::RwLockReadGuard<'_, T>

Sourceยง

impl<T: ?Sized> !Send for std::sync::nonpoison::RwLockWriteGuard<'_, T>

1.0.0 ยท Sourceยง

impl<T: ?Sized> !Send for std::sync::RwLockWriteGuard<'_, T>

Sourceยง

impl<T: Send + ?Sized> Send for ReentrantLock<T>

1.70.0 ยท Sourceยง

impl<T: Send> Send for OnceLock<T>

Sourceยง

impl<T: Send> Send for std::sync::mpmc::Receiver<T>

1.0.0 ยท Sourceยง

impl<T: Send> Send for std::sync::mpsc::Receiver<T>

Sourceยง

impl<T: Send> Send for std::sync::mpmc::Sender<T>

1.0.0 ยท Sourceยง

impl<T: Send> Send for std::sync::mpsc::Sender<T>

1.0.0 ยท Sourceยง

impl<T: Send> Send for SyncSender<T>

1.0.0 ยท Sourceยง

impl<T> !Send for *const T
where T: ?Sized,

1.0.0 ยท Sourceยง

impl<T> !Send for *mut T
where T: ?Sized,

1.25.0 ยท Sourceยง

impl<T> !Send for NonNull<T>
where T: ?Sized,

NonNull pointers are not Send because the data they reference may be aliased.

1.0.0 ยท Sourceยง

impl<T> Send for &T
where T: Sync + ?Sized,

1.0.0 ยท Sourceยง

impl<T> Send for Atomic<T>
where T: AtomicPrimitive,

1.0.0 ยท Sourceยง

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

1.31.0 ยท Sourceยง

impl<T> Send for ChunksExactMut<'_, T>
where T: Send,

1.0.0 ยท Sourceยง

impl<T> Send for ChunksMut<'_, T>
where T: Send,

1.0.0 ยท Sourceยง

impl<T> Send for std::slice::Iter<'_, T>
where T: Sync,

1.0.0 ยท Sourceยง

impl<T> Send for std::collections::linked_list::Iter<'_, T>
where T: Sync,

1.0.0 ยท Sourceยง

impl<T> Send for std::slice::IterMut<'_, T>
where T: Send,

1.0.0 ยท Sourceยง

impl<T> Send for std::collections::linked_list::IterMut<'_, T>
where T: Send,

1.29.0 ยท Sourceยง

impl<T> Send for JoinHandle<T>

1.28.0 ยท Sourceยง

impl<T> Send for NonZero<T>

1.31.0 ยท Sourceยง

impl<T> Send for RChunksExactMut<'_, T>
where T: Send,

1.31.0 ยท Sourceยง

impl<T> Send for RChunksMut<'_, T>
where T: Send,

1.0.0 ยท Sourceยง

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

Sourceยง

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

ThinBox<T> is Send if T is Send because the data is owned.

Auto implementorsยง

ยง

impl !Send for RawWaker

ยง

impl !Send for Vars

ยง

impl Send for Abi

ยง

impl Send for AccessError

ยง

impl Send for AddrParseError

ยง

impl Send for std::mem::Alignment

ยง

impl Send for std::fmt::Alignment

ยง

impl Send for AllocError

ยง

impl Send for AncillaryError

ยง

impl Send for Array

ยง

impl Send for AsciiChar

ยง

impl Send for Assume

ยง

impl Send for AtomicOrdering

ยง

impl Send for Backtrace

ยง

impl Send for BacktraceFrame

ยง

impl Send for BacktraceStatus

ยง

impl Send for BacktraceStyle

ยง

impl Send for Barrier

ยง

impl Send for BarrierWaitResult

ยง

impl Send for BasicBlock

ยง

impl Send for BorrowError

ยง

impl Send for BorrowMutError

ยง

impl Send for Builder

ยง

impl Send for ByteStr

ยง

impl Send for ByteString

ยง

impl Send for CStr

ยง

impl Send for CString

ยง

impl Send for CharCase

ยง

impl Send for CharTryFromError

ยง

impl Send for Child

ยง

impl Send for ChildStderr

ยง

impl Send for ChildStdin

ยง

impl Send for ChildStdout

ยง

impl Send for Command

ยง

impl Send for CommandResolvedEnvs

ยง

impl Send for std::sync::nonpoison::Condvar

ยง

impl Send for std::sync::Condvar

ยง

impl Send for Const

ยง

impl Send for DebugAsHex

ยง

impl Send for DecodeUtf16Error

ยง

impl Send for DefaultHasher

ยง

impl Send for Dir

ยง

impl Send for DirBuilder

ยง

impl Send for DirEntry

ยง

impl Send for Duration

ยง

impl Send for DynTrait

ยง

impl Send for DynTraitPredicate

ยง

impl Send for std::io::Empty

ยง

impl Send for std::io::Error

ยง

impl Send for std::fmt::Error

ยง

impl Send for ErrorKind

ยง

impl Send for std::char::EscapeDebug

ยง

impl Send for std::ascii::EscapeDefault

ยง

impl Send for std::char::EscapeDefault

ยง

impl Send for std::char::EscapeUnicode

ยง

impl Send for ExitCode

ยง

impl Send for ExitStatus

ยง

impl Send for ExitStatusError

ยง

impl Send for FieldId

ยง

impl Send for File

ยง

impl Send for FileTimes

ยง

impl Send for FileType

ยง

impl Send for FnPtr

ยง

impl Send for FormattingOptions

ยง

impl Send for FpCategory

ยง

impl Send for FromBytesUntilNulError

ยง

impl Send for FromBytesWithNulError

ยง

impl Send for FromUtf8Error

ยง

impl Send for FromUtf16Error

ยง

impl Send for FromVecWithNulError

ยง

impl Send for Generic

ยง

impl Send for GenericType

ยง

impl Send for GetDisjointMutError

ยง

impl Send for Global

ยง

impl Send for Instant

ยง

impl Send for IntErrorKind

ยง

impl Send for IntoChars

ยง

impl Send for IntoIncoming

ยง

impl Send for IntoStringError

ยง

impl Send for InvalidHandleError

ยง

impl Send for IpAddr

ยง

impl Send for Ipv4Addr

ยง

impl Send for Ipv6Addr

ยง

impl Send for Ipv6MulticastScope

ยง

impl Send for JoinPathsError

ยง

impl Send for Layout

ยง

impl Send for LayoutError

ยง

impl Send for Lifetime

ยง

impl Send for Locality

ยง

impl Send for Metadata

ยง

impl Send for NormalizeError

ยง

impl Send for NulError

ยง

impl Send for NullHandleError

ยง

impl Send for std::sync::Once

ยง

impl Send for OnceState

ยง

impl Send for OneSidedRangeBound

ยง

impl Send for OpenOptions

ยง

impl Send for std::sync::atomic::Ordering

ยง

impl Send for std::cmp::Ordering

ยง

impl Send for OsStr

ยง

impl Send for OsString

ยง

impl Send for Output

ยง

impl Send for OwnedFd

ยง

impl Send for OwnedSocket

ยง

impl Send for ParseBoolError

ยง

impl Send for ParseCharError

ยง

impl Send for ParseFloatError

ยง

impl Send for ParseIntError

ยง

impl Send for Path

ยง

impl Send for PathBuf

ยง

impl Send for Permissions

ยง

impl Send for PhantomPinned

ยง

impl Send for PidFd

ยง

impl Send for PipeReader

ยง

impl Send for PipeWriter

ยง

impl Send for Pointer

ยง

impl Send for RandomState

ยง

impl Send for RangeFull

ยง

impl Send for RawWakerVTable

ยง

impl Send for ReadDir

ยง

impl Send for RecvError

ยง

impl Send for std::sync::mpsc::RecvTimeoutError

ยง

impl Send for Reference

ยง

impl Send for std::io::Repeat

ยง

impl Send for ReturnToArg

ยง

impl Send for SearchStep

ยง

impl Send for SeekFrom

ยง

impl Send for Shutdown

ยง

impl Send for Sign

ยง

impl Send for SimdAlign

ยง

impl Send for Sink

ยง

impl Send for SipHasher

ยง

impl Send for Slice

ยง

impl Send for std::net::SocketAddr

ยง

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

ยง

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

ยง

impl Send for SocketAddrV4

ยง

impl Send for SocketAddrV6

ยง

impl Send for SocketCred

ยง

impl Send for Stderr

ยง

impl Send for Stdin

ยง

impl Send for Stdio

ยง

impl Send for Stdout

ยง

impl Send for Str

ยง

impl Send for String

ยง

impl Send for StripPrefixError

ยง

impl Send for System

ยง

impl Send for SystemRng

ยง

impl Send for SystemTime

ยง

impl Send for SystemTimeError

ยง

impl Send for TcpListener

ยง

impl Send for TcpStream

ยง

impl Send for Thread

ยง

impl Send for ThreadId

ยง

impl Send for ToCasefold

ยง

impl Send for ToLowercase

ยง

impl Send for ToTitlecase

ยง

impl Send for ToUppercase

ยง

impl Send for Trait

ยง

impl Send for TryFromCharError

ยง

impl Send for TryFromFloatSecsError

ยง

impl Send for TryFromIntError

ยง

impl Send for TryFromSliceError

ยง

impl Send for std::fs::TryLockError

ยง

impl Send for std::sync::mpsc::TryRecvError

ยง

impl Send for TryReserveError

ยง

impl Send for TryReserveErrorKind

ยง

impl Send for Type

ยง

impl Send for TypeKind

ยง

impl Send for UCred

ยง

impl Send for UdpSocket

ยง

impl Send for UnixDatagram

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl Send for UnorderedKeyError

ยง

impl Send for UnwindActionArg

ยง

impl Send for UnwindTerminateReason

ยง

impl Send for Utf8Error

ยง

impl Send for VarError

ยง

impl Send for VariantId

ยง

impl Send for WaitTimeoutResult

ยง

impl Send for WouldBlock

ยง

impl Send for WriterPanicked

ยง

impl Send for XdgDirsIter

ยง

impl Send for c_void

ยง

impl Send for stat

ยง

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

ยง

impl<'a, 'b> !Send for DebugList<'a, 'b>

ยง

impl<'a, 'b> !Send for DebugMap<'a, 'b>

ยง

impl<'a, 'b> !Send for DebugSet<'a, 'b>

ยง

impl<'a, 'b> !Send for DebugStruct<'a, 'b>

ยง

impl<'a, 'b> !Send for DebugTuple<'a, 'b>

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<'a, I> Send for ByRefSized<'a, I>
where &'a mut I: Send,

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<'a, T, F, A = Global> !Send for std::collections::linked_list::ExtractIf<'a, T, F, A>

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<'a, T> !Send for BorrowedCursor<'a, T>

ยง

impl<'a, T> !Send for std::sync::mpsc::Iter<'a, T>

ยง

impl<'a, T> !Send for std::sync::mpsc::TryIter<'a, T>

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<'a> !Send for Context<'a>

ยง

impl<'a> !Send for ContextBuilder<'a>

ยง

impl<'a> !Send for Formatter<'a>

ยง

impl<'a> !Send for PanicHookInfo<'a>

ยง

impl<'a> !Send for ProcThreadAttributeListBuilder<'a>

ยง

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

ยง

impl<'a> !Send for StderrLock<'a>

ยง

impl<'a> !Send for StdinLock<'a>

ยง

impl<'a> !Send for StdoutLock<'a>

ยง

impl<'a> !Send for VaList<'a>

ยง

impl<'a> Send for Ancestors<'a>

ยง

impl<'a> Send for AncillaryData<'a>

ยง

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

ยง

impl<'a> Send for CharIndices<'a>

ยง

impl<'a> Send for CharSearcher<'a>

ยง

impl<'a> Send for Chars<'a>

ยง

impl<'a> Send for CommandArgs<'a>

ยง

impl<'a> Send for CommandEnvs<'a>

ยง

impl<'a> Send for Component<'a>

ยง

impl<'a> Send for Components<'a>

ยง

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

ยง

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

ยง

impl<'a> Send for EncodeUtf16<'a>

ยง

impl<'a> Send for EncodeWide<'a>

ยง

impl<'a> Send for EscapeAscii<'a>

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<'a> Send for LinesAny<'a>

ยง

impl<'a> Send for Messages<'a>

ยง

impl<'a> Send for PhantomContravariantLifetime<'a>

ยง

impl<'a> Send for PhantomCovariantLifetime<'a>

ยง

impl<'a> Send for PhantomInvariantLifetime<'a>

ยง

impl<'a> Send for Prefix<'a>

ยง

impl<'a> Send for PrefixComponent<'a>

ยง

impl<'a> Send for ProcThreadAttributeList<'a>

ยง

impl<'a> Send for ScmCredentials<'a>

ยง

impl<'a> Send for ScmRights<'a>

ยง

impl<'a> Send for SocketAncillary<'a>

ยง

impl<'a> Send for SplitAsciiWhitespace<'a>

ยง

impl<'a> Send for SplitPaths<'a>

ยง

impl<'a> Send for SplitWhitespace<'a>

ยง

impl<'a> Send for Utf8Chunk<'a>

ยง

impl<'a> Send for Utf8Chunks<'a>

ยง

impl<'a> Send for Utf8Pattern<'a>

ยง

impl<'b, T> !Send for Ref<'b, T>

ยง

impl<'b, T> !Send for RefMut<'b, T>

ยง

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

ยง

impl<'fd> Send for BorrowedFd<'fd>

ยง

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

ยง

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

ยง

impl<'socket> Send for BorrowedSocket<'socket>

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<A> Send for RangeInclusiveIter<A>
where RangeInclusive<A>: Send,

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<I> Send for FromIter<I>
where I: Send,

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<T, A> Send for Box<T, A>
where Unique<T>: Send, A: Send, T: ?Sized,

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<T> Send for Discriminant<T>

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<T> Send for Ready<T>
where Option<T>: Send,

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<T> Send for UnsafePinned<T>
where UnsafeCell<T>: Send, T: ?Sized,

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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