Trait wasmer_types::lib::std::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 Argument
impl Send for FormatSpec
impl Send for Alignment
impl Send for Count
impl<'a> Send for IoSlice<'a>
[src]
impl<T> Send for JoinHandle<T>
[src]
impl !Send for ArgsOs
[src]
impl !Send for Args
[src]
impl<T> Send for SyncOnceCell<T> where
T: Send,
[src]
T: Send,
impl<'a> Send for IoSliceMut<'a>
[src]
impl<T> !Send for *mut T where
T: ?Sized,
[src]
T: ?Sized,
impl Send for Waker
[src]
impl<'_, T> Send for &'_ T where
T: Sync + ?Sized,
[src]
T: Sync + ?Sized,
impl<T> !Send for *const T where
T: ?Sized,
[src]
T: ?Sized,
impl<'_, T> Send for &'_ mut T where
T: Send + ?Sized,
[src]
T: Send + ?Sized,
impl<'_, T> Send for IterMut<'_, T> where
T: Send,
[src]
T: Send,
impl<T> Send for LinkedList<T> where
T: Send,
[src]
T: Send,
impl<'_, T> Send for IterMut<'_, T> where
T: Send,
[src]
T: Send,
impl<'_, T> Send for Drain<'_, T> where
T: Send,
[src]
T: Send,
impl<'_, T> Send for Cursor<'_, T> where
T: Sync,
[src]
T: Sync,
impl<'_, T> Send for CursorMut<'_, T> where
T: Send,
[src]
T: Send,
impl<'_, T> Send for Iter<'_, T> where
T: Sync,
[src]
T: Sync,
impl<'_, K, V, S> Send for RawOccupiedEntryMut<'_, K, V, S> where
K: Send,
V: Send,
S: Sync,
K: Send,
V: Send,
S: Sync,
impl<'_, K, V> Send for IterMut<'_, K, V> where
K: Send,
V: Send,
K: Send,
V: Send,
impl<'_, K, V, S> Send for OccupiedEntry<'_, K, V, S> where
K: Send,
V: Send,
S: Send,
K: Send,
V: Send,
S: Send,
impl<'_, T> Send for RawDrain<'_, T> where
T: Send,
T: Send,
impl<T> Send for RawIntoIter<T> where
T: Send,
T: Send,
impl<T> Send for RawTable<T> where
T: Send,
T: Send,
impl<T> Send for Bucket<T>
impl Send for AlignedVec
[src]
impl<Dyn> Send for DynMetadata<Dyn> where
Dyn: ?Sized,
Dyn: ?Sized,
impl Send for isize
impl<T> Send for [T] where
T: Send,
T: Send,
impl Send for [u8]
impl Send for char
impl Send for u128
impl Send for u16
impl Send for i128
impl Send for i16
impl Send for str
impl Send for f64
impl Send for u64
impl Send for u8
impl Send for i64
impl Send for i8
impl<T, const N: usize> Send for [T; N] where
T: Send,
T: Send,
impl Send for bool
impl Send for f32
impl Send for u32
impl Send for usize
impl Send for i32
Implementors
impl Send for wasmer_types::lib::std::sync::Once
[src]
impl<'_> Send for wasmer_types::lib::std::string::Drain<'_>
1.6.0[src]
impl<'_, T> !Send for MutexGuard<'_, T> where
T: ?Sized,
[src]
T: ?Sized,
impl<'_, T> !Send for RwLockReadGuard<'_, T> where
T: ?Sized,
[src]
T: ?Sized,
impl<'_, T> !Send for RwLockWriteGuard<'_, T> where
T: ?Sized,
[src]
T: ?Sized,
impl<'_, T> Send for wasmer_types::lib::std::slice::Iter<'_, T> where
T: Sync,
[src]
T: Sync,
impl<'_, T> Send for wasmer_types::lib::std::slice::IterMut<'_, T> where
T: Send,
[src]
T: Send,
impl<'_, T, A> Send for wasmer_types::lib::std::vec::Drain<'_, T, A> where
T: Send,
A: Send + Allocator,
1.6.0[src]
T: Send,
A: Send + Allocator,
impl<Dyn> Send for wasmer_types::lib::std::ptr::DynMetadata<Dyn> where
Dyn: ?Sized,
[src]
Dyn: ?Sized,
impl<T> !Send for NonNull<T> where
T: ?Sized,
1.25.0[src]
T: ?Sized,
NonNull
pointers are not Send
because the data they reference may be aliased.
impl<T> !Send for Rc<T> where
T: ?Sized,
[src]
T: ?Sized,
impl<T> !Send for wasmer_types::lib::std::rc::Weak<T> where
T: ?Sized,
1.4.0[src]
T: ?Sized,
impl<T> Send for Cell<T> where
T: Send + ?Sized,
[src]
T: Send + ?Sized,
impl<T> Send for RefCell<T> where
T: Send + ?Sized,
[src]
T: Send + ?Sized,
impl<T> Send for Empty<T>
1.42.0[src]
impl<T> Send for AtomicPtr<T>
[src]
impl<T> Send for Receiver<T> where
T: Send,
[src]
T: Send,
impl<T> Send for Sender<T> where
T: Send,
[src]
T: Send,
impl<T> Send for SyncSender<T> where
T: Send,
[src]
T: Send,
impl<T> Send for Arc<T> where
T: Sync + Send + ?Sized,
[src]
T: Sync + Send + ?Sized,
impl<T> Send for Mutex<T> where
T: Send + ?Sized,
[src]
T: Send + ?Sized,
impl<T> Send for RwLock<T> where
T: Send + ?Sized,
[src]
T: Send + ?Sized,
impl<T> Send for wasmer_types::lib::std::sync::Weak<T> where
T: Sync + Send + ?Sized,
1.4.0[src]
T: Sync + Send + ?Sized,
impl<T, A> Send for wasmer_types::lib::std::vec::IntoIter<T, A> where
T: Send,
A: Allocator + Send,
[src]
T: Send,
A: Allocator + Send,
Auto implementors
impl !Send for ExternRef
impl !Send for VMExternRef
impl Send for ExportIndex
impl Send for ExternType
impl Send for GlobalInit
impl Send for ImportIndex
impl Send for Mutability
impl Send for Type
impl Send for wasmer_types::lib::std::cmp::Ordering
impl Send for Infallible
impl Send for wasmer_types::lib::std::fmt::Alignment
impl Send for wasmer_types::lib::std::sync::atomic::Ordering
impl Send for RecvTimeoutError
impl Send for TryRecvError
impl Send for Atomically
impl Send for Bytes
impl Send for CustomSectionIndex
impl Send for DataIndex
impl Send for DataInitializerLocation
impl Send for ElemIndex
impl Send for Features
impl Send for FunctionIndex
impl Send for FunctionType
impl Send for GlobalIndex
impl Send for GlobalType
impl Send for LocalFunctionIndex
impl Send for LocalGlobalIndex
impl Send for LocalMemoryIndex
impl Send for LocalTableIndex
impl Send for MemoryIndex
impl Send for MemoryType
impl Send for OwnedDataInitializer
impl Send for PageCountOutOfRange
impl Send for Pages
impl Send for SignatureIndex
impl Send for TableIndex
impl Send for TableInitializer
impl Send for TableType
impl Send for V128
impl Send for TypeId
impl Send for BorrowError
impl Send for BorrowMutError
impl Send for Error
impl Send for SipHasher
impl Send for RangeFull
impl Send for FromUtf8Error
impl Send for FromUtf16Error
impl Send for String
impl Send for AtomicBool
impl Send for AtomicI8
impl Send for AtomicI16
impl Send for AtomicI32
impl Send for AtomicI64
impl Send for AtomicIsize
impl Send for AtomicU8
impl Send for AtomicU16
impl Send for AtomicU32
impl Send for AtomicU64
impl Send for AtomicUsize
impl Send for RecvError
impl Send for Barrier
impl Send for BarrierWaitResult
impl Send for Condvar
impl Send for OnceState
impl Send for WaitTimeoutResult
impl Send for PhantomPinned
impl<'a> !Send for Arguments<'a>
impl<'a> !Send for Formatter<'a>
impl<'a, 'b> !Send for DebugList<'a, 'b>
impl<'a, 'b> !Send for DebugMap<'a, 'b>
impl<'a, 'b> !Send for DebugSet<'a, 'b>
impl<'a, 'b> !Send for DebugStruct<'a, 'b>
impl<'a, 'b> !Send for DebugTuple<'a, 'b>
impl<'a, B: ?Sized> Send for Cow<'a, B> where
B: Sync,
<B as ToOwned>::Owned: Send,
B: Sync,
<B as ToOwned>::Owned: Send,
impl<'a, I, A> Send for Splice<'a, I, A> where
A: Send,
I: Send,
<I as Iterator>::Item: Send,
A: Send,
I: Send,
<I as Iterator>::Item: Send,
impl<'a, K, V> Send for wasmer_types::entity::Iter<'a, K, V> where
K: Send,
V: Sync,
K: Send,
V: Sync,
impl<'a, K, V> Send for wasmer_types::entity::IterMut<'a, K, V> where
K: Send,
V: Send,
K: Send,
V: Send,
impl<'a, T> !Send for wasmer_types::lib::std::sync::mpsc::Iter<'a, T>
impl<'a, T> !Send for TryIter<'a, T>
impl<'a, T> Send for Chunks<'a, T> where
T: Sync,
T: Sync,
impl<'a, T> Send for ChunksExact<'a, T> where
T: Sync,
T: Sync,
impl<'a, T> Send for ChunksExactMut<'a, T> where
T: Send,
T: Send,
impl<'a, T> Send for ChunksMut<'a, T> where
T: Send,
T: Send,
impl<'a, T> Send for RChunks<'a, T> where
T: Sync,
T: Sync,
impl<'a, T> Send for RChunksExact<'a, T> where
T: Sync,
T: Sync,
impl<'a, T> Send for RChunksExactMut<'a, T> where
T: Send,
T: Send,
impl<'a, T> Send for RChunksMut<'a, T> where
T: Send,
T: Send,
impl<'a, T> Send for Windows<'a, T> where
T: Sync,
T: Sync,
impl<'a, T, A = NonAtomically> !Send for MemoryView<'a, T, A>
impl<'a, T, F, A> Send for DrainFilter<'a, T, F, A> where
A: Send,
F: Send,
T: Send,
A: Send,
F: Send,
T: Send,
impl<'a, T, P> Send for GroupBy<'a, T, P> where
P: Send,
T: Sync,
P: Send,
T: Sync,
impl<'a, T, P> Send for GroupByMut<'a, T, P> where
P: Send,
T: Send,
P: Send,
T: Send,
impl<'a, T, P> Send for RSplit<'a, T, P> where
P: Send,
T: Sync,
P: Send,
T: Sync,
impl<'a, T, P> Send for RSplitMut<'a, T, P> where
P: Send,
T: Send,
P: Send,
T: Send,
impl<'a, T, P> Send for RSplitN<'a, T, P> where
P: Send,
T: Sync,
P: Send,
T: Sync,
impl<'a, T, P> Send for RSplitNMut<'a, T, P> where
P: Send,
T: Send,
P: Send,
T: Send,
impl<'a, T, P> Send for Split<'a, T, P> where
P: Send,
T: Sync,
P: Send,
T: Sync,
impl<'a, T, P> Send for SplitMut<'a, T, P> where
P: Send,
T: Send,
P: Send,
T: Send,
impl<'a, T, P> Send for SplitN<'a, T, P> where
P: Send,
T: Sync,
P: Send,
T: Sync,
impl<'a, T, P> Send for SplitNMut<'a, T, P> where
P: Send,
T: Send,
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,
T: Sync,
impl<'a, T, const N: usize> Send for ArrayChunksMut<'a, T, N> where
T: Send,
T: Send,
impl<'b, T> !Send for Ref<'b, T>
impl<'b, T> !Send for RefMut<'b, T>
impl<'data> Send for DataInitializer<'data>
impl<A> Send for Repeat<A> where
A: Send,
A: Send,
impl<A, B> Send for Chain<A, B> where
A: Send,
B: Send,
A: Send,
B: Send,
impl<A, B> Send for Zip<A, B> where
A: Send,
B: Send,
A: Send,
B: Send,
impl<B, C> Send for ControlFlow<B, C> where
B: Send,
C: Send,
B: Send,
C: Send,
impl<F> Send for FromFn<F> where
F: Send,
F: Send,
impl<F> Send for OnceWith<F> where
F: Send,
F: Send,
impl<F> Send for RepeatWith<F> where
F: Send,
F: Send,
impl<H> Send for BuildHasherDefault<H> where
H: Send,
H: Send,
impl<I> Send for Cloned<I> where
I: Send,
I: Send,
impl<I> Send for Copied<I> where
I: Send,
I: Send,
impl<I> Send for Cycle<I> where
I: Send,
I: Send,
impl<I> Send for Enumerate<I> where
I: Send,
I: Send,
impl<I> Send for Flatten<I> where
I: Send,
<<I as Iterator>::Item as IntoIterator>::IntoIter: Send,
I: Send,
<<I as Iterator>::Item as IntoIterator>::IntoIter: Send,
impl<I> Send for Fuse<I> where
I: Send,
I: Send,
impl<I> Send for Intersperse<I> where
I: Send,
<I as Iterator>::Item: Send,
I: Send,
<I as Iterator>::Item: Send,
impl<I> Send for Peekable<I> where
I: Send,
<I as Iterator>::Item: Send,
I: Send,
<I as Iterator>::Item: Send,
impl<I> Send for Skip<I> where
I: Send,
I: Send,
impl<I> Send for StepBy<I> where
I: Send,
I: Send,
impl<I> Send for Take<I> where
I: Send,
I: Send,
impl<I, F> Send for FilterMap<I, F> where
F: Send,
I: Send,
F: Send,
I: Send,
impl<I, F> Send for Inspect<I, F> where
F: Send,
I: Send,
F: Send,
I: Send,
impl<I, F> Send for Map<I, F> where
F: Send,
I: Send,
F: Send,
I: Send,
impl<I, G> Send for IntersperseWith<I, G> where
G: Send,
I: Send,
<I as Iterator>::Item: Send,
G: Send,
I: Send,
<I as Iterator>::Item: Send,
impl<I, P> Send for Filter<I, P> where
I: Send,
P: Send,
I: Send,
P: Send,
impl<I, P> Send for MapWhile<I, P> where
I: Send,
P: Send,
I: Send,
P: Send,
impl<I, P> Send for SkipWhile<I, P> where
I: Send,
P: Send,
I: Send,
P: Send,
impl<I, P> Send for TakeWhile<I, P> where
I: Send,
P: Send,
I: Send,
P: Send,
impl<I, St, F> Send for Scan<I, St, F> where
F: Send,
I: Send,
St: Send,
F: Send,
I: Send,
St: Send,
impl<I, U, F> Send for FlatMap<I, U, F> where
F: Send,
I: Send,
<U as IntoIterator>::IntoIter: Send,
F: Send,
I: Send,
<U as IntoIterator>::IntoIter: Send,
impl<Idx> Send for Range<Idx> where
Idx: Send,
Idx: Send,
impl<Idx> Send for RangeFrom<Idx> where
Idx: Send,
Idx: Send,
impl<Idx> Send for RangeInclusive<Idx> where
Idx: Send,
Idx: Send,
impl<Idx> Send for RangeTo<Idx> where
Idx: Send,
Idx: Send,
impl<Idx> Send for RangeToInclusive<Idx> where
Idx: Send,
Idx: Send,
impl<K> Send for Keys<K> where
K: Send,
K: Send,
impl<K, V> Send for BoxedSlice<K, V> where
K: Send,
V: Send,
K: Send,
V: Send,
impl<K, V> Send for PrimaryMap<K, V> where
K: Send,
V: Send,
K: Send,
V: Send,
impl<K, V> Send for SecondaryMap<K, V> where
K: Send,
V: Send,
K: Send,
V: Send,
impl<K, V> Send for ArchivableIndexMap<K, V> where
K: Send,
V: Send,
K: Send,
V: Send,
impl<T> !Send for Value<T>
impl<T> Send for Bound<T> where
T: Send,
T: Send,
impl<T> Send for TryLockError<T> where
T: Send,
T: Send,
impl<T> Send for TrySendError<T> where
T: Send,
T: Send,
impl<T> Send for PackedOption<T> where
T: Send,
T: Send,
impl<T> Send for ExportType<T> where
T: Send,
T: Send,
impl<T> Send for ImportType<T> where
T: Send,
T: Send,
impl<T> Send for Reverse<T> where
T: Send,
T: Send,
impl<T> Send for wasmer_types::lib::std::iter::Once<T> where
T: Send,
T: Send,
impl<T> Send for Rev<T> where
T: Send,
T: Send,
impl<T> Send for Discriminant<T>
impl<T> Send for wasmer_types::lib::std::sync::mpsc::IntoIter<T> where
T: Send,
T: Send,
impl<T> Send for SendError<T> where
T: Send,
T: Send,
impl<T> Send for PoisonError<T> where
T: Send,
T: Send,
impl<T> Send for MaybeUninit<T> where
T: Send,
T: Send,
impl<T, A> Send for Vec<T, A> where
A: Send,
T: Send,
A: Send,
T: Send,
impl<T, F> Send for Successors<T, F> where
F: Send,
T: Send,
F: Send,
T: Send,
impl<T: ?Sized> Send for UnsafeCell<T> where
T: Send,
T: Send,
impl<T: ?Sized> Send for ManuallyDrop<T> where
T: Send,
T: Send,
impl<T: ?Sized> Send for PhantomData<T> where
T: Send,
T: Send,
impl<T: ?Sized, A> Send for Box<T, A> where
A: Send,
T: Send,
A: Send,
T: Send,
impl<Y, R> Send for GeneratorState<Y, R> where
R: Send,
Y: Send,
R: Send,
Y: Send,