Trait std::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.
Implementations on Foreign Types
impl Send for Argument
impl Send for Argumentimpl Send for FormatSpec
impl Send for FormatSpecimpl Send for Alignment
impl Send for Alignmentimpl Send for Count
impl Send for CountImplementors
impl<'a> Send for IoSliceMut<'a>1.44.0[src]
impl<'a> Send for IoSliceMut<'a>1.44.0[src]impl<Dyn> Send for DynMetadata<Dyn> where
Dyn: ?Sized, [src]
impl<Dyn> Send for DynMetadata<Dyn> where
Dyn: ?Sized, [src]impl<T> !Send for NonNull<T> where
T: ?Sized, 1.25.0[src]
impl<T> !Send for NonNull<T> where
T: ?Sized, 1.25.0[src]NonNull pointers are not Send because the data they reference may be aliased.
impl<T> Send for LinkedList<T> where
T: Send, [src]
impl<T> Send for LinkedList<T> where
T: Send, [src]impl<T> Send for JoinHandle<T>1.29.0[src]
impl<T> Send for JoinHandle<T>1.29.0[src]impl<T: Send> Send for SyncOnceCell<T>[src]
impl<T: Send> Send for SyncOnceCell<T>[src]impl<T: Send> Send for SyncSender<T>[src]
impl<T: Send> Send for SyncSender<T>[src]impl<T: ?Sized> !Send for MutexGuard<'_, T>[src]
impl<T: ?Sized> !Send for MutexGuard<'_, T>[src]impl<T: ?Sized> !Send for RwLockReadGuard<'_, T>[src]
impl<T: ?Sized> !Send for RwLockReadGuard<'_, T>[src]impl<T: ?Sized> !Send for RwLockWriteGuard<'_, T>[src]
impl<T: ?Sized> !Send for RwLockWriteGuard<'_, T>[src]Auto implementors
impl !Send for TraitObject
impl !Send for TraitObjectimpl Send for BacktraceStatus
impl Send for BacktraceStatusimpl Send for TryReserveError
impl Send for TryReserveErrorimpl Send for Infallible
impl Send for Infallibleimpl Send for Ipv6MulticastScope
impl Send for Ipv6MulticastScopeimpl Send for std::net::SocketAddr
impl Send for std::net::SocketAddrimpl Send for FpCategory
impl Send for FpCategoryimpl Send for IntErrorKind
impl Send for IntErrorKindimpl Send for AncillaryError
impl Send for AncillaryErrorimpl Send for SearchStep
impl Send for SearchStepimpl Send for RecvTimeoutError
impl Send for RecvTimeoutErrorimpl Send for TryRecvError
impl Send for TryRecvErrorimpl Send for AllocError
impl Send for AllocErrorimpl Send for LayoutError
impl Send for LayoutErrorimpl Send for TryFromSliceError
impl Send for TryFromSliceErrorimpl Send for std::ascii::EscapeDefault
impl Send for std::ascii::EscapeDefaultimpl Send for BacktraceFrame
impl Send for BacktraceFrameimpl Send for BorrowError
impl Send for BorrowErrorimpl Send for BorrowMutError
impl Send for BorrowMutErrorimpl Send for CharTryFromError
impl Send for CharTryFromErrorimpl Send for DecodeUtf16Error
impl Send for DecodeUtf16Errorimpl Send for std::char::EscapeDebug
impl Send for std::char::EscapeDebugimpl Send for std::char::EscapeDefault
impl Send for std::char::EscapeDefaultimpl Send for std::char::EscapeUnicode
impl Send for std::char::EscapeUnicodeimpl Send for ParseCharError
impl Send for ParseCharErrorimpl Send for ToLowercase
impl Send for ToLowercaseimpl Send for ToUppercase
impl Send for ToUppercaseimpl Send for DefaultHasher
impl Send for DefaultHasherimpl Send for RandomState
impl Send for RandomStateimpl Send for JoinPathsError
impl Send for JoinPathsErrorimpl Send for FromBytesWithNulError
impl Send for FromBytesWithNulErrorimpl Send for FromVecWithNulError
impl Send for FromVecWithNulErrorimpl Send for IntoStringError
impl Send for IntoStringErrorimpl Send for DirBuilder
impl Send for DirBuilderimpl Send for OpenOptions
impl Send for OpenOptionsimpl Send for Permissions
impl Send for Permissionsimpl Send for Initializer
impl Send for Initializerimpl Send for AddrParseError
impl Send for AddrParseErrorimpl Send for SocketAddrV4
impl Send for SocketAddrV4impl Send for SocketAddrV6
impl Send for SocketAddrV6impl Send for TcpListener
impl Send for TcpListenerimpl Send for NonZeroI16
impl Send for NonZeroI16impl Send for NonZeroI32
impl Send for NonZeroI32impl Send for NonZeroI64
impl Send for NonZeroI64impl Send for NonZeroI128
impl Send for NonZeroI128impl Send for NonZeroIsize
impl Send for NonZeroIsizeimpl Send for NonZeroU16
impl Send for NonZeroU16impl Send for NonZeroU32
impl Send for NonZeroU32impl Send for NonZeroU64
impl Send for NonZeroU64impl Send for NonZeroU128
impl Send for NonZeroU128impl Send for NonZeroUsize
impl Send for NonZeroUsizeimpl Send for ParseFloatError
impl Send for ParseFloatErrorimpl Send for ParseIntError
impl Send for ParseIntErrorimpl Send for TryFromIntError
impl Send for TryFromIntErrorimpl Send for std::os::unix::net::SocketAddr
impl Send for std::os::unix::net::SocketAddrimpl Send for SocketCred
impl Send for SocketCredimpl Send for UnixDatagram
impl Send for UnixDatagramimpl Send for UnixListener
impl Send for UnixListenerimpl Send for UnixStream
impl Send for UnixStreamimpl Send for StripPrefixError
impl Send for StripPrefixErrorimpl Send for ChildStderr
impl Send for ChildStderrimpl Send for ChildStdin
impl Send for ChildStdinimpl Send for ChildStdout
impl Send for ChildStdoutimpl Send for ExitStatus
impl Send for ExitStatusimpl Send for ParseBoolError
impl Send for ParseBoolErrorimpl Send for FromUtf8Error
impl Send for FromUtf8Errorimpl Send for FromUtf16Error
impl Send for FromUtf16Errorimpl Send for AtomicBool
impl Send for AtomicBoolimpl Send for AtomicIsize
impl Send for AtomicIsizeimpl Send for AtomicUsize
impl Send for AtomicUsizeimpl Send for BarrierWaitResult
impl Send for BarrierWaitResultimpl Send for WaitTimeoutResult
impl Send for WaitTimeoutResultimpl Send for RawWakerVTable
impl Send for RawWakerVTableimpl Send for AccessError
impl Send for AccessErrorimpl Send for SystemTime
impl Send for SystemTimeimpl Send for SystemTimeError
impl Send for SystemTimeErrorimpl Send for PhantomPinned
impl Send for PhantomPinnedimpl<'a> !Send for StderrLock<'a>
impl<'a> !Send for StderrLock<'a>impl<'a> !Send for StdoutLock<'a>
impl<'a> !Send for StdoutLock<'a>impl<'a> Send for AncillaryData<'a>
impl<'a> Send for AncillaryData<'a>impl<'a> Send for SplitPaths<'a>
impl<'a> Send for SplitPaths<'a>impl<'a> Send for ScmCredentials<'a>
impl<'a> Send for ScmCredentials<'a>impl<'a> Send for SocketAncillary<'a>
impl<'a> Send for SocketAncillary<'a>impl<'a> Send for EncodeWide<'a>
impl<'a> Send for EncodeWide<'a>impl<'a> Send for Components<'a>
impl<'a> Send for Components<'a>impl<'a> Send for PrefixComponent<'a>
impl<'a> Send for PrefixComponent<'a>impl<'a> Send for CommandArgs<'a>
impl<'a> Send for CommandArgs<'a>impl<'a> Send for CommandEnvs<'a>
impl<'a> Send for CommandEnvs<'a>impl<'a> Send for CharSearcher<'a>
impl<'a> Send for CharSearcher<'a>impl<'a> Send for CharIndices<'a>
impl<'a> Send for CharIndices<'a>impl<'a> Send for EncodeUtf16<'a>
impl<'a> Send for EncodeUtf16<'a>impl<'a> Send for std::str::EscapeDebug<'a>
impl<'a> Send for std::str::EscapeDebug<'a>impl<'a> Send for std::str::EscapeDefault<'a>
impl<'a> Send for std::str::EscapeDefault<'a>impl<'a> Send for std::str::EscapeUnicode<'a>
impl<'a> Send for std::str::EscapeUnicode<'a>impl<'a> Send for SplitAsciiWhitespace<'a>
impl<'a> Send for SplitAsciiWhitespace<'a>impl<'a> Send for SplitWhitespace<'a>
impl<'a> Send for SplitWhitespace<'a>impl<'a, 'b> !Send for DebugStruct<'a, 'b>
impl<'a, 'b> !Send for DebugStruct<'a, 'b>impl<'a, 'b> !Send for DebugTuple<'a, 'b>
impl<'a, 'b> !Send for DebugTuple<'a, 'b>impl<'a, 'b> Send for CharSliceSearcher<'a, 'b>
impl<'a, 'b> Send for CharSliceSearcher<'a, 'b>impl<'a, 'b> Send for StrSearcher<'a, 'b>
impl<'a, 'b> Send for StrSearcher<'a, 'b>impl<'a, F> Send for CharPredicateSearcher<'a, F> where
F: Send,
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, 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::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::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::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::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::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> 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::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, 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 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 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 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 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, 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 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 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 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 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, 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 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::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::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 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 ChunksExact<'a, T> where
T: Sync, impl<'a, T> Send for ChunksExactMut<'a, T> where
T: Send,
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 RChunksExact<'a, T> where
T: Sync, impl<'a, T> Send for RChunksExactMut<'a, T> where
T: Send,
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> 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::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> 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, 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 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 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::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::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, 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 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 ArrayChunks<'a, T, N> where
T: Sync, impl<'a, T, const N: usize> Send for ArrayChunksMut<'a, T, N> where
T: Send,
impl<'a, T, const N: usize> Send for ArrayChunksMut<'a, T, N> where
T: Send, impl<'f> !Send for VaListImpl<'f>
impl<'f> !Send for VaListImpl<'f>impl<B, C> Send for ControlFlow<B, C> where
B: Send,
C: Send,
impl<B, C> Send for ControlFlow<B, C> where
B: Send,
C: Send, impl<F> Send for RepeatWith<F> where
F: Send,
impl<F> Send for RepeatWith<F> where
F: Send, impl<H> Send for BuildHasherDefault<H> where
H: Send,
impl<H> Send for BuildHasherDefault<H> where
H: Send, impl<I> Send for DecodeUtf16<I> where
I: 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<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 RangeInclusive<Idx> where
Idx: Send, impl<Idx> Send for RangeToInclusive<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::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<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 TryLockError<T> where
T: Send, impl<T> Send for TrySendError<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 IntoIterSorted<T> where
T: Send, impl<T> Send for BinaryHeap<T> where
T: Send,
impl<T> Send for BinaryHeap<T> where
T: Send, impl<T> Send for Discriminant<T>
impl<T> Send for Discriminant<T>impl<T> Send for AssertUnwindSafe<T> where
T: Send,
impl<T> Send for AssertUnwindSafe<T> where
T: Send, impl<T> Send for PoisonError<T> where
T: Send,
impl<T> Send for PoisonError<T> where
T: Send, impl<T> Send for MaybeUninit<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, 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 UnsafeCell<T> where
T: Send, impl<T: ?Sized> Send for ManuallyDrop<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<T: ?Sized> Send for PhantomData<T> where
T: Send, impl<W> Send for IntoInnerError<W> where
W: Send,
impl<W> Send for IntoInnerError<W> where
W: Send, impl<W> Send for LineWriter<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,
impl<Y, R> Send for GeneratorState<Y, R> where
R: Send,
Y: Send,