1.0.0[−][src]Trait flatdata::marker::Send
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<T> Send for Sender<T> where
T: Send,
[src]
impl<T> Send for Sender<T> where
T: Send,
impl<T> Send for Mutex<T> where
T: Send + ?Sized,
[src]
impl<T> Send for Mutex<T> where
T: Send + ?Sized,
impl<T> Send for RwLock<T> where
T: Send + ?Sized,
[src]
impl<T> Send for RwLock<T> where
T: Send + ?Sized,
impl<T> Send for Receiver<T> where
T: Send,
[src]
impl<T> Send for Receiver<T> where
T: Send,
impl Send for Once
[src]
impl Send for Once
impl<'a, T> !Send for RwLockWriteGuard<'a, T> where
T: ?Sized,
[src]
impl<'a, T> !Send for RwLockWriteGuard<'a, T> where
T: ?Sized,
impl<T> Send for JoinHandle<T>
[src]
impl<T> Send for JoinHandle<T>
impl !Send for ArgsOs
[src]
impl !Send for ArgsOs
impl<'a, T> !Send for RwLockReadGuard<'a, T> where
T: ?Sized,
[src]
impl<'a, T> !Send for RwLockReadGuard<'a, T> where
T: ?Sized,
impl !Send for Args
[src]
impl !Send for Args
impl<T> Send for SyncSender<T> where
T: Send,
[src]
impl<T> Send for SyncSender<T> where
T: Send,
impl<'a, T> !Send for MutexGuard<'a, T> where
T: ?Sized,
[src]
impl<'a, T> !Send for MutexGuard<'a, T> where
T: ?Sized,
impl !Send for Select
[src]
impl !Send for Select
impl<'_, T> Send for IterMut<'_, T> where
T: Send,
[src]
impl<'_, T> Send for IterMut<'_, T> where
T: Send,
impl<T> !Send for *const T where
T: ?Sized,
[src]
impl<T> !Send for *const T where
T: ?Sized,
impl<T> Send for AtomicPtr<T>
[src]
impl<T> Send for AtomicPtr<T>
impl<'_, T> Send for &'_ T where
T: Sync + ?Sized,
[src]
impl<'_, T> Send for &'_ T where
T: Sync + ?Sized,
impl<T> !Send for *mut T where
T: ?Sized,
[src]
impl<T> !Send for *mut T where
T: ?Sized,
impl<T> Send for RefCell<T> where
T: Send + ?Sized,
[src]
impl<T> Send for RefCell<T> where
T: Send + ?Sized,
impl Send for Waker
[src]
impl Send for Waker
impl<T> !Send for NonNull<T> where
T: ?Sized,
[src]
impl<T> !Send for NonNull<T> where
T: ?Sized,
NonNull
pointers are not Send
because the data they reference may be aliased.
impl !Send for LocalWaker
[src]
impl !Send for LocalWaker
impl<'_, T> Send for Iter<'_, T> where
T: Sync,
[src]
impl<'_, T> Send for Iter<'_, T> where
T: Sync,
impl<'_, T> Send for &'_ mut T where
T: Send + ?Sized,
[src]
impl<'_, T> Send for &'_ mut T where
T: Send + ?Sized,
impl<T> Send for Cell<T> where
T: Send + ?Sized,
[src]
impl<T> Send for Cell<T> where
T: Send + ?Sized,
impl<T> Send for LinkedList<T> where
T: Send,
[src]
impl<T> Send for LinkedList<T> where
T: Send,
impl<T> Send for Weak<T> where
T: Send + Sync + ?Sized,
[src]
impl<T> Send for Weak<T> where
T: Send + Sync + ?Sized,
impl<'a, T> Send for IterMut<'a, T> where
T: Send,
[src]
impl<'a, T> Send for IterMut<'a, T> where
T: Send,
impl<T> !Send for Weak<T> where
T: ?Sized,
[src]
impl<T> !Send for Weak<T> where
T: ?Sized,
impl<'a> Send for Drain<'a>
[src]
impl<'a> Send for Drain<'a>
impl<'a, T> Send for Drain<'a, T> where
T: Send,
[src]
impl<'a, T> Send for Drain<'a, T> where
T: Send,
impl<T> !Send for Rc<T> where
T: ?Sized,
[src]
impl<T> !Send for Rc<T> where
T: ?Sized,
impl<'a, T> Send for Iter<'a, T> where
T: Sync,
[src]
impl<'a, T> Send for Iter<'a, T> where
T: Sync,
impl<T> Send for IntoIter<T> where
T: Send,
[src]
impl<T> Send for IntoIter<T> where
T: Send,
impl<'a, T> Send for Drain<'a, T> where
T: Send,
[src]
impl<'a, T> Send for Drain<'a, T> where
T: Send,
impl<T> Send for Arc<T> where
T: Send + Sync + ?Sized,
[src]
impl<T> Send for Arc<T> where
T: Send + Sync + ?Sized,
impl Send for isize
impl Send for isize
impl Send for i8
impl Send for i8
impl Send for i16
impl Send for i16
impl Send for i32
impl Send for i32
impl Send for i64
impl Send for i64
impl Send for i128
impl Send for i128
impl Send for usize
impl Send for usize
impl Send for u8
impl Send for u8
impl Send for u16
impl Send for u16
impl Send for u32
impl Send for u32
impl Send for u64
impl Send for u64
impl Send for u128
impl Send for u128
impl Send for f32
impl Send for f32
impl Send for f64
impl Send for f64
impl Send for f32
impl Send for f32
impl Send for f64
impl Send for f64
impl Send for char
impl Send for char
impl Send for str
impl Send for str
impl Send for str
Loading content...
impl Send for str
Implementors
Loading content...Auto implementors
impl !Send for MemoryDescriptor
impl !Send for MemoryDescriptor
impl !Send for MemoryResourceStorage
impl !Send for MemoryResourceStorage
impl Send for ResourceStorageError
impl Send for ResourceStorageError
impl Send for PhantomPinned
impl Send for PhantomPinned
impl Send for FileResourceStorage
impl Send for FileResourceStorage
impl<'a, Idx, Ts> !Send for MultiVector<'a, Idx, Ts>
impl<'a, Idx, Ts> !Send for MultiVector<'a, Idx, Ts>
impl<'a, Idx, Ts> Send for MultiArrayView<'a, Idx, Ts> where
Idx: Send,
Ts: Send,
impl<'a, Idx, Ts> Send for MultiArrayView<'a, Idx, Ts> where
Idx: Send,
Ts: Send,
impl<'a, T> !Send for ExternalVector<'a, T>
impl<'a, T> !Send for ExternalVector<'a, T>
impl<'a, T> Send for ArrayView<'a, T> where
T: Send,
impl<'a, T> Send for ArrayView<'a, T> where
T: Send,
impl<T> Send for StructBuf<T> where
T: Send,
impl<T> Send for StructBuf<T> where
T: Send,
impl<T> Send for Vector<T> where
T: Send,
impl<T> Send for Vector<T> where
T: Send,
impl<T: ?Sized> Send for PhantomData<T> where
T: Send,
impl<T: ?Sized> Send for PhantomData<T> where
T: Send,