Trait 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
NonNull pointers are not Send because the data they reference may be aliased.
Auto implementors
impl !Send for TraitObjectimpl Send for BacktraceStatusimpl Send for TryReserveErrorimpl Send for Infallibleimpl Send for Ipv6MulticastScopeimpl Send for std::net::SocketAddrimpl Send for FpCategoryimpl Send for IntErrorKindimpl Send for AncillaryErrorimpl Send for SearchStepimpl Send for RecvTimeoutErrorimpl Send for TryRecvErrorimpl Send for AllocErrorimpl Send for LayoutErrorimpl Send for TryFromSliceErrorimpl Send for std::ascii::EscapeDefaultimpl Send for BacktraceFrameimpl Send for BorrowErrorimpl Send for BorrowMutErrorimpl Send for CharTryFromErrorimpl Send for DecodeUtf16Errorimpl Send for std::char::EscapeDebugimpl Send for std::char::EscapeDefaultimpl Send for std::char::EscapeUnicodeimpl Send for ParseCharErrorimpl Send for ToLowercaseimpl Send for ToUppercaseimpl Send for DefaultHasherimpl Send for RandomStateimpl Send for JoinPathsErrorimpl Send for FromBytesWithNulErrorimpl Send for FromVecWithNulErrorimpl Send for IntoStringErrorimpl Send for DirBuilderimpl Send for OpenOptionsimpl Send for Permissionsimpl Send for Initializerimpl Send for AddrParseErrorimpl Send for SocketAddrV4impl Send for SocketAddrV6impl Send for TcpListenerimpl 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 std::os::unix::net::SocketAddrimpl Send for SocketCredimpl Send for UnixDatagramimpl Send for UnixListenerimpl Send for UnixStreamimpl Send for StripPrefixErrorimpl Send for ChildStderrimpl Send for ChildStdinimpl Send for ChildStdoutimpl Send for ExitStatusimpl Send for ExitStatusErrorimpl Send for ParseBoolErrorimpl Send for FromUtf8Errorimpl Send for FromUtf16Errorimpl Send for AtomicBoolimpl Send for AtomicIsizeimpl Send for AtomicUsizeimpl Send for BarrierWaitResultimpl Send for WaitTimeoutResultimpl Send for RawWakerVTableimpl Send for AccessErrorimpl Send for SystemTimeimpl Send for SystemTimeErrorimpl Send for PhantomPinnedimpl<'a> !Send for StderrLock<'a>impl<'a> !Send for StdoutLock<'a>impl<'a> Send for AncillaryData<'a>impl<'a> Send for SplitPaths<'a>impl<'a> Send for ScmCredentials<'a>impl<'a> Send for SocketAncillary<'a>impl<'a> Send for EncodeWide<'a>impl<'a> Send for Components<'a>impl<'a> Send for PrefixComponent<'a>impl<'a> Send for CommandArgs<'a>impl<'a> Send for CommandEnvs<'a>impl<'a> Send for CharSearcher<'a>impl<'a> Send for CharIndices<'a>impl<'a> Send for EncodeUtf16<'a>impl<'a> Send for std::str::EscapeDebug<'a>impl<'a> Send for std::str::EscapeDefault<'a>impl<'a> Send for std::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, K, F> Send for std::collections::hash_set::DrainFilter<'a, K, F> where
F: Send,
K: Send, impl<'a, K, V> Send for std::collections::btree_map::OccupiedEntry<'a, K, V> where
K: Send,
V: Send, impl<'a, K, V> Send for std::collections::btree_map::OccupiedError<'a, K, V> where
K: Send,
V: Send, impl<'a, K, V> Send for std::collections::btree_map::VacantEntry<'a, K, V> where
K: Send,
V: Send, impl<'a, K, V> Send for std::collections::hash_map::OccupiedEntry<'a, K, V> where
K: Send,
V: Send, impl<'a, K, V> Send for std::collections::hash_map::OccupiedError<'a, K, V> where
K: Send,
V: Send, impl<'a, K, V> Send for std::collections::hash_map::VacantEntry<'a, K, V> where
K: Send,
V: Send, impl<'a, K, V, F> Send for std::collections::btree_map::DrainFilter<'a, K, V, F> where
F: Send,
K: Send,
V: Send, impl<'a, K, V, F> Send for std::collections::hash_map::DrainFilter<'a, K, V, F> where
F: Send,
K: Send,
V: Send, impl<'a, K, V, S> Send for RawEntryMut<'a, K, V, S> where
K: Send,
S: Sync,
V: Send, impl<'a, K, V, S> Send for RawEntryBuilder<'a, K, V, S> where
K: Sync,
S: Sync,
V: Sync, impl<'a, K, V, S> Send for RawEntryBuilderMut<'a, K, V, S> where
K: Send,
S: Send,
V: Send, impl<'a, K, V, S> Send for RawOccupiedEntryMut<'a, K, V, S> where
K: Send,
V: Send, impl<'a, K, V, S> Send for RawVacantEntryMut<'a, K, V, S> where
K: Send,
S: Sync,
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 DrainSorted<'a, T> where
T: Send, impl<'a, T> Send for std::collections::btree_set::Difference<'a, T> where
T: Sync, impl<'a, T> Send for std::collections::btree_set::Intersection<'a, T> where
T: Sync, impl<'a, T> Send for std::collections::btree_set::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 std::collections::linked_list::DrainFilter<'a, T, F>impl<'a, T, F> Send for std::collections::btree_set::DrainFilter<'a, T, F> where
F: Send,
T: Send, impl<'a, T, F, A> Send for 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, S> Send for std::collections::hash_set::Difference<'a, T, S> where
S: Sync,
T: Sync, impl<'a, T, S> Send for std::collections::hash_set::Intersection<'a, T, S> where
S: Sync,
T: Sync, impl<'a, T, S> Send for std::collections::hash_set::SymmetricDifference<'a, T, S> where
S: Sync,
T: Sync, 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<K, V> Send for std::collections::btree_map::IntoValues<K, V> where
K: Send,
V: Send, impl<K, V> Send for std::collections::hash_map::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 IntoIterSorted<T> where
T: Send, impl<T> Send for BinaryHeap<T> where
T: Send, impl<T> Send for Discriminant<T>impl<T> Send for AssertUnwindSafe<T> where
T: Send, 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<W> Send for IntoInnerError<W> where
W: Send, impl<W> Send for LineWriter<W> where
W: Send, impl<Y, R> Send for GeneratorState<Y, R> where
R: Send,
Y: Send,