Trait frame_support::dispatch::marker::Send1.0.0[][src]

pub unsafe auto trait 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 Rcs 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<T> Send for Mutex<T> where
    T: Send + ?Sized
[src]

impl Send for Once[src]

impl<'a> Send for IoSliceMut<'a>[src]

impl<T> Send for Receiver<T> where
    T: Send
[src]

impl !Send for ArgsOs[src]

impl<T> Send for SyncOnceCell<T> where
    T: Send
[src]

impl !Send for Args[src]

impl<T> Send for Sender<T> where
    T: Send
[src]

impl<'_, T> !Send for MutexGuard<'_, T> where
    T: ?Sized
[src]

impl<'a> Send for IoSlice<'a>[src]

impl<T> Send for RwLock<T> where
    T: Send + ?Sized
[src]

impl<'_, T> !Send for RwLockWriteGuard<'_, T> where
    T: ?Sized
[src]

impl<T> Send for SyncSender<T> where
    T: Send
[src]

impl<'_, T> !Send for RwLockReadGuard<'_, T> where
    T: ?Sized
[src]

impl<T> Send for JoinHandle<T>[src]

impl<Dyn> Send for DynMetadata<Dyn> where
    Dyn: ?Sized
[src]

impl<'_, T> Send for &'_ mut T where
    T: Send + ?Sized
[src]

impl<T> Send for Cell<T> where
    T: Send + ?Sized
[src]

impl<T> !Send for *mut T where
    T: ?Sized
[src]

impl<T> Send for RefCell<T> where
    T: Send + ?Sized
[src]

impl<T> Send for AtomicPtr<T>[src]

impl<T> !Send for *const T where
    T: ?Sized
[src]

impl<T> !Send for NonNull<T> where
    T: ?Sized
[src]

NonNull pointers are not Send because the data they reference may be aliased.

impl<'_, T> Send for IterMut<'_, T> where
    T: Send
[src]

impl<'_, T> Send for Iter<'_, T> where
    T: Sync
[src]

impl<'_, T> Send for &'_ T where
    T: Sync + ?Sized
[src]

impl Send for Waker[src]

impl<T> Send for Empty<T>[src]

impl<'_, T> Send for IterMut<'_, T> where
    T: Send
[src]

impl<'_> Send for Drain<'_>[src]

impl<T> Send for Weak<T> where
    T: Send + Sync + ?Sized
[src]

impl<'_, T> Send for IterMut<'_, T> where
    T: Send
[src]

impl<T> Send for Arc<T> where
    T: Send + Sync + ?Sized
[src]

impl<T, A> Send for IntoIter<T, A> where
    T: Send,
    A: Send + Allocator
[src]

impl<'_, T, A> Send for Drain<'_, T, A> where
    T: Send,
    A: Send + Allocator
[src]

impl<'_, T> Send for Cursor<'_, T> where
    T: Sync
[src]

impl<'_, T> Send for Iter<'_, T> where
    T: Sync
[src]

impl<T> Send for LinkedList<T> where
    T: Send
[src]

impl<'_, T> Send for CursorMut<'_, T> where
    T: Send
[src]

impl<T> !Send for Weak<T> where
    T: ?Sized
[src]

impl<'_, T> Send for Drain<'_, T> where
    T: Send
[src]

impl<T> !Send for Rc<T> where
    T: ?Sized
[src]

impl<'a, A> Send for Drain<'a, A> where
    A: Array + Send
[src]

impl<R, T> Send for Mutex<R, T> where
    T: Send + ?Sized,
    R: RawMutex + Send
[src]

impl<R, G, T> Send for ReentrantMutex<R, G, T> where
    T: Send + ?Sized,
    R: RawMutex + Send,
    G: GetThreadId + Send
[src]

impl<'a, R, T> Send for MappedRwLockReadGuard<'a, R, T> where
    T: 'a + Sync + ?Sized,
    R: 'a + RawRwLock,
    <R as RawRwLock>::GuardMarker: Send
[src]

impl<R, T> Send for RwLock<R, T> where
    T: Send + ?Sized,
    R: RawRwLock + Send
[src]

impl<'a, R, T> Send for MappedRwLockWriteGuard<'a, R, T> where
    T: 'a + Send + ?Sized,
    R: 'a + RawRwLock,
    <R as RawRwLock>::GuardMarker: Send
[src]

impl<'a, R, T> Send for MappedMutexGuard<'a, R, T> where
    T: 'a + Send + ?Sized,
    R: 'a + RawMutex,
    <R as RawMutex>::GuardMarker: Send
[src]

impl<R, G> Send for RawReentrantMutex<R, G> where
    R: RawMutex + Send,
    G: GetThreadId + Send
[src]

impl<A> Send for SmallVec<A> where
    A: Array,
    <A as Array>::Item: Send
[src]

impl<'a, T> Send for Drain<'a, T> where
    T: Array + Send
[src]

impl<T, C> Send for Pool<T, C> where
    C: Config,
    T: Send + Clear + Default
[src]

impl<T, C> Send for Slab<T, C> where
    C: Config,
    T: Send
[src]

impl<T, C> Send for OwnedRefMut<T, C> where
    C: Config,
    T: Sync + Clear + Default
[src]

impl<T, C> Send for OwnedRef<T, C> where
    C: Config,
    T: Sync + Clear + Default
[src]

impl<T, C> Send for OwnedEntry<T, C> where
    C: Config,
    T: Sync
[src]

impl<Tz> Send for Date<Tz> where
    Tz: TimeZone,
    <Tz as TimeZone>::Offset: Send
[src]

impl<Tz> Send for DateTime<Tz> where
    Tz: TimeZone,
    <Tz as TimeZone>::Offset: Send
[src]

impl<'a, A> Send for Drain<'a, A> where
    A: Array + Send
[src]

impl<T, N> Send for GenericArray<T, N> where
    T: Send,
    N: ArrayLength<T>, 
[src]

impl<R, T> Send for Mutex<R, T> where
    T: Send + ?Sized,
    R: RawMutex + Send
[src]

impl<R, G, T> Send for ReentrantMutex<R, G, T> where
    T: Send + ?Sized,
    R: RawMutex + Send,
    G: GetThreadId + Send
[src]

impl<'a, R, T> Send for MappedRwLockWriteGuard<'a, R, T> where
    T: 'a + ?Sized,
    R: 'a + RawRwLock,
    <R as RawRwLock>::GuardMarker: Send
[src]

impl<'a, R, T> Send for MappedMutexGuard<'a, R, T> where
    T: 'a + ?Sized,
    R: 'a + RawMutex,
    <R as RawMutex>::GuardMarker: Send
[src]

impl<R, T> Send for RwLock<R, T> where
    T: Send + ?Sized,
    R: RawRwLock + Send
[src]

impl<'a, R, T> Send for MappedRwLockReadGuard<'a, R, T> where
    T: 'a + ?Sized,
    R: 'a + RawRwLock,
    <R as RawRwLock>::GuardMarker: Send
[src]

impl<T, N> Send for GenericArray<T, N> where
    T: Send,
    N: ArrayLength<T>, 
[src]

impl<T> Send for Receiver<T> where
    T: Send
[src]

impl<'_> Send for Select<'_>[src]

impl<T> Send for Sender<T> where
    T: Send
[src]

impl<T> Send for AtomicCell<T> where
    T: Send
[src]

impl Send for Unparker[src]

impl<T> Send for CachePadded<T> where
    T: Send
[src]

impl<T> Send for ShardedLock<T> where
    T: Send + ?Sized
[src]

impl Send for Parker[src]

impl<'_, T> Send for ScopedJoinHandle<'_, T>[src]

impl<T> Send for Injector<T> where
    T: Send
[src]

impl<T> Send for Stealer<T> where
    T: Send
[src]

impl<T> Send for Worker<T> where
    T: Send
[src]

impl Send for Collector[src]

impl<T> Send for Atomic<T> where
    T: Pointable + Send + Sync + ?Sized
[src]

impl<'_, K, V> Send for RawOccupiedEntryMut<'_, K, V> where
    K: Send,
    V: Send
[src]

impl<'_, K, V> Send for IterMut<'_, K, V> where
    K: Send,
    V: Send
[src]

impl<'_, K, V, S> Send for OccupiedEntry<'_, K, V, S> where
    K: Send,
    V: Send,
    S: Send
[src]

impl Send for AtomicWaker[src]

impl<Fut> Send for FuturesUnordered<Fut> where
    Fut: Send
[src]

impl<T> Send for Mutex<T> where
    T: Send + ?Sized
[src]

impl<'_, T> Send for MutexGuard<'_, T> where
    T: Send + ?Sized
[src]

impl<'_, T, U> Send for MappedMutexGuard<'_, T, U> where
    T: Send + ?Sized,
    U: Send + ?Sized
[src]

impl<'_, T> Send for MutexLockFuture<'_, T> where
    T: Send + ?Sized
[src]

impl<'_, T> Send for FutureObj<'_, T>[src]

impl<A> Send for TaskRc<A> where
    A: Send
[src]

impl Send for NotifyHandle[src]

impl<T> Send for FuturesUnordered<T> where
    T: Send
[src]

impl Send for AtomicTask[src]

impl<'_, K, V, S> Send for OccupiedEntry<'_, K, V, S> where
    K: Send,
    V: Send,
    S: Send
[src]

impl<'_, K, V> Send for IterMut<'_, K, V> where
    K: Send,
    V: Send
[src]

impl<'_, T> Send for RawDrain<'_, T> where
    T: Send
[src]

impl<T> Send for Bucket<T>[src]

impl<'_, K, V, S> Send for RawOccupiedEntryMut<'_, K, V, S> where
    K: Send,
    V: Send,
    S: Sync
[src]

impl<T> Send for RawTable<T> where
    T: Send
[src]

impl<T> Send for RawIntoIter<T> where
    T: Send
[src]

impl Send for isize

impl<T> Send for [T] where
    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

impl Send for bool

impl Send for f32

impl Send for u32

impl Send for usize

impl Send for i32

Loading content...

Implementors

Loading content...

Auto implementors

impl Send for DispatchError

impl Send for frame_support::dispatch::fmt::Alignment

impl Send for Never

impl Send for Void

impl Send for RuntimeMetadata

impl Send for StorageEntryModifier

impl Send for StorageEntryType

impl Send for StorageHasher

impl Send for ChildInfo

impl Send for ChildType

impl Send for BalanceStatus

impl Send for ExistenceRequirement

impl Send for WithdrawReason

impl Send for DispatchClass

impl Send for Pays

impl Send for FrameTransactionPriority

impl Send for RuntimeLogger

impl Send for Writer

impl Send for Error

impl Send for PhantomPinned

impl Send for ErrorMetadata

impl Send for FunctionArgumentMetadata

impl Send for FunctionMetadata

impl Send for ModuleConstantMetadata

impl Send for EventMetadata

impl Send for OuterEventMetadata

impl Send for DefaultByteGetter

impl Send for ExtrinsicMetadata

impl Send for ModuleMetadata

impl Send for RuntimeMetadataPrefixed

impl Send for StorageEntryMetadata

impl Send for StorageMetadata

impl Send for Blake2_128

impl Send for Blake2_128Concat

impl Send for Blake2_256

impl Send for Identity

impl Send for Twox64Concat

impl Send for Twox128

impl Send for Twox256

impl Send for CallMetadata

impl Send for TestRandomness

impl Send for WithdrawReasons

impl Send for BlockExecutionWeight

impl Send for ExtrinsicBaseWeight

impl Send for ParityDbWeight

impl Send for RocksDbWeight

impl Send for DispatchInfo

impl Send for PostDispatchInfo

impl Send for RuntimeDbWeight

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, T> Send for frame_support::dispatch::result::Iter<'a, T> where
    T: Sync

impl<'a, T> Send for frame_support::dispatch::result::IterMut<'a, T> where
    T: Send

impl<B, O> Send for DecodeDifferent<B, O> where
    B: Send,
    O: Send

impl<B, P> Send for SignedImbalance<B, P> where
    P: Send,
    <P as Imbalance<B>>::Opposite: Send

impl<Balance> Send for WeightToFeeCoefficient<Balance> where
    Balance: Send

impl<Balance, Imbalance, Part1, Target1, Part2, Target2> Send for SplitTwoWays<Balance, Imbalance, Part1, Target1, Part2, Target2> where
    Balance: Send,
    Imbalance: Send,
    Part1: Send,
    Part2: Send,
    Target1: Send,
    Target2: Send

impl<BlockNumber> Send for DispatchTime<BlockNumber> where
    BlockNumber: Send

impl<E> Send for FnEncode<E>

impl<F, T> Send for ClearFilterGuard<F, T> where
    T: Send,
    <F as FilterStack<T>>::Stack: Send

impl<F, T> Send for FilterStackGuard<F, T> where
    F: Send,
    T: Send

impl<K, T, H> Send for StorageKeyIterator<K, T, H> where
    H: Send,
    K: Send,
    T: Send

impl<R> Send for TransactionOutcome<R> where
    R: Send

impl<S, Created, Removed, K, T> Send for StorageMapShim<S, Created, Removed, K, T> where
    Created: Send,
    K: Send,
    Removed: Send,
    S: Send,
    T: Send

impl<T> Send for frame_support::dispatch::result::IntoIter<T> where
    T: Send

impl<T> Send for StorageIterator<T> where
    T: Send

impl<T> Send for PrefixIterator<T>

impl<T> Send for IdentityFee<T> where
    T: Send

impl<T, A> Send for Vec<T, A> where
    A: Send,
    T: Send

impl<T, E> Send for Result<T, E> where
    E: Send,
    T: Send

impl<T: ?Sized> Send for PhantomData<T> where
    T: Send

impl<WD, CD, PF> Send for FunctionOf<WD, CD, PF> where
    CD: Send,
    PF: Send,
    WD: Send

Loading content...