Skip to main content

Send

Trait Send 

1.0.0 · Source
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 and the Sync trait for more details.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

1.0.0 · Source§

impl !Send for Arguments<'_>

Source§

impl !Send for LocalWaker

Source§

impl Send for maybe_std::ffi::c_str::Bytes<'_>

1.10.0 · Source§

impl Send for Location<'_>

1.0.0 · Source§

impl Send for TypeId

1.36.0 · Source§

impl Send for Waker

1.44.0 · Source§

impl<'a> Send for IoSlice<'a>

1.44.0 · Source§

impl<'a> Send for IoSliceMut<'a>

Source§

impl<Dyn> Send for DynMetadata<Dyn>
where Dyn: ?Sized,

1.0.0 · Source§

impl<T> !Send for *const T
where T: ?Sized,

1.0.0 · Source§

impl<T> !Send for *mut T
where T: ?Sized,

1.25.0 · Source§

impl<T> !Send for NonNull<T>
where T: ?Sized,

NonNull pointers are not Send because the data they reference may be aliased.

1.0.0 · Source§

impl<T> Send for &T
where T: Sync + ?Sized,

1.0.0 · Source§

impl<T> Send for Atomic<T>
where T: AtomicPrimitive,

1.0.0 · Source§

impl<T> Send for Cell<T>
where T: Send + ?Sized,

1.31.0 · Source§

impl<T> Send for ChunksExactMut<'_, T>
where T: Send,

1.0.0 · Source§

impl<T> Send for ChunksMut<'_, T>
where T: Send,

1.0.0 · Source§

impl<T> Send for maybe_std::slice::Iter<'_, T>
where T: Sync,

1.0.0 · Source§

impl<T> Send for maybe_std::slice::IterMut<'_, T>
where T: Send,

1.28.0 · Source§

impl<T> Send for NonZero<T>

1.31.0 · Source§

impl<T> Send for RChunksExactMut<'_, T>
where T: Send,

1.31.0 · Source§

impl<T> Send for RChunksMut<'_, T>
where T: Send,

1.0.0 · Source§

impl<T> Send for RefCell<T>
where T: Send + ?Sized,

Auto implementors§

§

impl !Send for RawWaker

§

impl Send for Abi

§

impl Send for AddrParseError

§

impl Send for maybe_std::mem::Alignment

§

impl Send for maybe_std::fmt::Alignment

§

impl Send for AllocError

§

impl Send for Array

§

impl Send for AsciiChar

§

impl Send for Assume

§

impl Send for AtomicOrdering

§

impl Send for BasicBlock

§

impl Send for Big8x3

§

impl Send for Big32x40

§

impl Send for Bool

§

impl Send for BorrowError

§

impl Send for BorrowMutError

§

impl Send for ByteStr

§

impl Send for CStr

§

impl Send for Char

§

impl Send for CharCase

§

impl Send for CharTryFromError

§

impl Send for CodePointInner

§

impl Send for Const

§

impl Send for CpuidResult

§

impl Send for DebugAsHex

§

impl Send for Decimal

§

impl Send for DecimalSeq

§

impl Send for DecodeUtf16Error

§

impl Send for Decoded

§

impl Send for Duration

§

impl Send for DynTrait

§

impl Send for DynTraitPredicate

§

impl Send for maybe_std::io::Empty

§

impl Send for Enum

§

impl Send for Error

§

impl Send for ErrorKind

§

impl Send for maybe_std::char::EscapeDebug

§

impl Send for maybe_std::ascii::EscapeDefault

§

impl Send for maybe_std::char::EscapeDefault

§

impl Send for maybe_std::char::EscapeUnicode

§

impl Send for Field

§

impl Send for FieldId

§

impl Send for Float

§

impl Send for FnPtr

§

impl Send for FormattingOptions

§

impl Send for FpCategory

§

impl Send for FromBytesUntilNulError

§

impl Send for FromBytesWithNulError

§

impl Send for FullDecoded

§

impl Send for Generic

§

impl Send for GenericType

§

impl Send for GetDisjointMutError

§

impl Send for I32NotAllOnes

§

impl Send for I64NotAllOnes

§

impl Send for Infallible

§

impl Send for Int

§

impl Send for IntErrorKind

§

impl Send for IpAddr

§

impl Send for Ipv4Addr

§

impl Send for Ipv6Addr

§

impl Send for Ipv6MulticastScope

§

impl Send for Last

§

impl Send for Layout

§

impl Send for LayoutError

§

impl Send for Lifetime

§

impl Send for Locality

§

impl Send for Nanoseconds

§

impl Send for NonZeroCharInner

§

impl Send for NonZeroI8Inner

§

impl Send for NonZeroI16Inner

§

impl Send for NonZeroI32Inner

§

impl Send for NonZeroI64Inner

§

impl Send for NonZeroI128Inner

§

impl Send for NonZeroIsizeInner

§

impl Send for NonZeroU8Inner

§

impl Send for NonZeroU16Inner

§

impl Send for NonZeroU32Inner

§

impl Send for NonZeroU64Inner

§

impl Send for NonZeroU128Inner

§

impl Send for NonZeroUsizeInner

§

impl Send for OneSidedRangeBound

§

impl Send for maybe_std::cmp::Ordering

§

impl Send for maybe_std::sync::atomic::Ordering

§

impl Send for ParseBoolError

§

impl Send for ParseCharError

§

impl Send for ParseFloatError

§

impl Send for ParseIntError

§

impl Send for PhantomPinned

§

impl Send for Pointer

§

impl Send for RangeFull

§

impl Send for RawWakerVTable

§

impl Send for Reference

§

impl Send for maybe_std::io::Repeat

§

impl Send for ReturnToArg

§

impl Send for SearchStep

§

impl Send for Sign

§

impl Send for maybe_std::fmt::Sign

§

impl Send for SimdAlign

§

impl Send for Sink

§

impl Send for SipHasher

§

impl Send for Slice

§

impl Send for SocketAddr

§

impl Send for SocketAddrV4

§

impl Send for SocketAddrV6

§

impl Send for Str

§

impl Send for Struct

§

impl Send for ToCasefold

§

impl Send for ToLowercase

§

impl Send for ToTitlecase

§

impl Send for ToUppercase

§

impl Send for Trait

§

impl Send for TryFromCharError

§

impl Send for TryFromFloatSecsError

§

impl Send for TryFromIntError

§

impl Send for TryFromSliceError

§

impl Send for Tuple

§

impl Send for Type

§

impl Send for TypeKind

§

impl Send for U32NotAllOnes

§

impl Send for U64NotAllOnes

§

impl Send for Union

§

impl Send for UnwindActionArg

§

impl Send for UnwindTerminateReason

§

impl Send for UsizeNoHighBit

§

impl Send for Utf8Error

§

impl Send for Variant

§

impl Send for __m128

§

impl Send for __m256

§

impl Send for __m512

§

impl Send for __m128bh

§

impl Send for __m128d

§

impl Send for __m128h

§

impl Send for __m128i

§

impl Send for __m256bh

§

impl Send for __m256d

§

impl Send for __m256h

§

impl Send for __m256i

§

impl Send for __m512bh

§

impl Send for __m512d

§

impl Send for __m512h

§

impl Send for __m512i

§

impl Send for __tile1024i

§

impl Send for bf16

§

impl Send for c_void

§

impl<'a, 'b, const N: usize> Send for CharArrayRefSearcher<'a, 'b, N>

§

impl<'a, 'b> !Send for DebugList<'a, 'b>

§

impl<'a, 'b> !Send for DebugMap<'a, 'b>

§

impl<'a, 'b> !Send for DebugSet<'a, 'b>

§

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, A> Send for maybe_std::option::Iter<'a, A>
where A: Sync,

§

impl<'a, A> Send for maybe_std::option::IterMut<'a, A>
where A: Send,

§

impl<'a, F> Send for CharPredicateSearcher<'a, F>
where F: Send,

§

impl<'a, I> Send for ByRefSized<'a, I>
where I: Send,

§

impl<'a, P> Send for MatchIndices<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for Matches<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for RMatchIndices<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for RMatches<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for maybe_std::str::RSplit<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for maybe_std::str::RSplitN<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for RSplitTerminator<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for maybe_std::str::Split<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for maybe_std::str::SplitInclusive<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for maybe_std::str::SplitN<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for SplitTerminator<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, T, P> Send for ChunkBy<'a, T, P>
where P: Send, T: Sync,

§

impl<'a, T, P> Send for ChunkByMut<'a, T, P>
where P: Send, T: Send,

§

impl<'a, T, P> Send for maybe_std::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 maybe_std::slice::RSplitN<'a, T, P>
where P: Send, T: Sync,

§

impl<'a, T, P> Send for RSplitNMut<'a, T, P>
where P: Send, T: Send,

§

impl<'a, T, P> Send for maybe_std::slice::Split<'a, T, P>
where P: Send, T: Sync,

§

impl<'a, T, P> Send for maybe_std::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, P> Send for SplitMut<'a, T, P>
where P: Send, T: Send,

§

impl<'a, T, P> Send for maybe_std::slice::SplitN<'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, const N: usize> Send for ArrayWindows<'a, T, N>
where T: Sync,

§

impl<'a, T> Send for BorrowedCursor<'a, T>
where T: Send,

§

impl<'a, T> Send for Chunks<'a, T>
where T: Sync,

§

impl<'a, T> Send for ChunksExact<'a, T>
where T: Sync,

§

impl<'a, T> Send for maybe_std::result::Iter<'a, T>
where T: Sync,

§

impl<'a, T> Send for maybe_std::result::IterMut<'a, T>
where T: Send,

§

impl<'a, T> Send for RChunks<'a, T>
where T: Sync,

§

impl<'a, T> Send for RChunksExact<'a, T>
where T: Sync,

§

impl<'a, T> Send for Windows<'a, T>
where T: Sync,

§

impl<'a, const N: usize> Send for CharArraySearcher<'a, N>

§

impl<'a> !Send for Context<'a>

§

impl<'a> !Send for ContextBuilder<'a>

§

impl<'a> !Send for Formatter<'a>

§

impl<'a> !Send for PanicInfo<'a>

§

impl<'a> !Send for PanicMessage<'a>

§

impl<'a> !Send for Request<'a>

§

impl<'a> !Send for Source<'a>

§

impl<'a> !Send for VaList<'a>

§

impl<'a> Send for maybe_std::str::Bytes<'a>

§

impl<'a> Send for CharIndices<'a>

§

impl<'a> Send for CharSearcher<'a>

§

impl<'a> Send for Chars<'a>

§

impl<'a> Send for EncodeUtf16<'a>

§

impl<'a> Send for EscapeAscii<'a>

§

impl<'a> Send for maybe_std::str::EscapeDebug<'a>

§

impl<'a> Send for maybe_std::str::EscapeDefault<'a>

§

impl<'a> Send for maybe_std::str::EscapeUnicode<'a>

§

impl<'a> Send for Formatted<'a>

§

impl<'a> Send for Lines<'a>

§

impl<'a> Send for LinesAny<'a>

§

impl<'a> Send for Part<'a>

§

impl<'a> Send for PhantomContravariantLifetime<'a>

§

impl<'a> Send for PhantomCovariantLifetime<'a>

§

impl<'a> Send for PhantomInvariantLifetime<'a>

§

impl<'a> Send for SplitAsciiWhitespace<'a>

§

impl<'a> Send for SplitWhitespace<'a>

§

impl<'a> Send for Utf8Chunk<'a>

§

impl<'a> Send for Utf8Chunks<'a>

§

impl<'a> Send for Utf8Pattern<'a>

§

impl<'b, T> !Send for Ref<'b, T>

§

impl<'b, T> !Send for RefMut<'b, T>

§

impl<'data, T> Send for BorrowedBuf<'data, T>
where T: Send,

§

impl<A, B> Send for maybe_std::iter::Chain<A, B>
where A: Send, B: Send,

§

impl<A, B> Send for Zip<A, B>
where A: Send, B: Send,

§

impl<A> Send for maybe_std::option::IntoIter<A>
where A: Send,

§

impl<A> Send for OptionFlatten<A>
where A: Send,

§

impl<A> Send for RangeFromIter<A>
where A: Send,

§

impl<A> Send for RangeInclusiveIter<A>
where A: Send,

§

impl<A> Send for RangeIter<A>
where A: Send,

§

impl<A> Send for maybe_std::iter::Repeat<A>
where A: Send,

§

impl<A> Send for RepeatN<A>
where A: Send,

§

impl<B, C> Send for ControlFlow<B, C>
where C: Send, B: Send,

§

impl<F> Send for maybe_std::iter::FromFn<F>
where F: Send,

§

impl<F> Send for maybe_std::fmt::FromFn<F>
where F: Send,

§

impl<F> Send for OnceWith<F>
where F: Send,

§

impl<F> Send for PollFn<F>
where F: Send,

§

impl<F> Send for RepeatWith<F>
where F: Send,

§

impl<G> Send for FromCoroutine<G>
where G: Send,

§

impl<H> Send for BuildHasherDefault<H>

§

impl<I, F, const N: usize> Send for MapWindows<I, F, N>
where F: Send, I: Send, <I as Iterator>::Item: Send,

§

impl<I, F> Send for FilterMap<I, F>
where I: Send, F: Send,

§

impl<I, F> Send for Inspect<I, F>
where I: Send, F: Send,

§

impl<I, F> Send for Map<I, F>
where I: Send, F: Send,

§

impl<I, G> Send for IntersperseWith<I, G>
where G: Send, I: Send, <I as Iterator>::Item: Send,

§

impl<I, P> Send for Filter<I, P>
where I: Send, P: Send,

§

impl<I, P> Send for MapWhile<I, P>
where I: Send, P: 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, St, F> Send for Scan<I, St, F>
where I: Send, F: Send, St: Send,

§

impl<I, U, F> Send for FlatMap<I, U, F>
where <U as IntoIterator>::IntoIter: Send, I: Send, F: Send,

§

impl<I, const N: usize> Send for ArrayChunks<I, N>
where I: Send, <I as Iterator>::Item: Send,

§

impl<I> Send for Cloned<I>
where I: Send,

§

impl<I> Send for Copied<I>
where I: Send,

§

impl<I> Send for Cycle<I>
where I: Send,

§

impl<I> Send for DecodeUtf16<I>
where I: Send,

§

impl<I> Send for Enumerate<I>
where I: Send,

§

impl<I> Send for Flatten<I>
where <<I as Iterator>::Item as IntoIterator>::IntoIter: Send, I: Send,

§

impl<I> Send for FromIter<I>
where I: Send,

§

impl<I> Send for Fuse<I>
where I: Send,

§

impl<I> Send for Intersperse<I>
where <I as Iterator>::Item: Sized + Send, I: Send,

§

impl<I> Send for Peekable<I>
where I: Send, <I as Iterator>::Item: Send,

§

impl<I> Send for Skip<I>
where I: Send,

§

impl<I> Send for StepBy<I>
where I: Send,

§

impl<I> Send for maybe_std::iter::Take<I>
where I: Send,

§

impl<Idx> Send for Clamp<Idx>
where Idx: Send,

§

impl<Idx> Send for maybe_std::ops::Range<Idx>
where Idx: Send,

§

impl<Idx> Send for maybe_std::range::Range<Idx>
where Idx: Send,

§

impl<Idx> Send for maybe_std::ops::RangeFrom<Idx>
where Idx: Send,

§

impl<Idx> Send for maybe_std::range::RangeFrom<Idx>
where Idx: Send,

§

impl<Idx> Send for maybe_std::ops::RangeInclusive<Idx>
where Idx: Send,

§

impl<Idx> Send for maybe_std::range::RangeInclusive<Idx>
where Idx: Send,

§

impl<Idx> Send for RangeTo<Idx>
where Idx: Send,

§

impl<Idx> Send for maybe_std::ops::RangeToInclusive<Idx>
where Idx: Send,

§

impl<Idx> Send for maybe_std::range::RangeToInclusive<Idx>
where Idx: Send,

§

impl<P> Send for MaybeDangling<P>
where P: Send + ?Sized,

§

impl<Ptr> Send for Pin<Ptr>
where Ptr: Send,

§

impl<T, E> Send for Result<T, E>
where T: Send, E: Send,

§

impl<T, F> Send for DropGuard<T, F>
where T: Send, F: Send,

§

impl<T, F> Send for LazyCell<T, F>
where F: Send, T: Send,

§

impl<T, F> Send for Successors<T, F>
where F: Send, T: Send,

§

impl<T, U> Send for maybe_std::io::Chain<T, U>
where T: Send, U: Send,

§

impl<T, const N: usize> Send for maybe_std::array::IntoIter<T, N>
where T: Send,

§

impl<T, const N: usize> Send for Mask<T, N>
where T: Send,

§

impl<T, const N: usize> Send for Simd<T, N>
where T: Send,

§

impl<T, const VARIANT: u32, const FIELD: u32> Send for FieldRepresentingType<T, VARIANT, FIELD>
where T: ?Sized,

§

impl<T> Send for AssertUnwindSafe<T>
where T: Send,

§

impl<T> Send for Bound<T>
where T: Send,

§

impl<T> Send for Cursor<T>
where T: Send,

§

impl<T> Send for Discriminant<T>

§

impl<T> Send for maybe_std::iter::Empty<T>

§

impl<T> Send for maybe_std::result::IntoIter<T>
where T: Send,

§

impl<T> Send for ManuallyDrop<T>
where T: Send + ?Sized,

§

impl<T> Send for MaybeUninit<T>
where T: Send,

§

impl<T> Send for NumBuffer<T>
where <T as NumBufferTrait>::Buf: Send, T: Send,

§

impl<T> Send for Once<T>
where T: Send,

§

impl<T> Send for OnceCell<T>
where T: Send,

§

impl<T> Send for Option<T>
where T: Send,

§

impl<T> Send for Pending<T>

§

impl<T> Send for PhantomContravariant<T>
where T: ?Sized,

§

impl<T> Send for PhantomCovariant<T>
where T: ?Sized,

§

impl<T> Send for PhantomData<T>
where T: Send + ?Sized,

§

impl<T> Send for PhantomInvariant<T>
where T: ?Sized,

§

impl<T> Send for Poll<T>
where T: Send,

§

impl<T> Send for Ready<T>
where T: Send,

§

impl<T> Send for Rev<T>
where T: Send,

§

impl<T> Send for Reverse<T>
where T: Send,

§

impl<T> Send for Saturating<T>
where T: Send,

§

impl<T> Send for SyncUnsafeCell<T>
where T: Send + ?Sized,

§

impl<T> Send for SyncView<T>
where T: Send + ?Sized,

§

impl<T> Send for maybe_std::io::Take<T>
where T: Send,

§

impl<T> Send for TraitImpl<T>
where T: ?Sized,

§

impl<T> Send for UnsafeCell<T>
where T: Send + ?Sized,

§

impl<T> Send for UnsafePinned<T>
where T: Send + ?Sized,

§

impl<T> Send for Wrapping<T>
where T: Send,

§

impl<T> Send for Yeet<T>
where T: Send,

§

impl<Y, R> Send for CoroutineState<Y, R>
where Y: Send, R: Send,