Trait concordium_std::marker::Send1.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 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<'_, T> !Send for MutexGuard<'_, T> where
    T: ?Sized
[src]

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

impl !Send for ArgsOs[src]

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

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

impl Send for Once[src]

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

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

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

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

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

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

impl !Send for Args[src]

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

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

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

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

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

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

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

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

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

impl<T> Send for Cell<T> where
    T: Send + ?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 RefCell<T> where
    T: Send + ?Sized
[src]

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

impl Send for Waker[src]

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

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

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

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

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

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

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

impl<T> Send for Arc<T> where
    T: Sync + Send + ?Sized
[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

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

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

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

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

impl<'_, T> Send for concordium_std::collections::vec_deque::Drain<'_, T> where
    T: Send
1.6.0[src]

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

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

Loading content...

Auto implementors

impl Send for TryReserveError

impl Send for Infallible

impl Send for Address

impl Send for AmountParseError

impl Send for LogError

impl Send for NewContractNameError

impl Send for NewReceiveNameError

impl Send for ParseDurationError

impl Send for SeekFrom

impl Send for FpCategory

impl Send for IntErrorKind

impl Send for Fields

impl Send for SizeLength

impl Send for Type

impl Send for ActionsTree

impl Send for ContractStateError

impl Send for DefaultHasher

impl Send for RandomState

impl Send for NonZeroI8

impl Send for NonZeroI16

impl Send for NonZeroI32

impl Send for NonZeroI64

impl Send for NonZeroI128

impl Send for NonZeroIsize

impl Send for NonZeroU8

impl Send for NonZeroU16

impl Send for NonZeroU32

impl Send for NonZeroU64

impl Send for NonZeroU128

impl Send for NonZeroUsize

impl Send for ParseFloatError

impl Send for ParseIntError

impl Send for TryFromIntError

impl Send for Contract

impl Send for Module

impl Send for AccountAddress

impl Send for Action

impl Send for Amount

impl Send for AttributeTag

impl Send for AttributesCursor

impl Send for ChainMetadata

impl Send for ContractAddress

impl Send for ContractState

impl Send for Duration

impl Send for Logger

impl Send for OwnedContractName

impl Send for OwnedReceiveName

impl Send for Parameter

impl Send for ParseError

impl Send for PoliciesIterator

impl Send for Reject

impl Send for String

impl Send for Timestamp

impl Send for ChainMetaTest

impl Send for LogRecorder

impl Send for TestPolicy

impl Send for PhantomPinned

impl<'a> Send for ContractName<'a>

impl<'a> Send for ReceiveName<'a>

impl<'a, C> Send for ContextTest<'a, C> where
    C: Send

impl<'a, K> Send for concordium_std::collections::hash_set::Drain<'a, K> where
    K: Send

impl<'a, K> Send for concordium_std::collections::hash_set::Iter<'a, K> where
    K: Sync

impl<'a, K, F> Send for concordium_std::collections::hash_set::DrainFilter<'a, K, F> where
    F: Send,
    K: Send

impl<'a, K, V> Send for concordium_std::collections::btree_map::Entry<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V> Send for concordium_std::collections::hash_map::Entry<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V> Send for concordium_std::collections::btree_map::Iter<'a, K, V> where
    K: Sync,
    V: Sync

impl<'a, K, V> Send for concordium_std::collections::btree_map::IterMut<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V> Send for concordium_std::collections::btree_map::Keys<'a, K, V> where
    K: Sync,
    V: Sync

impl<'a, K, V> Send for concordium_std::collections::btree_map::OccupiedEntry<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V> Send for concordium_std::collections::btree_map::OccupiedError<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V> Send for concordium_std::collections::btree_map::Range<'a, K, V> where
    K: Sync,
    V: Sync

impl<'a, K, V> Send for RangeMut<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V> Send for concordium_std::collections::btree_map::VacantEntry<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V> Send for concordium_std::collections::btree_map::Values<'a, K, V> where
    K: Sync,
    V: Sync

impl<'a, K, V> Send for concordium_std::collections::btree_map::ValuesMut<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V> Send for concordium_std::collections::hash_map::Drain<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V> Send for concordium_std::collections::hash_map::Iter<'a, K, V> where
    K: Sync,
    V: Sync

impl<'a, K, V> Send for concordium_std::collections::hash_map::IterMut<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V> Send for concordium_std::collections::hash_map::Keys<'a, K, V> where
    K: Sync,
    V: Sync

impl<'a, K, V> Send for concordium_std::collections::hash_map::OccupiedEntry<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V> Send for concordium_std::collections::hash_map::OccupiedError<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V> Send for concordium_std::collections::hash_map::VacantEntry<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V> Send for concordium_std::collections::hash_map::Values<'a, K, V> where
    K: Sync,
    V: Sync

impl<'a, K, V> Send for concordium_std::collections::hash_map::ValuesMut<'a, K, V> where
    K: Send,
    V: Send

impl<'a, K, V, F> Send for concordium_std::collections::btree_map::DrainFilter<'a, K, V, F> where
    F: Send,
    K: Send,
    V: Send

impl<'a, K, V, F> Send for concordium_std::collections::hash_map::DrainFilter<'a, K, V, F> where
    F: Send,
    K: Send,
    V: Send

impl<'a, K, V, S> Send for RawEntryMut<'a, K, V, S> where
    K: Send,
    S: Sync,
    V: Send

impl<'a, K, V, S> Send for RawEntryBuilder<'a, K, V, S> where
    K: Sync,
    S: Sync,
    V: Sync

impl<'a, K, V, S> Send for RawEntryBuilderMut<'a, K, V, S> where
    K: Send,
    S: Send,
    V: Send

impl<'a, K, V, S> Send for RawOccupiedEntryMut<'a, K, V, S> where
    K: Send,
    V: Send

impl<'a, K, V, S> Send for RawVacantEntryMut<'a, K, V, S> where
    K: Send,
    S: Sync,
    V: Send

impl<'a, T> Send for concordium_std::collections::binary_heap::Drain<'a, T> where
    T: Send

impl<'a, T> Send for DrainSorted<'a, T> where
    T: Send

impl<'a, T> Send for concordium_std::collections::binary_heap::Iter<'a, T> where
    T: Sync

impl<'a, T> Send for PeekMut<'a, T> where
    T: Send

impl<'a, T> Send for concordium_std::collections::btree_set::Difference<'a, T> where
    T: Sync

impl<'a, T> Send for concordium_std::collections::btree_set::Intersection<'a, T> where
    T: Sync

impl<'a, T> Send for concordium_std::collections::btree_set::Iter<'a, T> where
    T: Sync

impl<'a, T> Send for concordium_std::collections::btree_set::Range<'a, T> where
    T: Sync

impl<'a, T> Send for concordium_std::collections::btree_set::SymmetricDifference<'a, T> where
    T: Sync

impl<'a, T> Send for concordium_std::collections::btree_set::Union<'a, T> where
    T: Sync

impl<'a, T> Send for concordium_std::collections::vec_deque::Iter<'a, T> where
    T: Sync

impl<'a, T, F> !Send for concordium_std::collections::linked_list::DrainFilter<'a, T, F>

impl<'a, T, F> Send for concordium_std::collections::btree_set::DrainFilter<'a, T, F> where
    F: Send,
    T: Send

impl<'a, T, S> Send for concordium_std::collections::hash_set::Difference<'a, T, S> where
    S: Sync,
    T: Sync

impl<'a, T, S> Send for concordium_std::collections::hash_set::Intersection<'a, T, S> where
    S: Sync,
    T: Sync

impl<'a, T, S> Send for concordium_std::collections::hash_set::SymmetricDifference<'a, T, S> where
    S: Sync,
    T: Sync

impl<'a, T, S> Send for concordium_std::collections::hash_set::Union<'a, T, S> where
    S: Sync,
    T: Sync

impl<Attributes> Send for Policy<Attributes> where
    Attributes: Send

impl<K> Send for concordium_std::collections::hash_set::IntoIter<K> where
    K: Send

impl<K, V> Send for concordium_std::collections::btree_map::IntoIter<K, V> where
    K: Send,
    V: Send

impl<K, V> Send for concordium_std::collections::btree_map::IntoKeys<K, V> where
    K: Send,
    V: Send

impl<K, V> Send for concordium_std::collections::btree_map::IntoValues<K, V> where
    K: Send,
    V: Send

impl<K, V> Send for concordium_std::collections::hash_map::IntoIter<K, V> where
    K: Send,
    V: Send

impl<K, V> Send for concordium_std::collections::hash_map::IntoKeys<K, V> where
    K: Send,
    V: Send

impl<K, V> Send for concordium_std::collections::hash_map::IntoValues<K, V> where
    K: Send,
    V: Send

impl<K, V> Send for BTreeMap<K, V> where
    K: Send,
    V: Send

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

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

impl<T> Send for concordium_std::collections::binary_heap::IntoIter<T> where
    T: Send

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

impl<T> Send for concordium_std::collections::btree_set::IntoIter<T> where
    T: Send

impl<T> Send for concordium_std::collections::linked_list::IntoIter<T> where
    T: Send

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

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

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

impl<T> Send for concordium_std::collections::vec_deque::IntoIter<T> where
    T: Send

impl<T> Send for Discriminant<T>

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

impl<T> Send for concordium_std::Cursor<T> where
    T: Send

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

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

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

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

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

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

Loading content...