Trait ockam_core::lib::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 Rc
s 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 AccessError
impl Send for EscapeDefault
impl Send for BacktraceStatus
impl Send for BacktraceFrame
impl<'a, K, V, F> Send for DrainFilter<'a, K, V, F> where
F: Send,
K: Send,
V: Send,
impl<K, V> Send for IntoValues<K, V> where
K: 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 RawEntryMut<'a, K, V, S> where
K: Send,
S: Sync,
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 RawEntryBuilder<'a, K, V, S> where
K: Sync,
S: Sync,
V: Sync,
impl<'a, K, V> Send for OccupiedEntry<'a, K, V> where
K: Send,
V: Send,
impl<'a, K, V> Send for VacantEntry<'a, K, V> where
K: Send,
V: Send,
impl<'a, K, V> Send for OccupiedError<'a, K, V> where
K: Send,
V: Send,
impl Send for RandomState
impl Send for DefaultHasher
impl<'a, K, F> Send for DrainFilter<'a, K, F> where
F: Send,
K: Send,
impl<'a, T, S> Send for Intersection<'a, T, S> where
S: Sync,
T: Sync,
impl<'a, T, S> Send for Difference<'a, T, S> where
S: Sync,
T: Sync,
impl<'a, T, S> Send for SymmetricDifference<'a, T, S> where
S: Sync,
T: Sync,
impl<T> Send for IntoIterSorted<T> where
T: Send,
impl<'a, T> Send for DrainSorted<'a, T> where
T: Send,
impl<'a, K, V> Send for OccupiedEntry<'a, K, V> where
K: Send,
V: Send,
impl<'a, K, V> Send for OccupiedError<'a, K, V> where
K: Send,
V: Send,
impl<'a, K, V> Send for VacantEntry<'a, K, V> where
K: Send,
V: Send,
impl<K, V> Send for IntoValues<K, V> where
K: Send,
V: Send,
impl<'a, K, V, F> Send for DrainFilter<'a, K, V, F> where
F: Send,
K: Send,
V: Send,
impl<'a, T> Send for Difference<'a, T> where
T: Sync,
impl<'a, T> Send for SymmetricDifference<'a, T> where
T: Sync,
impl<'a, T> Send for Intersection<'a, T> where
T: Sync,
impl<'a, T, F> Send for DrainFilter<'a, T, F> where
F: Send,
T: Send,
impl<'a, T, F> !Send for DrainFilter<'a, T, F>
impl Send for TryReserveError
impl<'a> Send for SplitPaths<'a>
impl Send for JoinPathsError
impl Send for FromBytesWithNulError
impl Send for FromVecWithNulError
impl Send for IntoStringError
impl<'f> !Send for VaListImpl<'f>
impl Send for OpenOptions
impl Send for Permissions
impl Send for DirBuilder
impl Send for Initializer
impl<W> Send for IntoInnerError<W> where
W: Send,
impl<W> Send for LineWriter<W> where
W: Send,
impl<'a> !Send for StderrLock<'a>
impl<'a> !Send for StdoutLock<'a>
impl Send for SocketAddr
impl<'a> Send for SocketAncillary<'a>
impl Send for UnixStream
impl<'a> Send for ScmCredentials<'a>
impl<'a> Send for AncillaryData<'a>
impl Send for UnixDatagram
impl Send for UnixListener
impl Send for SocketCred
impl Send for AncillaryError
impl<T> Send for AssertUnwindSafe<T> where
T: Send,
impl<'a> Send for PrefixComponent<'a>
impl<'a> Send for Components<'a>
impl Send for StripPrefixError
impl Send for ChildStdin
impl Send for ChildStdout
impl Send for ChildStderr
impl<'a> Send for CommandArgs<'a>
impl Send for ExitStatus
impl Send for ExitStatusError
impl<'a> Send for CommandEnvs<'a>
impl Send for TryRecvError
impl Send for RecvTimeoutError
impl<T> Send for TrySendError<T> where
T: Send,
impl Send for AtomicBool
impl Send for AtomicIsize
impl Send for AtomicUsize
impl Send for BarrierWaitResult
impl Send for WaitTimeoutResult
impl<T> Send for PoisonError<T> where
T: Send,
impl<T> Send for TryLockError<T> where
T: Send,
impl Send for SystemTime
impl Send for SystemTimeError
impl Send for RawWakerVTable
impl Send for AllocError
impl Send for LayoutError
impl Send for Argument
impl Send for FormatSpec
impl Send for Alignment
impl Send for Count
impl Send for FromUtf8Error
impl Send for FromUtf16Error
impl<'a, T, F, A> Send for DrainFilter<'a, T, F, A> where
A: Send,
F: Send,
T: Send,
impl Send for CpuidResult
impl Send for TryFromSliceError
impl Send for BorrowError
impl Send for BorrowMutError
impl<T: ?Sized> Send for UnsafeCell<T> where
T: Send,
impl Send for EscapeUnicode
impl Send for EscapeDefault
impl Send for EscapeDebug
impl Send for ToLowercase
impl Send for ToUppercase
impl Send for CharTryFromError
impl Send for ParseCharError
impl<I> Send for DecodeUtf16<I> where
I: Send,
impl Send for DecodeUtf16Error
impl<H> Send for BuildHasherDefault<H> where
H: 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<B, C> Send for ControlFlow<B, C> where
B: Send,
C: Send,
NonNull
pointers are not Send
because the data they reference may be aliased.
impl<'_, K, V, S, A> Send for RawOccupiedEntryMut<'_, K, V, S, A> where
A: Send + Allocator + Clone,
K: Send,
V: Send,
impl<'_, K, V, S, A> Send for OccupiedEntry<'_, K, V, S, A> where
S: Send,
A: Send + Allocator + Clone,
K: Send,
V: Send,
Implementors
Auto implementors
impl Send for RouteError
impl Send for RouterMessage
impl Send for Infallible
impl Send for Ipv6MulticastScope
impl Send for ockam_core::lib::net::SocketAddr
impl Send for FpCategory
impl Send for IntErrorKind
impl Send for SearchStep
impl Send for AddressSet
impl Send for LocalMessage
impl Send for ProtocolId
impl Send for ServiceBuilder
impl Send for TransportMessage
impl Send for AddrParseError
impl Send for SocketAddrV4
impl Send for SocketAddrV6
impl Send for TcpListener
impl Send for NonZeroI16
impl Send for NonZeroI32
impl Send for NonZeroI64
impl Send for NonZeroI128
impl Send for NonZeroIsize
impl Send for NonZeroU16
impl Send for NonZeroU32
impl Send for NonZeroU64
impl Send for NonZeroU128
impl Send for NonZeroUsize
impl Send for ParseFloatError
impl Send for ParseIntError
impl Send for TryFromIntError
impl Send for ParseBoolError
impl Send for PhantomPinned
impl<'a> Send for CharSearcher<'a>
impl<'a> Send for CharIndices<'a>
impl<'a> Send for EncodeUtf16<'a>
impl<'a> Send for ockam_core::lib::str::EscapeDebug<'a>
impl<'a> Send for ockam_core::lib::str::EscapeDefault<'a>
impl<'a> Send for ockam_core::lib::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, 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 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, 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, 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<'r> Send for RouteBuilder<'r>
impl<F> Send for RepeatWith<F> where
F: Send,
impl<I, U, F> Send for FlatMap<I, U, F> where
F: Send,
I: Send,
<U as IntoIterator>::IntoIter: Send,
impl<M> Send for ResultMessage<M>
impl<T> Send for Discriminant<T>
impl<T> Send for BinaryHeap<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 ManuallyDrop<T> where
T: Send,
impl<T: ?Sized> Send for PhantomData<T> where
T: Send,