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<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<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<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 Infallibleimpl Send for TypeIdimpl Send for TryFromSliceErrorimpl 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 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 Send for SipHasher13impl Send for SipHasher24impl<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 Duration