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 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 AccessErrorimpl Send for EscapeDefaultimpl Send for BacktraceStatusimpl Send for BacktraceFrameimpl<'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 RandomStateimpl Send for DefaultHasherimpl<'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 TryReserveErrorimpl<'a> Send for SplitPaths<'a>impl Send for JoinPathsErrorimpl Send for FromBytesWithNulErrorimpl Send for FromVecWithNulErrorimpl Send for IntoStringErrorimpl<'f> !Send for VaListImpl<'f>impl Send for OpenOptionsimpl Send for Permissionsimpl Send for DirBuilderimpl Send for Initializerimpl<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 SocketAddrimpl<'a> Send for SocketAncillary<'a>impl Send for UnixStreamimpl<'a> Send for ScmCredentials<'a>impl<'a> Send for AncillaryData<'a>impl Send for UnixDatagramimpl Send for UnixListenerimpl Send for SocketCredimpl Send for AncillaryErrorimpl<T> Send for AssertUnwindSafe<T> where
T: Send, impl<'a> Send for PrefixComponent<'a>impl<'a> Send for Components<'a>impl Send for StripPrefixErrorimpl Send for ChildStdinimpl Send for ChildStdoutimpl Send for ChildStderrimpl<'a> Send for CommandArgs<'a>impl Send for ExitStatusimpl Send for ExitStatusErrorimpl<'a> Send for CommandEnvs<'a>impl Send for TryRecvErrorimpl Send for RecvTimeoutErrorimpl<T> Send for TrySendError<T> where
T: Send, impl Send for AtomicBoolimpl Send for AtomicIsizeimpl Send for AtomicUsizeimpl Send for BarrierWaitResultimpl Send for WaitTimeoutResultimpl<T> Send for PoisonError<T> where
T: Send, impl<T> Send for TryLockError<T> where
T: Send, impl Send for SystemTimeimpl Send for SystemTimeErrorimpl Send for RawWakerVTableimpl Send for AllocErrorimpl Send for LayoutErrorimpl Send for Argumentimpl Send for FormatSpecimpl Send for Alignmentimpl Send for Countimpl Send for FromUtf8Errorimpl Send for FromUtf16Errorimpl<'a, T, F, A> Send for DrainFilter<'a, T, F, A> where
A: Send,
F: Send,
T: Send, impl Send for CpuidResultimpl Send for TryFromSliceErrorimpl Send for BorrowErrorimpl Send for BorrowMutErrorimpl<T: ?Sized> Send for UnsafeCell<T> where
T: Send, impl Send for EscapeUnicodeimpl Send for EscapeDefaultimpl Send for EscapeDebugimpl Send for ToLowercaseimpl Send for ToUppercaseimpl Send for CharTryFromErrorimpl Send for ParseCharErrorimpl<I> Send for DecodeUtf16<I> where
I: Send, impl Send for DecodeUtf16Errorimpl<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, impl !Send for TraitObjectNonNull 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 RouteErrorimpl Send for RouterMessageimpl Send for Infallibleimpl Send for Ipv6MulticastScopeimpl Send for ockam_core::lib::net::SocketAddrimpl Send for FpCategoryimpl Send for IntErrorKindimpl Send for SearchStepimpl Send for AddressSetimpl Send for LocalMessageimpl Send for ProtocolIdimpl Send for TransportMessageimpl 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 ParseBoolErrorimpl Send for PhantomPinnedimpl<'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,