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 Rc
s 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 Argument
impl Send for FormatSpec
impl Send for Alignment
impl Send for Count
Implementors
Auto implementors
impl Send for Infallible
impl Send for FpCategory
impl Send for IntErrorKind
impl Send for SearchStep
impl Send for RecvTimeoutError
impl Send for TryRecvError
impl Send for AllocError
impl Send for LayoutError
impl Send for BorrowError
impl Send for BorrowMutError
impl Send for NonZeroI16
impl Send for NonZeroI32
impl Send for NonZeroI64
impl Send for NonZeroI128
impl Send for NonZeroIsize
impl Send for NonZeroU16
impl Send for NonZeroU32
impl Send for NonZeroU64
impl Send for NonZeroU128
impl Send for NonZeroUsize
impl Send for ParseFloatError
impl Send for ParseIntError
impl Send for TryFromIntError
impl Send for ParseBoolError
impl Send for AtomicBool
impl Send for AtomicIsize
impl Send for AtomicUsize
impl Send for BarrierWaitResult
impl Send for WaitTimeoutResult
impl Send for FromSecsError
impl Send for PhantomPinned
impl<'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,