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.
Implementors§
impl !Send for Args
impl !Send for ArgsOs
impl Send for druid::piet::Device
impl Send for FontOptions
impl Send for ImageSurfaceDataOwned
impl Send for Binding
impl Send for druid::piet::cairo::glib::Bytes
impl Send for Checksum
impl Send for Closure
impl Send for Date
impl Send for DateTime
impl Send for EnumClass
impl Send for EnumValue
impl Send for druid::piet::cairo::glib::Error
impl Send for FlagsClass
impl Send for FlagsValue
impl Send for druid::piet::cairo::glib::GString
impl Send for GStringBuilder
impl Send for IConv
impl Send for MainContext
impl Send for MainLoop
impl Send for ParamSpec
impl Send for ParamSpecBoolean
impl Send for ParamSpecBoxed
impl Send for ParamSpecChar
impl Send for ParamSpecDouble
impl Send for ParamSpecEnum
impl Send for ParamSpecFlags
impl Send for ParamSpecFloat
impl Send for ParamSpecGType
impl Send for ParamSpecInt64
impl Send for ParamSpecInt
impl Send for ParamSpecLong
impl Send for ParamSpecObject
impl Send for ParamSpecOverride
impl Send for ParamSpecParam
impl Send for ParamSpecPointer
impl Send for ParamSpecString
impl Send for ParamSpecUChar
impl Send for ParamSpecUInt64
impl Send for ParamSpecUInt
impl Send for ParamSpecULong
impl Send for ParamSpecUnichar
impl Send for ParamSpecValueArray
impl Send for ParamSpecVariant
impl Send for Pid
impl Send for SendValue
impl Send for druid::piet::cairo::glib::Source
impl Send for ThreadPool
impl Send for TimeZone
impl Send for Variant
impl Send for VariantType
impl Send for SignalQuery
impl Send for TypeData
impl Send for Waker
impl Send for alloc::string::Drain<'_>
impl Send for AtomicWaker
impl Send for AttrColor
impl Send for AttrFloat
impl Send for AttrFontDesc
impl Send for AttrFontFeatures
impl Send for AttrInt
impl Send for AttrLanguage
impl Send for AttrShape
impl Send for AttrSize
impl Send for AttrString
impl Send for Attribute
impl Send for Cancellable
impl Send for DBusConnection
impl Send for DBusProxy
impl Send for File
impl Send for FontDescription
impl Send for GlyphString
impl Send for InetAddress
impl Send for InetAddressMask
impl Send for InetSocketAddress
impl Send for Language
impl Send for NetworkAddress
impl Send for PixbufFormat
impl Send for ProxyAddress
impl Send for SocketAddress
impl Send for TabArray
impl Send for UnixMountEntry
impl Send for UnixMountPoint
impl Send for UnixSocketAddress
impl Send for Vfs
impl<'a> Send for ImageSurfaceData<'a>
impl<'a> Send for IoSlice<'a>
impl<'a> Send for IoSliceMut<'a>
impl<'a, T> Send for ClassRef<'a, T>where T: IsClass,
impl<'a, T> Send for InterfaceRef<'a, T>where T: IsInterface,
impl<'a, T> Send for BorrowedObject<'a, T>where T: Send + Sync,
impl<'a, T> Send for Drain<'a, T>where T: Send + Array,
impl<'a, T, const CAP: usize> Send for arrayvec::arrayvec::Drain<'a, T, CAP>where T: Send,
impl<A> Send for SmallVec<A>where A: Array, <A as Array>::Item: Send,
impl<Dyn> Send for DynMetadata<Dyn>where Dyn: ?Sized,
impl<Fut> Send for FuturesUnordered<Fut>where Fut: Send,
impl<Fut> Send for IntoIter<Fut>where Fut: Send + Unpin,
impl<Fut> Send for IterPinMut<'_, Fut>where Fut: Send,
impl<Fut> Send for IterPinRef<'_, Fut>where Fut: 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 Rc<T>where T: ?Sized,
impl<T> !Send for alloc::rc::Weak<T>where T: ?Sized,
impl<T> !Send for std::sync::mutex::MutexGuard<'_, T>where T: ?Sized,
impl<T> !Send for RwLockReadGuard<'_, T>where T: ?Sized,
impl<T> !Send for RwLockWriteGuard<'_, T>where T: ?Sized,
impl<T> Send for &Twhere T: Sync + ?Sized,
impl<T> Send for Class<T>where T: IsClass,
impl<T> Send for Interface<T>where T: IsInterface,
impl<T> Send for druid::piet::cairo::glib::List<T>where T: Send + GlibPtrDefault + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType> + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType>,
impl<T> Send for PtrSlice<T>where T: Send + GlibPtrDefault + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType> + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType>,
impl<T> Send for druid::piet::cairo::glib::Receiver<T>where T: Send,
impl<T> Send for druid::piet::cairo::glib::SList<T>where T: Send + GlibPtrDefault + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType> + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType>,
impl<T> Send for SendWeakRef<T>where T: ObjectType,
impl<T> Send for druid::piet::cairo::glib::Sender<T>where T: Send,
impl<T> Send for Slice<T>where T: Send + 'static,
impl<T> Send for druid::piet::cairo::glib::SyncSender<T>where T: Send,
impl<T> Send for WeakRef<T>where T: ObjectType + Send + Sync,
impl<T> Send for ObjectImplRef<T>where T: ObjectSubclass + Send + Sync,
impl<T> Send for ObjectImplWeakRef<T>where T: ObjectSubclass + Send + Sync,
impl<T> Send for ThreadGuard<T>
impl<T> Send for Cell<T>where T: Send + ?Sized,
impl<T> Send for RefCell<T>where T: Send + ?Sized,
impl<T> Send for ChunksExactMut<'_, T>where T: Send,
impl<T> Send for druid::piet::cairo::glib::bitflags::_core::slice::ChunksMut<'_, T>where T: Send,
impl<T> Send for druid::piet::cairo::glib::bitflags::_core::slice::Iter<'_, T>where T: Sync,
impl<T> Send for druid::piet::cairo::glib::bitflags::_core::slice::IterMut<'_, T>where T: Send,
impl<T> Send for RChunksExactMut<'_, T>where T: Send,
impl<T> Send for RChunksMut<'_, T>where T: Send,
impl<T> Send for AtomicPtr<T>
impl<T> Send for ThinBox<T>where T: Send + ?Sized,
ThinBox<T>
is Send
if T
is Send
because the data is owned.