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 and the Sync
trait for more details.
Implementors§
impl !Send for rustmax::proc_macro::TokenTree
impl !Send for ExpandError
impl !Send for rustmax::proc_macro::Group
impl !Send for rustmax::proc_macro::LexError
impl !Send for rustmax::proc_macro::Punct
impl !Send for rustmax::proc_macro::Span
impl !Send for rustmax::proc_macro::TokenStream
impl !Send for Args
impl !Send for ArgsOs
impl !Send for Arguments<'_>
impl !Send for LocalWaker
impl Send for atomic_waker::AtomicWaker
impl Send for libloading::os::unix::Library
impl Send for libloading::safe::Library
impl Send for Asn1BitString
impl Send for Asn1BitStringRef
impl Send for Asn1Enumerated
impl Send for Asn1EnumeratedRef
impl Send for Asn1GeneralizedTime
impl Send for Asn1GeneralizedTimeRef
impl Send for Asn1Integer
impl Send for Asn1IntegerRef
impl Send for Asn1Object
impl Send for Asn1ObjectRef
impl Send for Asn1OctetString
impl Send for Asn1OctetStringRef
impl Send for Asn1String
impl Send for Asn1StringRef
impl Send for Asn1Time
impl Send for Asn1TimeRef
impl Send for BigNum
impl Send for BigNumContext
impl Send for BigNumContextRef
impl Send for BigNumRef
impl Send for openssl::cipher::Cipher
impl Send for CipherRef
impl Send for CipherCtx
impl Send for CipherCtxRef
impl Send for CmsContentInfo
impl Send for CmsContentInfoRef
impl Send for Conf
impl Send for ConfRef
impl Send for Deriver<'_>
impl Send for DsaSig
impl Send for DsaSigRef
impl Send for EcGroup
impl Send for EcGroupRef
impl Send for EcPoint
impl Send for EcPointRef
impl Send for EcdsaSig
impl Send for EcdsaSigRef
impl Send for Decrypter<'_>
impl Send for Encrypter<'_>
impl Send for openssl::error::Error
impl Send for openssl::hash::Hasher
impl Send for MessageDigest
impl Send for LibCtx
impl Send for LibCtxRef
impl Send for Md
impl Send for MdRef
impl Send for MdCtx
impl Send for MdCtxRef
impl Send for OcspBasicResponse
impl Send for OcspBasicResponseRef
impl Send for OcspCertId
impl Send for OcspCertIdRef
impl Send for OcspOneReq
impl Send for OcspOneReqRef
impl Send for OcspRequest
impl Send for OcspRequestRef
impl Send for OcspResponse
impl Send for OcspResponseRef
impl Send for Pkcs7
impl Send for Pkcs7Ref
impl Send for Pkcs7Signed
impl Send for Pkcs7SignedRef
impl Send for Pkcs7SignerInfo
impl Send for Pkcs7SignerInfoRef
impl Send for Pkcs12
impl Send for Pkcs12Ref
impl Send for Provider
impl Send for ProviderRef
impl Send for Signer<'_>
impl Send for Verifier<'_>
impl Send for SrtpProtectionProfile
impl Send for SrtpProtectionProfileRef
impl Send for Ssl
impl Send for SslContext
impl Send for SslContextRef
impl Send for SslMethod
impl Send for SslRef
impl Send for SslSession
impl Send for SslSessionRef
impl Send for OpensslString
impl Send for OpensslStringRef
impl Send for openssl::symm::Cipher
impl Send for X509Store
impl Send for X509StoreBuilder
impl Send for X509StoreBuilderRef
impl Send for X509StoreRef
impl Send for AccessDescription
impl Send for AccessDescriptionRef
impl Send for DistPoint
impl Send for DistPointName
impl Send for DistPointNameRef
impl Send for DistPointRef
impl Send for GeneralName
impl Send for GeneralNameRef
impl Send for X509
impl Send for X509Algorithm
impl Send for X509AlgorithmRef
impl Send for X509Crl
impl Send for X509CrlRef
impl Send for X509Extension
impl Send for X509ExtensionRef
impl Send for X509Name
impl Send for X509NameEntry
impl Send for X509NameEntryRef
impl Send for X509NameRef
impl Send for X509Object
impl Send for X509ObjectRef
impl Send for X509Ref
impl Send for X509Req
impl Send for X509ReqRef
impl Send for X509Revoked
impl Send for X509RevokedRef
impl Send for X509StoreContext
impl Send for X509StoreContextRef
impl Send for X509VerifyParam
impl Send for X509VerifyParamRef
impl Send for BytesMut
impl Send for rustmax::core::ffi::c_str::Bytes<'_>
impl Send for rustmax::crossbeam::channel::Select<'_>
impl Send for Collector
impl Send for Parker
impl Send for Unparker
impl Send for rustmax::futures::task::AtomicWaker
impl Send for rustmax::hyper::body::Bytes
impl Send for rustmax::tokio::task::AbortHandle
impl Send for rustmax::std::string::Drain<'_>
impl Send for Waker
impl<'a> Send for Notified<'a>
impl<'a> Send for IoSlice<'a>
impl<'a> Send for IoSliceMut<'a>
impl<'a, R, T> Send for lock_api::mutex::MappedMutexGuard<'a, R, T>
impl<'a, R, T> Send for lock_api::rwlock::MappedRwLockReadGuard<'a, R, T>
impl<'a, R, T> Send for lock_api::rwlock::MappedRwLockWriteGuard<'a, R, T>
impl<'a, T> Send for smallvec::Drain<'a, T>
impl<'a, T> Send for ZeroVec<'a, T>
impl<'a, T> Send for rustmax::reqwest::header::Drain<'a, T>where
T: Send,
impl<'a, T> Send for rustmax::reqwest::header::Iter<'a, T>where
T: Sync,
impl<'a, T> Send for rustmax::reqwest::header::IterMut<'a, T>where
T: Send,
impl<'a, T> Send for ValueDrain<'a, T>where
T: Send,
impl<'a, T> Send for ValueIterMut<'a, T>where
T: Send,
impl<'a, T> Send for rustmax::tokio::sync::MappedMutexGuard<'a, T>
impl<'a, T, const CAP: usize> Send for arrayvec::arrayvec::Drain<'a, T, CAP>where
T: Send,
impl<A> Send for SmallVec<A>
impl<C> Send for CartableOptionPointer<C>where
C: Sync + CartablePointerLike,
impl<Dyn> Send for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<Fut> Send for rustmax::futures::prelude::stream::futures_unordered::IntoIter<Fut>
impl<Fut> Send for IterPinMut<'_, Fut>where
Fut: Send,
impl<Fut> Send for IterPinRef<'_, Fut>where
Fut: Send,
impl<Fut> Send for FuturesUnordered<Fut>where
Fut: Send,
impl<K, V> Send for hashbrown::map::IterMut<'_, K, V>
impl<K, V, S, A> Send for hashbrown::map::OccupiedEntry<'_, K, V, S, A>
impl<R, G> Send for RawReentrantMutex<R, G>
impl<R, G, T> Send for ReentrantMutex<R, G, T>
impl<R, T> Send for lock_api::mutex::Mutex<R, T>
impl<R, T> Send for lock_api::rwlock::RwLock<R, T>
impl<S> Send for AllowStd<S>where
S: Send,
impl<T> !Send for *const Twhere
T: ?Sized,
impl<T> !Send for *mut Twhere
T: ?Sized,
impl<T> !Send for NonNull<T>where
T: ?Sized,
NonNull
pointers are not Send
because the data they reference may be aliased.
impl<T> !Send for rustmax::std::sync::MappedMutexGuard<'_, T>where
T: ?Sized,
impl<T> !Send for rustmax::std::sync::MappedRwLockReadGuard<'_, T>where
T: ?Sized,
impl<T> !Send for rustmax::std::sync::MappedRwLockWriteGuard<'_, T>where
T: ?Sized,
impl<T> !Send for rustmax::std::sync::MutexGuard<'_, T>where
T: ?Sized,
impl<T> !Send for ReentrantLockGuard<'_, T>where
T: ?Sized,
impl<T> !Send for rustmax::std::sync::RwLockReadGuard<'_, T>where
T: ?Sized,
impl<T> !Send for rustmax::std::sync::RwLockWriteGuard<'_, T>where
T: ?Sized,
impl<T> Send for &T
impl<T> Send for libloading::os::unix::Symbol<T>where
T: Send,
impl<T> Send for libloading::safe::Symbol<'_, T>where
T: Send,
impl<T> Send for Dh<T>
impl<T> Send for DhRef<T>
impl<T> Send for Dsa<T>
impl<T> Send for DsaRef<T>
impl<T> Send for EcKey<T>
impl<T> Send for EcKeyRef<T>
impl<T> Send for PKey<T>
impl<T> Send for PKeyRef<T>
impl<T> Send for PkeyCtx<T>
impl<T> Send for PkeyCtxRef<T>
impl<T> Send for Rsa<T>
impl<T> Send for RsaRef<T>
impl<T> Send for openssl::stack::Stack<T>
impl<T> Send for StackRef<T>
impl<T> Send for X509Lookup<T>
impl<T> Send for X509LookupMethod<T>
impl<T> Send for X509LookupMethodRef<T>
impl<T> Send for X509LookupRef<T>
impl<T> Send for TryLock<T>where
T: Send,
impl<T> Send for AtomicCell<T>where
T: Send,
impl<T> Send for rustmax::crossbeam::channel::Receiver<T>where
T: Send,
impl<T> Send for rustmax::crossbeam::channel::Sender<T>where
T: Send,
impl<T> Send for Injector<T>where
T: Send,
impl<T> Send for Stealer<T>where
T: Send,
impl<T> Send for Worker<T>where
T: Send,
impl<T> Send for Atomic<T>
impl<T> Send for ArrayQueue<T>where
T: Send,
impl<T> Send for SegQueue<T>where
T: Send,
impl<T> Send for ShardedLock<T>
impl<T> Send for rustmax::crossbeam::thread::ScopedJoinHandle<'_, T>
impl<T> Send for CachePadded<T>where
T: Send,
impl<T> Send for UniquePtr<T>where
T: Send + UniquePtrTarget,
impl<T> Send for WeakPtr<T>
impl<T> Send for rustmax::futures::lock::Mutex<T>
impl<T> Send for rustmax::futures::lock::MutexGuard<'_, T>
impl<T> Send for MutexLockFuture<'_, T>
impl<T> Send for rustmax::futures::lock::OwnedMutexGuard<T>
impl<T> Send for OwnedMutexLockFuture<T>
impl<T> Send for FutureObj<'_, T>
impl<T> Send for rustmax::tokio::io::ReadHalf<T>where
T: Send,
impl<T> Send for rustmax::tokio::io::WriteHalf<T>where
T: Send,
impl<T> Send for rustmax::tokio::sync::broadcast::Receiver<T>where
T: Send,
impl<T> Send for rustmax::tokio::sync::broadcast::Sender<T>where
T: Send,
impl<T> Send for rustmax::tokio::sync::Mutex<T>
impl<T> Send for rustmax::tokio::sync::OnceCell<T>where
T: Send,
impl<T> Send for OwnedRwLockWriteGuard<T>
impl<T> Send for rustmax::tokio::sync::RwLock<T>
impl<T> Send for RwLockMappedWriteGuard<'_, T>
impl<T> Send for rustmax::tokio::sync::RwLockReadGuard<'_, T>
impl<T> Send for rustmax::tokio::sync::RwLockWriteGuard<'_, T>
impl<T> Send for rustmax::tokio::task::JoinHandle<T>where
T: Send,
impl<T> Send for ThinBox<T>
ThinBox<T>
is Send
if T
is Send
because the data is owned.