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 Send for TryReserveErrorKind
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 Send for WriterPanicked
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.