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 core::ffi::c_str::Bytes<'_>

1.6.0 · Source§

impl Send for tipc_std::string::Drain<'_>

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, A> !Send for Rc<T, A>
where A: Allocator, T: ?Sized,

Source§

impl<T, A> !Send for UniqueRc<T, A>
where A: Allocator, T: ?Sized,

1.4.0 · Source§

impl<T, A> !Send for tipc_std::rc::Weak<T, A>
where A: Allocator, T: ?Sized,

1.0.0 · Source§

impl<T, A> Send for Arc<T, A>
where T: Sync + Send + ?Sized, A: Allocator + Send,

Source§

impl<T, A> Send for Cursor<'_, T, A>
where T: Sync, A: Allocator + Sync,

Source§

impl<T, A> Send for CursorMut<'_, T, A>
where T: Send, A: Allocator + Send,

1.6.0 · Source§

impl<T, A> Send for alloc::collections::vec_deque::drain::Drain<'_, T, A>
where T: Send, A: Allocator + Send,

1.6.0 · Source§

impl<T, A> Send for tipc_std::vec::Drain<'_, T, A>
where T: Send, A: Send + Allocator,

1.0.0 · Source§

impl<T, A> Send for tipc_std::vec::IntoIter<T, A>
where T: Send, A: Allocator + Send,

1.0.0 · Source§

impl<T, A> Send for LinkedList<T, A>
where T: Send, A: Allocator + Send,

Source§

impl<T, A> Send for UniqueArc<T, A>
where T: Sync + Send + ?Sized, A: Allocator + Send,

1.4.0 · Source§

impl<T, A> Send for alloc::sync::Weak<T, A>
where T: Sync + Send + ?Sized, A: Allocator + Send,

Source§

impl<T: Send, F: Send> Send for LazyLock<T, F>

Source§

impl<T: Send> Send for Mutex<T>

Source§

impl<T: Send> Send for OnceLock<T>

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 tipc_std::slice::Iter<'_, T>
where T: Sync,

1.0.0 · Source§

impl<T> Send for alloc::collections::linked_list::Iter<'_, T>
where T: Sync,

1.0.0 · Source§

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

1.0.0 · Source§

impl<T> Send for alloc::collections::linked_list::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,

Source§

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

ThinBox<T> is Send if T is Send because the data is owned.

Auto implementors§

§

impl Send for Abi

§

impl Send for tipc_std::mem::Alignment

§

impl Send for tipc_std::fmt::Alignment

§

impl Send for AllocError

§

impl Send for Array

§

impl Send for Assume

§

impl Send for AtomicOrdering

§

impl Send for BasicBlock

§

impl Send for Bool

§

impl Send for BorrowError

§

impl Send for BorrowMutError

§

impl Send for CString

§

impl Send for Char

§

impl Send for CharCase

§

impl Send for CharTryFromError

§

impl Send for Const

§

impl Send for CpuidResult

§

impl Send for DebugAsHex

§

impl Send for DecodeUtf16Error

§

impl Send for DynTrait

§

impl Send for DynTraitPredicate

§

impl Send for Enum

§

impl Send for Error

§

impl Send for tipc_std::char::EscapeDebug

§

impl Send for tipc_std::char::EscapeDefault

§

impl Send for tipc_std::char::EscapeUnicode

§

impl Send for FallibleCString

§

impl Send for Field

§

impl Send for FieldId

§

impl Send for Float

§

impl Send for FnPtr

§

impl Send for FormattingOptions

§

impl Send for FromUtf8Error

§

impl Send for FromUtf16Error

§

impl Send for Generic

§

impl Send for GenericType

§

impl Send for GetDisjointMutError

§

impl Send for Infallible

§

impl Send for Int

§

impl Send for IntoChars

§

impl Send for Lifetime

§

impl Send for Locality

§

impl Send for OneSidedRangeBound

§

impl Send for Ordering

§

impl Send for ParseBoolError

§

impl Send for ParseCharError

§

impl Send for PhantomPinned

§

impl Send for Pointer

§

impl Send for RangeFull

§

impl Send for Reference

§

impl Send for ReturnToArg

§

impl Send for SearchStep

§

impl Send for Sign

§

impl Send for SimdAlign

§

impl Send for SipHasher

§

impl Send for Slice

§

impl Send for Str

§

impl Send for String

§

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 TryFromSliceError

§

impl Send for TryNewError

§

impl Send for Tuple

§

impl Send for Type

§

impl Send for TypeKind

§

impl Send for Union

§

impl Send for UnwindActionArg

§

impl Send for UnwindTerminateReason

§

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

§

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

§

impl<'a, B> Send for Cow<'a, B>
where <B as ToOwned>::Owned: Send, B: Sync + ?Sized,

§

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

§

impl<'a, I, A> Send for Splice<'a, I, A>
where I: Send, <I as Iterator>::Item: Send, A: 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 tipc_std::str::RSplit<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

impl<'a, P> Send for tipc_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 tipc_std::str::Split<'a, P>
where <P as Pattern>::Searcher<'a>: Send,

§

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

§

impl<'a, P> Send for tipc_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, A> Send for PeekMut<'a, T, A>
where A: Send, T: Send,

§

impl<'a, T, F, A> Send for ExtractIf<'a, T, F, A>
where F: Send, A: Send, T: 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 tipc_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 tipc_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 tipc_std::slice::Split<'a, T, P>
where P: Send, T: Sync,

§

impl<'a, T, P> Send for tipc_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 tipc_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 Chunks<'a, T>
where T: Sync,

§

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

§

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

§

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

§

impl<'a, T> Send for MutexGuard<'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 Formatter<'a>

§

impl<'a> Send for tipc_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 tipc_std::str::EscapeDebug<'a>

§

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

§

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

§

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

§

impl<'a> Send for LinesAny<'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<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<A> Send for tipc_std::option::IntoIter<A>
where A: Send,

§

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

§

impl<A> Send for 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 tipc_std::iter::FromFn<F>
where F: Send,

§

impl<F> Send for tipc_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 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 Take<I>
where I: Send,

§

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

§

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

§

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

§

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

§

impl<Idx> Send for 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, A> Send for Box<T, A>
where A: Send, T: Send + ?Sized,

§

impl<T, A> Send for Vec<T, A>
where A: Send, T: 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, const N: usize, A> Send for BoxedArrayIntoIter<T, N, A>
where T: Send, A: Send,

§

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

§

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

§

impl<T> Send for Discriminant<T>

§

impl<T> Send for Empty<T>

§

impl<T> Send for tipc_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 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 PoisonError<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 SyncUnsafeCell<T>
where T: Send + ?Sized,

§

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 Yeet<T>
where T: Send,

§

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