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

Source§

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

1.6.0 · Source§

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

1.10.0 · Source§

impl Send for Location<'_>

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

Source§

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

Source§

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

1.6.0 · Source§

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

1.6.0 · Source§

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

1.0.0 · Source§

impl<T, A> Send for sp_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,

1.4.0 · Source§

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

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,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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> !Send for sp_std::sync::MutexGuard<'_, T>
where T: ?Sized,

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

Source§

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

Source§

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

1.0.0 · Source§

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

Source§

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

1.0.0 · Source§

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

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 sp_std::slice::Iter<'_, T>
where T: Sync,

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.29.0 · Source§

impl<T> Send for JoinHandle<T>

Source§

impl<T> Send for sp_std::sync::nonpoison::Mutex<T>
where T: Send + ?Sized,

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> Send for sp_std::sync::Mutex<T>
where T: Send + ?Sized,

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.28.0 · Source§

impl<T> Send for NonZero<T>

1.70.0 · Source§

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

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,

Source§

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

1.0.0 · Source§

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

Source§

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

1.0.0 · Source§

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

Source§

impl<T> Send for sp_std::sync::nonpoison::RwLock<T>
where T: Send + ?Sized,

1.0.0 · Source§

impl<T> Send for sp_std::sync::RwLock<T>
where T: Send + ?Sized,

Source§

impl<T> Send for sp_std::sync::mpmc::Sender<T>
where T: Send,

1.0.0 · Source§

impl<T> Send for sp_std::sync::mpsc::Sender<T>
where T: Send,

1.0.0 · Source§

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

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 Abi

§

impl Send for sp_std::fmt::Alignment

§

impl Send for sp_std::mem::Alignment

§

impl Send for AllocError

§

impl Send for Array

§

impl Send for Assume

§

impl Send for Barrier

§

impl Send for BarrierWaitResult

§

impl Send for Bool

§

impl Send for BorrowError

§

impl Send for BorrowMutError

§

impl Send for Char

§

impl Send for sp_std::sync::nonpoison::Condvar

§

impl Send for sp_std::sync::Condvar

§

impl Send for Const

§

impl Send for DebugAsHex

§

impl Send for DefaultHasher

§

impl Send for Duration

§

impl Send for DynTrait

§

impl Send for DynTraitPredicate

§

impl Send for Enum

§

impl Send for Error

§

impl Send for Field

§

impl Send for FieldId

§

impl Send for Float

§

impl Send for FnPtr

§

impl Send for FormattingOptions

§

impl Send for FpCategory

§

impl Send for Generic

§

impl Send for GenericType

§

impl Send for GetDisjointMutError

§

impl Send for Global

§

impl Send for Infallible

§

impl Send for Int

§

impl Send for IntErrorKind

§

impl Send for Layout

§

impl Send for LayoutError

§

impl Send for Lifetime

§

impl Send for sp_std::sync::Once

§

impl Send for OnceState

§

impl Send for OneSidedRangeBound

§

impl Send for sp_std::cmp::Ordering

§

impl Send for sp_std::sync::atomic::Ordering

§

impl Send for ParseBoolError

§

impl Send for ParseFloatError

§

impl Send for ParseIntError

§

impl Send for PhantomPinned

§

impl Send for Pointer

§

impl Send for RandomState

§

impl Send for RangeFull

§

impl Send for RecvError

§

impl Send for sp_std::sync::mpmc::RecvTimeoutError

§

impl Send for Reference

§

impl Send for SearchStep

§

impl Send for Sign

§

impl Send for SipHasher

§

impl Send for Slice

§

impl Send for Str

§

impl Send for Struct

§

impl Send for System

§

impl Send for Trait

§

impl Send for TryFromFloatSecsError

§

impl Send for TryFromIntError

§

impl Send for sp_std::sync::mpmc::TryRecvError

§

impl Send for Tuple

§

impl Send for Type

§

impl Send for TypeKind

§

impl Send for sp_std::mem::type_info::Union

§

impl Send for UnorderedKeyError

§

impl Send for Utf8Error

§

impl Send for Variant

§

impl Send for WaitTimeoutResult

§

impl Send for WouldBlock

§

impl Send for Writer

§

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

§

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, B> Send for Cow<'a, B>
where <B as ToOwned>::Owned: Send, B: Sync + ?Sized,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<'a, K, V, A> Send for OccupiedError<'a, K, V, A>
where K: Send, V: Send, A: Send,

§

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

§

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

§

impl<'a, K, V> Send for sp_std::collections::btree_map::Cursor<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Send for sp_std::collections::btree_map::Iter<'a, K, V>
where K: Sync, V: Sync,

§

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

§

impl<'a, K, V> Send for Keys<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Send for sp_std::collections::btree_map::Range<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Send for RangeMut<'a, K, V>
where K: Send, V: Send,

§

impl<'a, K, V> Send for Values<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Send for ValuesMut<'a, K, V>
where K: Send, V: Send,

§

impl<'a, K> Send for sp_std::collections::btree_set::Cursor<'a, K>
where K: Sync,

§

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

§

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

§

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

§

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

§

impl<'a, P> Send for sp_std::str::RSplit<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for sp_std::str::RSplitN<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

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

§

impl<'a, P> Send for sp_std::str::Split<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for sp_std::str::SplitInclusive<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for sp_std::str::SplitN<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

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

§

impl<'a, T, A> Send for Difference<'a, T, A>
where T: Sync, A: Sync,

§

impl<'a, T, A> Send for sp_std::collections::btree_set::Entry<'a, T, A>
where A: Send, T: Send,

§

impl<'a, T, A> Send for Intersection<'a, T, A>
where T: Sync, A: Sync,

§

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

§

impl<'a, T, A> Send for PeekMut<'a, T, A>
where A: Send, T: Send,

§

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

§

impl<'a, T, F, A> Send for sp_std::collections::vec_deque::ExtractIf<'a, T, F, A>
where F: Send, A: Send, T: Send,

§

impl<'a, T, F, A> Send for sp_std::vec::ExtractIf<'a, T, F, A>
where F: Send, A: Send, T: Send,

§

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

§

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

§

impl<'a, T, P> Send for sp_std::slice::RSplit<'a, T, P>
where P: Send, T: Sync,

§

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

§

impl<'a, T, P> Send for sp_std::slice::RSplitN<'a, T, P>
where P: Send, T: Sync,

§

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

§

impl<'a, T, P> Send for sp_std::slice::Split<'a, T, P>
where P: Send, T: Sync,

§

impl<'a, T, P> Send for sp_std::slice::SplitInclusive<'a, T, P>
where P: Send, T: Sync,

§

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

§

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

§

impl<'a, T, P> Send for sp_std::slice::SplitN<'a, T, P>
where P: Send, T: Sync,

§

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

§

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

§

impl<'a, T, const N: usize> Send for ArrayWindows<'a, T, N>
where T: Sync,

§

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

§

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

§

impl<'a, T> Send for Chunks<'a, T>
where T: Sync,

§

impl<'a, T> Send for ChunksExact<'a, T>
where T: Sync,

§

impl<'a, T> Send for sp_std::sync::mpmc::Iter<'a, T>
where T: Send,

§

impl<'a, T> Send for sp_std::collections::btree_set::Iter<'a, T>
where T: Sync,

§

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

§

impl<'a, T> Send for sp_std::result::Iter<'a, T>
where T: Sync,

§

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

§

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

§

impl<'a, T> Send for RChunks<'a, T>
where T: Sync,

§

impl<'a, T> Send for RChunksExact<'a, T>
where T: Sync,

§

impl<'a, T> Send for sp_std::collections::btree_set::Range<'a, T>
where T: Sync,

§

impl<'a, T> Send for SymmetricDifference<'a, T>
where T: Sync,

§

impl<'a, T> Send for sp_std::sync::mpmc::TryIter<'a, T>
where T: Send,

§

impl<'a, T> Send for sp_std::collections::btree_set::Union<'a, T>
where T: Sync,

§

impl<'a, T> Send for Windows<'a, T>
where T: Sync,

§

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

§

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

§

impl<'a> Send for sp_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 EncodeUtf16<'a>

§

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

§

impl<'a> Send for EscapeDebug<'a>

§

impl<'a> Send for EscapeDefault<'a>

§

impl<'a> Send for EscapeUnicode<'a>

§

impl<'a> Send for Lines<'a>

§

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

§

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

§

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

§

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

§

impl<'a> Send for SplitAsciiWhitespace<'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<A, B> Send for Chain<A, B>
where A: Send, B: Send,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<I, F, const N: usize> Send for MapWindows<I, F, N>
where F: Send, I: Send, <I as Iterator>::Item: 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, I: Send, <I as Iterator>::Item: 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 <U as IntoIterator>::IntoIter: Send, I: Send, F: Send,

§

impl<I, const N: usize> Send for ArrayChunks<I, N>
where I: Send, <I as Iterator>::Item: 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 Enumerate<I>
where I: Send,

§

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

§

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

§

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

§

impl<I> Send for Peekable<I>
where I: Send, <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 Take<I>
where I: Send,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<K, V, A> Send for IntoKeys<K, V, A>
where A: Send, K: Send, V: Send,

§

impl<K, V, A> Send for IntoValues<K, V, A>
where A: Send, K: Send, V: Send,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<T> Send for Discriminant<T>

§

impl<T> Send for Empty<T>

§

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

§

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

§

impl<T> Send for sp_std::result::IntoIter<T>
where T: Send,

§

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

§

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

§

impl<T> Send for sp_std::iter::Once<T>
where T: Send,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<T> Send for sp_std::sync::oneshot::RecvTimeoutError<T>
where 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 sp_std::sync::oneshot::Sender<T>
where T: Send,

§

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

§

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

§

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

§

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

§

impl<T> Send for sp_std::sync::oneshot::TryRecvError<T>
where 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 Wrapping<T>
where T: Send,

§

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

§

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