Trait nom::lib::std::prelude::v1::v1::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<T> Send for SyncSender<T> where
    T: Send
[src]

impl !Send for Select
[src]

impl Send for Once
[src]

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

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

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

impl !Send for ArgsOs
[src]

impl !Send for Args
[src]

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

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

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

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

impl<'a, T> Send for &'a mut 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 *const T where
    T: ?Sized
[src]

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

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

Unique pointers are Send if T is Send because the data they reference is unaliased. Note that this aliasing invariant is unenforced by the type system; the abstraction using the Unique must enforce it.

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

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

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

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

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

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

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

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

impl Send for Argument

impl Send for FormatSpec

impl Send for Alignment

impl Send for Count

impl Send for Position

Implementors

Auto implementors