Trait sp_std::marker::Send 1.0.0[−][src]
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 for more details.
Implementations on Foreign Types
impl Send for Argumentimpl Send for FormatSpecimpl Send for Alignmentimpl Send for CountImplementors
Auto implementors
impl Send for Infallibleimpl Send for FpCategoryimpl Send for IntErrorKindimpl Send for SearchStepimpl Send for RecvTimeoutErrorimpl Send for TryRecvErrorimpl Send for AllocErrorimpl Send for LayoutErrorimpl Send for BorrowErrorimpl Send for BorrowMutErrorimpl Send for NonZeroI16impl Send for NonZeroI32impl Send for NonZeroI64impl Send for NonZeroI128impl Send for NonZeroIsizeimpl Send for NonZeroU16impl Send for NonZeroU32impl Send for NonZeroU64impl Send for NonZeroU128impl Send for NonZeroUsizeimpl Send for ParseFloatErrorimpl Send for ParseIntErrorimpl Send for TryFromIntErrorimpl Send for ParseBoolErrorimpl Send for AtomicBoolimpl Send for AtomicIsizeimpl Send for AtomicUsizeimpl Send for BarrierWaitResultimpl Send for WaitTimeoutResultimpl Send for FromSecsErrorimpl Send for PhantomPinnedimpl<'a> Send for CharSearcher<'a>impl<'a> Send for CharIndices<'a>impl<'a> Send for EncodeUtf16<'a>impl<'a> Send for EscapeDebug<'a>impl<'a> Send for EscapeDefault<'a>impl<'a> Send for EscapeUnicode<'a>impl<'a> Send for SplitAsciiWhitespace<'a>impl<'a> Send for SplitWhitespace<'a>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, F> Send for CharPredicateSearcher<'a, F> where
F: Send, impl<'a, K, V> Send for OccupiedEntry<'a, K, V> where
K: Send,
V: Send, impl<'a, K, V> Send for OccupiedError<'a, K, V> where
K: Send,
V: Send, impl<'a, K, V> Send for VacantEntry<'a, K, V> where
K: Send,
V: Send, impl<'a, K, V, F> Send for sp_std::collections::btree_map::DrainFilter<'a, K, V, F> where
F: Send,
K: Send,
V: Send, impl<'a, P> Send for MatchIndices<'a, P> where
<P as Pattern<'a>>::Searcher: Send, impl<'a, P> Send for RMatchIndices<'a, P> where
<P as Pattern<'a>>::Searcher: Send, impl<'a, P> Send for RSplitTerminator<'a, P> where
<P as Pattern<'a>>::Searcher: Send, impl<'a, P> Send for SplitInclusive<'a, P> where
<P as Pattern<'a>>::Searcher: Send, impl<'a, P> Send for SplitTerminator<'a, P> where
<P as Pattern<'a>>::Searcher: Send, impl<'a, T> Send for Difference<'a, T> where
T: Sync, impl<'a, T> Send for Intersection<'a, T> where
T: Sync, impl<'a, T> Send for SymmetricDifference<'a, T> where
T: Sync, impl<'a, T> Send for ChunksExact<'a, T> where
T: Sync, impl<'a, T> Send for ChunksExactMut<'a, T> where
T: Send, impl<'a, T> Send for RChunksExact<'a, T> where
T: Sync, impl<'a, T> Send for RChunksExactMut<'a, T> where
T: Send, impl<'a, T> Send for RChunksMut<'a, T> where
T: Send, impl<'a, T, F> Send for sp_std::collections::btree_set::DrainFilter<'a, T, F> where
F: Send,
T: Send, impl<'a, T, F, A> Send for sp_std::vec::DrainFilter<'a, T, F, A> where
A: Send,
F: Send,
T: Send, impl<'a, T, P> Send for GroupByMut<'a, T, P> where
P: Send,
T: Send, impl<'a, T, P> Send for RSplitNMut<'a, T, P> where
P: Send,
T: Send, impl<'a, T, const N: usize> !Send for ArrayWindows<'a, T, N>impl<'a, T, const N: usize> Send for ArrayChunks<'a, T, N> where
T: Sync, impl<'a, T, const N: usize> Send for ArrayChunksMut<'a, T, N> where
T: Send, impl<B, C> Send for ControlFlow<B, C> where
B: Send,
C: Send, impl<F> Send for RepeatWith<F> where
F: Send, impl<H> Send for BuildHasherDefault<H> where
H: Send, impl<I, U, F> Send for FlatMap<I, U, F> where
F: Send,
I: Send,
<U as IntoIterator>::IntoIter: Send, impl<Idx> Send for RangeInclusive<Idx> where
Idx: Send, impl<Idx> Send for RangeToInclusive<Idx> where
Idx: Send, impl<K, V> Send for IntoValues<K, V> where
K: Send,
V: Send, impl<T> Send for TryLockError<T> where
T: Send, impl<T> Send for TrySendError<T> where
T: Send, impl<T> Send for Discriminant<T>impl<T> Send for PoisonError<T> where
T: Send, impl<T> Send for MaybeUninit<T> where
T: Send, impl<T, F> Send for Successors<T, F> where
F: Send,
T: Send, impl<T: ?Sized> Send for UnsafeCell<T> where
T: Send, impl<T: ?Sized> Send for ManuallyDrop<T> where
T: Send, impl<T: ?Sized> Send for PhantomData<T> where
T: Send, impl<Y, R> Send for GeneratorState<Y, R> where
R: Send,
Y: Send,