Trait core::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.
Implementors
Auto implementors
impl !Send for TraitObjectimpl Send for Infallibleimpl Send for FpCategoryimpl Send for IntErrorKindimpl Send for SearchStepimpl Send for AllocErrorimpl Send for LayoutErrorimpl Send for float64x1_timpl Send for float64x2_timpl Send for int8x16x2_timpl Send for int8x16x3_timpl Send for int8x16x4_timpl Send for poly8x16x2_timpl Send for poly8x16x3_timpl Send for poly8x16x4_timpl Send for uint8x16x2_timpl Send for uint8x16x3_timpl Send for uint8x16x4_timpl Send for uint16x2_timpl Send for float32x2_timpl Send for float32x4_timpl Send for int8x8x2_timpl Send for int8x8x3_timpl Send for int8x8x4_timpl Send for poly8x8x2_timpl Send for poly8x8x3_timpl Send for poly8x8x4_timpl Send for poly8x16_timpl Send for poly16x4_timpl Send for poly16x8_timpl Send for poly64x1_timpl Send for poly64x2_timpl Send for uint8x8x2_timpl Send for uint8x8x3_timpl Send for uint8x8x4_timpl Send for uint8x16_timpl Send for uint16x4_timpl Send for uint16x8_timpl Send for uint32x2_timpl Send for uint32x4_timpl Send for uint64x1_timpl Send for uint64x2_timpl Send for vector_bool_longimpl Send for vector_doubleimpl Send for vector_signed_longimpl Send for vector_unsigned_longimpl Send for CpuidResultimpl Send for TryFromSliceErrorimpl Send for core::ascii::EscapeDefaultimpl Send for BorrowErrorimpl Send for BorrowMutErrorimpl Send for CharTryFromErrorimpl Send for DecodeUtf16Errorimpl Send for core::char::EscapeDebugimpl Send for core::char::EscapeDefaultimpl Send for core::char::EscapeUnicodeimpl Send for ParseCharErrorimpl Send for ToLowercaseimpl Send for ToUppercaseimpl 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 RawWakerVTableimpl Send for FromSecsErrorimpl Send for PhantomPinnedimpl<'a> Send for EscapeAscii<'a>impl<'a> Send for Utf8LossyChunk<'a>impl<'a> Send for Utf8LossyChunksIter<'a>impl<'a> Send for CharSearcher<'a>impl<'a> Send for CharIndices<'a>impl<'a> Send for EncodeUtf16<'a>impl<'a> Send for core::str::EscapeDebug<'a>impl<'a> Send for core::str::EscapeDefault<'a>impl<'a> Send for core::str::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, 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 core::str::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 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, 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, P> Send for core::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, 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<'f> !Send for VaListImpl<'f>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> Send for DecodeUtf16<I> where
I: 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<T> Send for Discriminant<T>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,