Trait frame_support::dispatch::marker::Send

1.0.0 · source ·
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 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.

Implementors§

1.26.0 · source§

impl !Send for Args

1.26.0 · source§

impl !Send for ArgsOs

1.6.0 · source§

impl Send for alloc::string::Drain<'_>

1.36.0 · source§

impl Send for Waker

§

impl Send for AtomicWaker

§

impl Send for Bytes

§

impl Send for BytesMut

§

impl Send for ExportFunction

§

impl Send for ExportGlobal

§

impl Send for ExportMemory

§

impl Send for ExportTable

§

impl Send for GdbJitImageRegistration

§

impl Send for InstanceHandle

§

impl Send for TableElementwhere
VMExternRef: Send,

§

impl Send for VMCallerCheckedAnyfunc

§

impl Send for VMExternRef

§

impl Send for VMFunctionImport

§

impl Send for VMGlobalImport

§

impl Send for VMHostFuncContext

§

impl Send for VMMemoryImport

§

impl Send for VMRuntimeLimits

§

impl Send for VMTableImport

1.44.0 · source§

impl<'a> Send for IoSlice<'a>

1.44.0 · source§

impl<'a> Send for IoSliceMut<'a>

§

impl<'a, 'b, K, Q, V, S, A> Send for OccupiedEntryRef<'a, 'b, K, Q, V, S, A>where
K: Send,
Q: Sync + ?Sized,
V: Send,
S: Send,
A: Send + Allocator + Clone,

§

impl<'a, 'b, K, Q, V, S, A> Send for OccupiedEntryRef<'a, 'b, K, Q, V, S, A>where
K: Send,
Q: Sync + ?Sized,
V: Send,
S: Send,
A: Send + Allocator + Clone,

source§

impl<'a, A> Send for arrayvec::Drain<'a, A>where
A: Array + Send,

§

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

§

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

§

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

source§

impl<'a, T> Send for smallvec::Drain<'a, T>where
T: Send + Array,

source§

impl<'a, T, const CAP: usize> Send for arrayvec::arrayvec::Drain<'a, T, CAP>where
T: Send,

source§

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

§

impl<C> Send for Secp256k1<C>where
C: Context,

source§

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<K, V> Send for IterMut<'_, K, V>where
K: Send,
V: Send,

§

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

§

impl<K, V, S, A> Send for OccupiedEntry<'_, K, V, S, A>where
K: Send,
V: Send,
S: Send,
A: Send + Allocator + Clone,

§

impl<K, V, S, A> Send for OccupiedEntry<'_, K, V, S, A>where
K: Send,
V: Send,
S: Send,
A: Send + Allocator + Clone,

§

impl<K, V, S, A> Send for RawOccupiedEntryMut<'_, K, V, S, A>where
K: Send,
V: Send,
S: Send,
A: Send + Allocator + Clone,

§

impl<K, V, S, A> Send for RawOccupiedEntryMut<'_, K, V, S, A>where
K: Send,
V: Send,
S: Send,
A: Send + Allocator + Clone,

§

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

§

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

§

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

§

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

source§

impl<T> !Send for *const Twhere
T: ?Sized,

source§

impl<T> !Send for *mut Twhere
T: ?Sized,

source§

impl<T> !Send for Rc<T>where
T: ?Sized,

1.4.0 · source§

impl<T> !Send for alloc::rc::Weak<T>where
T: ?Sized,

1.25.0 · source§

impl<T> !Send for NonNull<T>where
T: ?Sized,

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

source§

impl<T> !Send for std::sync::mutex::MutexGuard<'_, T>where
T: ?Sized,

source§

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

source§

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

source§

impl<T> Send for &Twhere
T: Sync + ?Sized,

source§

impl<T> Send for ThinBox<T>where
T: Send + ?Sized,

ThinBox<T> is Send if T is Send because the data is owned.

source§

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

source§

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

source§

impl<T> Send for alloc::collections::linked_list::Iter<'_, T>where
T: Sync,

source§

impl<T> Send for alloc::collections::linked_list::IterMut<'_, T>where
T: Send,

source§

impl<T> Send for LinkedList<T>where
T: Send,

source§

impl<T> Send for Arc<T>where
T: Sync + Send + ?Sized,

1.4.0 · source§

impl<T> Send for alloc::sync::Weak<T>where
T: Sync + Send + ?Sized,

source§

impl<T> Send for Cell<T>where
T: Send + ?Sized,

source§

impl<T> Send for RefCell<T>where
T: Send + ?Sized,

1.31.0 · source§

impl<T> Send for ChunksExactMut<'_, T>where
T: Send,

source§

impl<T> Send for ChunksMut<'_, T>where
T: Send,

source§

impl<T> Send for core::slice::iter::Iter<'_, T>where
T: Sync,

source§

impl<T> Send for core::slice::iter::IterMut<'_, T>where
T: Send,

1.31.0 · source§

impl<T> Send for RChunksExactMut<'_, T>where
T: Send,

1.31.0 · source§

impl<T> Send for RChunksMut<'_, T>where
T: Send,

source§

impl<T> Send for AtomicPtr<T>

source§

impl<T> Send for Receiver<T>where
T: Send,

source§

impl<T> Send for Sender<T>where
T: Send,

source§

impl<T> Send for SyncSender<T>where
T: Send,

source§

impl<T> Send for std::sync::mutex::Mutex<T>where
T: Send + ?Sized,

source§

impl<T> Send for OnceLock<T>where
T: Send,

source§

impl<T> Send for std::sync::rwlock::RwLock<T>where
T: Send + ?Sized,

1.29.0 · source§

impl<T> Send for JoinHandle<T>

§

impl<T> Send for Bucket<T>

§

impl<T> Send for Bucket<T>

§

impl<T> Send for FutureObj<'_, T>

§

impl<T> Send for Mutex<T>where
T: Send + ?Sized,

§

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

§

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

§

impl<T> Send for OwnedMutexGuard<T>where
T: Send + ?Sized,

§

impl<T> Send for OwnedMutexLockFuture<T>where
T: Send + ?Sized,

1.6.0 · source§

impl<T, A> Send for alloc::collections::vec_deque::drain::Drain<'_, T, A>where
T: Send,
A: Allocator + Send,

1.6.0 · source§

impl<T, A> Send for alloc::vec::drain::Drain<'_, T, A>where
T: Send,
A: Send + Allocator,

source§

impl<T, A> Send for alloc::vec::into_iter::IntoIter<T, A>where
T: Send,
A: Allocator + Send,

§

impl<T, A> Send for RawDrain<'_, T, A>where
A: Allocator + Copy + Send,
T: Send,

§

impl<T, A> Send for RawDrain<'_, T, A>where
A: Allocator + Copy + Send,
T: Send,

§

impl<T, A> Send for RawIntoIter<T, A>where
A: Allocator + Clone + Send,
T: Send,

§

impl<T, A> Send for RawIntoIter<T, A>where
A: Allocator + Clone + Send,
T: Send,

§

impl<T, A> Send for RawTable<T, A>where
A: Allocator + Clone + Send,
T: Send,

§

impl<T, A> Send for RawTable<T, A>where
A: Allocator + Clone + Send,
T: Send,

source§

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

source§

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

source§

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

source§

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

source§

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

§

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

§

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

§

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

source§

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

source§

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

Auto implementors§

§

impl Send for Never

§

impl Send for Void

§

impl Send for DispatchError

§

impl Send for InvalidTransaction

§

impl Send for TransactionSource

§

impl Send for TransactionValidityError

§

impl Send for UnknownTransaction

§

impl Send for ChildInfo

§

impl Send for ChildType

§

impl Send for KillStorageResult

§

impl Send for StateVersion

§

impl Send for Everything

§

impl Send for ExecuteOverweightError

§

impl Send for Nothing

§

impl Send for ProcessMessageError

§

impl Send for LookupError

§

impl Send for BalanceStatus

§

impl Send for DepositConsequence

§

impl Send for ExistenceRequirement

§

impl Send for DispatchClass

§

impl Send for Pays

§

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

§

impl Send for CheckInherentsResult

§

impl Send for Instance1

§

impl Send for Instance2

§

impl Send for Instance3

§

impl Send for Instance4

§

impl Send for Instance5

§

impl Send for Instance6

§

impl Send for Instance7

§

impl Send for Instance8

§

impl Send for Instance9

§

impl Send for Instance10

§

impl Send for Instance11

§

impl Send for Instance12

§

impl Send for Instance13

§

impl Send for Instance14

§

impl Send for Instance15

§

impl Send for Instance16

§

impl Send for Blake2_128

§

impl Send for Blake2_128Concat

§

impl Send for Blake2_256

§

impl Send for GetDefault

§

impl Send for Identity

§

impl Send for InherentData

§

impl Send for Twox64Concat

§

impl Send for Twox128

§

impl Send for Twox256

§

impl Send for ValidTransaction

§

impl Send for Weight

§

impl Send for MultiRemovalResults

§

impl Send for StorageNoopGuard

§

impl Send for OptionQuery

§

impl Send for ValueQuery

§

impl Send for PalletId

§

impl Send for Backing

§

impl Send for CrateVersion

§

impl Send for EqualPrivilegeOnly

§

impl Send for Footprint

§

impl Send for PalletInfoData

§

impl Send for SaturatingCurrencyToVote

§

impl Send for StorageInfo

§

impl Send for StorageVersion

§

impl Send for TrackedStorageKey

§

impl Send for U128CurrencyToVote

§

impl Send for WithdrawReasons

§

impl Send for BlockExecutionWeight

§

impl Send for ExtrinsicBaseWeight

§

impl Send for ParityDbWeight

§

impl Send for RocksDbWeight

§

impl Send for OldWeight

§

impl Send for RuntimeDbWeight

§

impl Send for WeightMeter

§

impl Send for Error

§

impl Send for CallMetadata

§

impl Send for DispatchInfo

§

impl Send for PostDispatchInfo

§

impl Send for PhantomPinned

§

impl Send for Alignment

§

impl Send for Argument

§

impl Send for Count

§

impl Send for FormatSpec

§

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<'a, T, S> Send for BoundedSlice<'a, T, S>where
S: Send,
T: Sync,

§

impl<A, B> Send for SameOrOther<A, B>where
A: Send,
B: Send,

§

impl<A, B, OnDrop, OppositeOnDrop> Send for frame_support::traits::tokens::fungibles::Imbalance<A, B, OnDrop, OppositeOnDrop>where
A: Send,
B: Send,
OnDrop: Send,
OppositeOnDrop: Send,

§

impl<AccountId> Send for AttributeNamespace<AccountId>where
AccountId: Send,

§

impl<AccountId> Send for RawOrigin<AccountId>where
AccountId: Send,

§

impl<B, OnDrop, OppositeOnDrop> Send for frame_support::traits::tokens::fungible::Imbalance<B, OnDrop, OppositeOnDrop>where
B: Send,
OnDrop: Send,
OppositeOnDrop: Send,

§

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

§

impl<Balance> Send for WithdrawConsequence<Balance>where
Balance: Send,

§

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

§

impl<Balance, Imbalance, Target1, Target2, const PART1: u32, const PART2: u32> Send for SplitTwoWays<Balance, Imbalance, Target1, Target2, PART1, PART2>where
Balance: Send,
Imbalance: Send,
Target1: Send,
Target2: Send,

§

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

§

impl<C, A> Send for ActiveIssuanceOf<C, A>where
A: Send,
C: Send,

§

impl<C, A> Send for TotalIssuanceOf<C, A>where
A: Send,
C: Send,

§

impl<CP> Send for FromContainsPair<CP>where
CP: Send,

§

impl<E> Send for MakeFatalError<E>where
E: Send,

§

impl<EO> Send for AsEnsureOriginWithArg<EO>where
EO: Send,

§

impl<Error> Send for ResultQuery<Error>where
Error: Send,

§

impl<Exclude> Send for EverythingBut<Exclude>where
Exclude: Send,

§

impl<F, A, AccountId> Send for frame_support::traits::tokens::fungible::ItemOf<F, A, AccountId>where
A: Send,
AccountId: Send,
F: Send,

§

impl<F, A, AccountId> Send for frame_support::traits::tokens::nonfungible::ItemOf<F, A, AccountId>where
A: Send,
AccountId: Send,
F: Send,

§

impl<F, A, AccountId> Send for frame_support::traits::tokens::nonfungible_v2::ItemOf<F, A, AccountId>where
A: Send,
AccountId: Send,
F: Send,

§

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<Hasher, KeyType> Send for Key<Hasher, KeyType>where
Hasher: Send,
KeyType: Send,

§

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

§

impl<K, V, S> Send for BoundedBTreeMap<K, V, S>where
K: Send,
S: Send,
V: Send,

§

impl<L, R> Send for EitherOf<L, R>where
L: Send,
R: Send,

§

impl<L, R> Send for EitherOfDiverse<L, R>where
L: Send,
R: Send,

§

impl<M> Send for KeyLenOf<M>where
M: Send,

§

impl<OM> Send for AsContains<OM>where
OM: Send,

§

impl<Orig, Mutator> Send for TryMapSuccess<Orig, Mutator>where
Mutator: Send,
Orig: Send,

§

impl<Origin, PrivilegeCmp> Send for EnsureOriginEqualOrHigherPrivilege<Origin, PrivilegeCmp>where
Origin: Send,
PrivilegeCmp: Send,

§

impl<Original, Mutator> Send for MapSuccess<Original, Mutator>where
Mutator: Send,
Original: Send,

§

impl<P, T> Send for ClassCountOf<P, T>where
P: Send,
T: Send,

§

impl<Prefix, Hasher1, Key1, Hasher2, Key2, Value, QueryKind, OnEmpty, MaxValues> Send for StorageDoubleMap<Prefix, Hasher1, Key1, Hasher2, Key2, Value, QueryKind, OnEmpty, MaxValues>where
Hasher1: Send,
Hasher2: Send,
Key1: Send,
Key2: Send,
MaxValues: Send,
OnEmpty: Send,
Prefix: Send,
QueryKind: Send,
Value: Send,

§

impl<Prefix, Hasher, Key, Value, QueryKind, OnEmpty, MaxValues> Send for CountedStorageMap<Prefix, Hasher, Key, Value, QueryKind, OnEmpty, MaxValues>where
Hasher: Send,
Key: Send,
MaxValues: Send,
OnEmpty: Send,
Prefix: Send,
QueryKind: Send,
Value: Send,

§

impl<Prefix, Hasher, Key, Value, QueryKind, OnEmpty, MaxValues> Send for StorageMap<Prefix, Hasher, Key, Value, QueryKind, OnEmpty, MaxValues>where
Hasher: Send,
Key: Send,
MaxValues: Send,
OnEmpty: Send,
Prefix: Send,
QueryKind: Send,
Value: Send,

§

impl<Prefix, Key, Value, QueryKind, OnEmpty, MaxValues> Send for StorageNMap<Prefix, Key, Value, QueryKind, OnEmpty, MaxValues>where
Key: Send,
MaxValues: Send,
OnEmpty: Send,
Prefix: Send,
QueryKind: Send,
Value: Send,

§

impl<Prefix, Value, QueryKind, OnEmpty> Send for StorageValue<Prefix, Value, QueryKind, OnEmpty>where
OnEmpty: Send,
Prefix: Send,
QueryKind: Send,
Value: Send,

§

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

§

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

§

impl<Success> Send for NeverEnsureOrigin<Success>where
Success: Send,

§

impl<T> Send for Bounded<T>where
T: Send,

§

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

§

impl<T> Send for ChildTriePrefixIterator<T>

§

impl<T> Send for KeyPrefixIterator<T>

§

impl<T> Send for IsInVec<T>where
T: Send,

§

impl<T> Send for WrapperKeepOpaque<T>where
T: Send,

§

impl<T> Send for WrapperOpaque<T>where
T: Send,

§

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

§

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

§

impl<T> Send for PerDispatchClass<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, Hash> Send for MaybeHashed<T, Hash>where
Hash: Send,
T: Send,

§

impl<T, M> Send for ConstantMultiplier<T, M>where
M: Send,
T: Send,

§

impl<T, OnRemoval> Send for PrefixIterator<T, OnRemoval>where
OnRemoval: Send,

§

impl<T, S> Send for BoundedBTreeSet<T, S>where
S: Send,
T: Send,

§

impl<T, S> Send for BoundedVec<T, S>where
S: Send,
T: Send,

§

impl<T, S> Send for WeakBoundedVec<T, S>where
S: Send,
T: Send,

§

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

§

impl<Tally, Moment, Class> Send for PollStatus<Tally, Moment, Class>where
Class: Send,
Moment: Send,
Tally: Send,

§

impl<These, Except> Send for TheseExcept<These, Except>where
Except: Send,
These: Send,

§

impl<These, Those> Send for InsideBoth<These, Those>where
These: Send,
Those: Send,

§

impl<const T: bool> Send for ConstBool<T>

§

impl<const T: i8> Send for ConstI8<T>

§

impl<const T: i16> Send for ConstI16<T>

§

impl<const T: i32> Send for ConstI32<T>

§

impl<const T: i64> Send for ConstI64<T>

§

impl<const T: i128> Send for ConstI128<T>

§

impl<const T: u8> Send for ConstU8<T>

§

impl<const T: u16> Send for ConstU16<T>

§

impl<const T: u32> Send for ConstU32<T>

§

impl<const T: u64> Send for ConstU64<T>

§

impl<const T: u128> Send for ConstU128<T>