Trait core::marker::Send 1.0.0
[−]
[src]
pub unsafe auto trait Send { }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
impl<T: Send + ?Sized> Send for Unique<T>impl<T: ?Sized> !Send for NonNull<T>impl<'a, T: Sync + ?Sized> Send for &'a Timpl<'a, T: Send + ?Sized> Send for &'a mut Timpl<T: ?Sized> !Send for *const Timpl<T: ?Sized> !Send for *mut Timpl<T> Send for AtomicPtr<T>impl<T> Send for Cell<T> where
T: Send,impl<T: ?Sized> Send for RefCell<T> where
T: Send,impl<'a, T: Sync> Send for core::slice::Iter<'a, T>impl<'a, T: Send> Send for core::slice::IterMut<'a, T>
Auto implementors
impl Send for NonZeroU8impl Send for NonZeroU16impl Send for NonZeroU32impl Send for NonZeroU64impl Send for NonZeroU128impl Send for NonZeroUsizeimpl Send for NonZeroI8impl Send for NonZeroI16impl Send for NonZeroI32impl Send for NonZeroI64impl Send for NonZeroI128impl Send for NonZeroIsizeimpl<T> Send for Wrapping<T> where
T: Send,impl Send for TryFromIntErrorimpl Send for ParseIntErrorimpl Send for ParseFloatErrorimpl Send for FpCategoryimpl<T> Send for Discriminant<T>impl<'a, T: ?Sized> Send for Pin<'a, T> where
T: Send,impl<T> Send for ManuallyDrop<T> where
T: Send,impl<T> Send for NonZero<T> where
T: Send,impl<T: ?Sized> Send for PhantomData<T> where
T: Send,impl<Idx> Send for Range<Idx> where
Idx: Send,impl<Idx> Send for RangeFrom<Idx> where
Idx: Send,impl Send for RangeFullimpl<Idx> Send for RangeTo<Idx> where
Idx: Send,impl<Idx> Send for RangeInclusive<Idx> where
Idx: Send,impl<Idx> Send for RangeToInclusive<Idx> where
Idx: Send,impl<T> Send for Bound<T> where
T: Send,impl<Y, R> Send for GeneratorState<Y, R> where
R: Send,
Y: Send,impl<T> Send for Reverse<T> where
T: Send,impl Send for core::cmp::Orderingimpl Send for TypeIdimpl Send for TryFromSliceErrorimpl Send for core::ascii::EscapeDefaultimpl Send for AtomicBoolimpl Send for AtomicI8impl Send for AtomicU8impl Send for AtomicI16impl Send for AtomicU16impl Send for AtomicI32impl Send for AtomicU32impl Send for AtomicI64impl Send for AtomicU64impl Send for AtomicIsizeimpl Send for AtomicUsizeimpl Send for core::sync::atomic::Orderingimpl Send for BorrowErrorimpl Send for BorrowMutErrorimpl<'b, T> !Send for Ref<'b, T>impl<'b, T> !Send for RefMut<'b, T>impl<T: ?Sized> Send for UnsafeCell<T> where
T: Send,impl Send for ParseCharErrorimpl Send for CharTryFromErrorimpl Send for EscapeUnicodeimpl Send for core::char::EscapeDefaultimpl Send for EscapeDebugimpl<I> Send for DecodeUtf8<I> where
I: Send,impl Send for InvalidSequenceimpl<'a> !Send for PanicInfo<'a>impl<'a> Send for Location<'a>impl<A> Send for Repeat<A> where
A: Send,impl<F> Send for RepeatWith<F> where
F: Send,impl<T> Send for Empty<T> where
T: Send,impl<T> Send for Once<T> where
T: Send,impl<T> Send for Rev<T> where
T: Send,impl<I> Send for Cloned<I> where
I: Send,impl<I> Send for Cycle<I> where
I: Send,impl<I> Send for StepBy<I> where
I: Send,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<I, F> Send for Map<I, F> where
F: Send,
I: Send,impl<I, P> Send for Filter<I, P> where
I: Send,
P: Send,impl<I, F> Send for FilterMap<I, F> where
F: Send,
I: Send,impl<I> Send for Enumerate<I> where
I: Send,impl<I> Send for Peekable<I> where
I: Send,
<I as Iterator>::Item: 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> Send for Skip<I> where
I: Send,impl<I> Send for Take<I> where
I: Send,impl<I, St, F> Send for Scan<I, St, F> where
F: Send,
I: Send,
St: Send,impl<I, U, F> Send for FlatMap<I, U, F> where
F: Send,
I: Send,
<U as IntoIterator>::IntoIter: Send,impl<I> Send for Flatten<I> where
I: Send,
<<I as Iterator>::Item as IntoIterator>::IntoIter: Send,impl<I> Send for Fuse<I> where
I: Send,impl<I, F> Send for Inspect<I, F> where
F: Send,
I: Send,impl<'a, A> Send for core::option::Iter<'a, A> where
A: Sync,impl<'a, A> Send for core::option::IterMut<'a, A> where
A: Send,impl<A> Send for core::option::IntoIter<A> where
A: Send,impl Send for NoneErrorimpl<T> Send for Option<T> where
T: Send,impl !Send for TraitObjectimpl<'a, T> Send for core::result::Iter<'a, T> where
T: Sync,impl<'a, T> Send for core::result::IterMut<'a, T> where
T: Send,impl<T> Send for core::result::IntoIter<T> where
T: Send,impl<T, E> Send for Result<T, E> where
E: Send,
T: Send,impl<'a, T, P> Send for core::slice::Split<'a, T, P> where
P: Send,
T: Sync,impl<'a, T, P> Send for SplitMut<'a, T, P> where
P: Send,
T: Send,impl<'a, T, P> Send for core::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 core::slice::SplitN<'a, T, P> where
P: Send,
T: Sync,impl<'a, T, P> Send for core::slice::RSplitN<'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, P> Send for RSplitNMut<'a, T, P> where
P: Send,
T: Send,impl<'a, T> Send for Windows<'a, T> where
T: Sync,impl<'a, T> Send for Chunks<'a, T> where
T: Sync,impl<'a, T> Send for ChunksMut<'a, T> where
T: Send,impl<'a, T> Send for ExactChunks<'a, T> where
T: Sync,impl<'a, T> Send for ExactChunksMut<'a, T> where
T: Send,impl Send for ParseBoolErrorimpl Send for Utf8Errorimpl<'a> Send for Chars<'a>impl<'a> Send for CharIndices<'a>impl<'a> Send for Bytes<'a>impl<'a, P> Send for core::str::Split<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl<'a, P> Send for core::str::RSplit<'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, P> Send for RSplitTerminator<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl<'a, P> Send for core::str::SplitN<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl<'a, P> Send for core::str::RSplitN<'a, P> where
<P as Pattern<'a>>::Searcher: 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 Matches<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl<'a, P> Send for RMatches<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl<'a> Send for Lines<'a>impl<'a> Send for LinesAny<'a>impl<'a> Send for CharSearcher<'a>impl<'a, 'b> Send for CharSliceSearcher<'a, 'b>impl<'a, F> Send for CharPredicateSearcher<'a, F> where
F: Send,impl<'a, 'b> Send for StrSearcher<'a, 'b>impl Send for SearchStepimpl Send for SipHasherimpl<H> Send for BuildHasherDefault<H> where
H: Send,impl<'a, 'b> !Send for DebugStruct<'a, 'b>impl<'a, 'b> !Send for DebugTuple<'a, 'b>impl<'a, 'b> !Send for DebugSet<'a, 'b>impl<'a, 'b> !Send for DebugList<'a, 'b>impl<'a, 'b> !Send for DebugMap<'a, 'b>impl Send for Errorimpl<'a> !Send for Formatter<'a>impl<'a> !Send for Arguments<'a>impl Send for Alignmentimpl Send for Durationimpl !Send for Excessimpl Send for Layoutimpl Send for CannotReallocInPlaceimpl Send for AllocErrimpl Send for CollectionAllocErrimpl Send for i8x2impl Send for u8x2impl Send for b8x2impl Send for i16x2impl Send for u16x2impl Send for i8x4impl Send for u8x4impl Send for b8x4impl Send for i8x8impl Send for u8x8impl Send for b8x8impl Send for i16x4impl Send for u16x4impl Send for i32x2impl Send for u32x2impl Send for f32x2impl Send for i8x16impl Send for u8x16impl Send for b8x16impl Send for i16x8impl Send for u16x8impl Send for i32x4impl Send for u32x4impl Send for f32x4impl Send for i64x2impl Send for u64x2impl Send for f64x2impl Send for i8x32impl Send for u8x32impl Send for b8x32impl Send for i16x16impl Send for u16x16impl Send for i32x8impl Send for u32x8impl Send for f32x8impl Send for i64x4impl Send for u64x4impl Send for f64x4impl Send for i8x64impl Send for u8x64impl Send for b8x64impl Send for i16x32impl Send for u16x32impl Send for i32x16impl Send for u32x16impl Send for f32x16impl Send for i64x8impl Send for u64x8impl Send for f64x8impl Send for __m64impl Send for __m128iimpl Send for __m128impl Send for __m128dimpl Send for __m256iimpl Send for __m256impl Send for __m256dimpl Send for CpuidResult