1.0.0[][src]Trait ontio_std::prelude::Send

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<T> Send for AtomicPtr<T>[src]

impl<T> Send for RefCell<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 IterMut<'_, T> where
    T: Send
[src]

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

impl Send for Waker[src]

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

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

impl<T> Send for LinkedList<T> where
    T: Send
[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 CursorMut<'_, T> where
    T: Send
[src]

impl<T> !Send for Rc<T> where
    T: ?Sized
[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 IterMut<'_, 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 Arc<T> where
    T: Send + Sync + ?Sized
[src]

Loading content...

Implementors

impl<'_> Send for ontio_std::prelude::string::Drain<'_>[src]

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

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

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

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

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

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

Loading content...

Auto implementors

impl Send for Error

impl Send for Ordering

impl Send for SearchStep

impl Send for EventBuilder

impl Send for Sink

impl Send for VmValueBuilder

impl Send for DDOAttribute

impl Send for Group

impl Send for Signer

impl Send for TransferParam

impl Send for ParseBoolError

impl Send for Utf8Error

impl Send for FromUtf8Error

impl Send for FromUtf16Error

impl Send for I128

impl Send for String

impl Send for U128

impl Send for H160

impl Send for H256

impl Send for U256

impl Send for [u8]

impl Send for bool

impl Send for char

impl Send for f32

impl Send for f64

impl Send for i8

impl Send for i16

impl Send for i32

impl Send for i64

impl Send for i128

impl Send for isize

impl Send for str

impl Send for u8

impl Send for u16

impl Send for u32

impl Send for u64

impl Send for u128

impl Send for usize

impl<'a> Send for Source<'a>

impl<'a> Send for VmValueParser<'a>

impl<'a> Send for CharSearcher<'a>

impl<'a> Send for Bytes<'a>

impl<'a> Send for CharIndices<'a>

impl<'a> Send for Chars<'a>

impl<'a> Send for EncodeUtf16<'a>

impl<'a> Send for EscapeDebug<'a>

impl<'a> Send for EscapeDefault<'a>

impl<'a> Send for EscapeUnicode<'a>

impl<'a> Send for Lines<'a>

impl<'a> Send for LinesAny<'a>

impl<'a> Send for SplitAsciiWhitespace<'a>

impl<'a> Send for SplitWhitespace<'a>

impl<'a, 'b> Send for CharSliceSearcher<'a, 'b>

impl<'a, 'b> Send for StrSearcher<'a, 'b>

impl<'a, F> Send for CharPredicateSearcher<'a, F> where
    F: MultiCharEq + Send

impl<'a, I, A> Send for Splice<'a, I, A> where
    A: Send,
    I: Send,
    <I as Iterator>::Item: Send

impl<'a, P> Send for MatchIndices<'a, P> where
    <P as Pattern<'a>>::Searcher: Send

impl<'a, P> Send for Matches<'a, P> where
    <P as Pattern<'a>>::Searcher: Send

impl<'a, P> Send for RMatchIndices<'a, P> where
    <P as Pattern<'a>>::Searcher: Send

impl<'a, P> Send for RMatches<'a, P> where
    <P as Pattern<'a>>::Searcher: Send

impl<'a, P> Send for RSplit<'a, P> where
    <P as Pattern<'a>>::Searcher: Send

impl<'a, P> Send for RSplitN<'a, P> where
    <P as Pattern<'a>>::Searcher: Send

impl<'a, P> Send for RSplitTerminator<'a, P> where
    <P as Pattern<'a>>::Searcher: Send

impl<'a, P> Send for Split<'a, P> where
    <P as Pattern<'a>>::Searcher: Send

impl<'a, P> Send for SplitN<'a, P> where
    <P as Pattern<'a>>::Searcher: Send

impl<'a, P> Send for SplitTerminator<'a, P> where
    <P as Pattern<'a>>::Searcher: Send

impl<'a, T, F, A> Send for DrainFilter<'a, T, F, A> where
    A: Send,
    F: Send,
    T: Send

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

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

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

impl<T> Send for [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, const N: usize> Send for [T; N] where
    T: Send

impl<T: ?Sized, A> Send for Box<T, A> where
    A: Send,
    T: Send

Loading content...