1.0.0[][src]Trait std::marker::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 Send for Argument

impl Send for FormatSpec

impl Send for Alignment

impl Send for Count

impl Send for Position

impl Send for __m256i

impl Send for __m64

impl Send for __m128i

impl Send for __m128d

impl Send for __m256d

impl Send for CpuidResult

impl Send for __m128

impl Send for __m256

Implementors

impl !Send for Args
[src]

impl !Send for ArgsOs
[src]

impl !Send for Select
[src]

impl !Send for LocalWaker
[src]

impl Send for std::sync::Once
[src]

impl Send for Waker
[src]

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

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

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

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

impl<'a> Send for std::string::Drain<'a>
[src]

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

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

impl<'a, T> Send for std::collections::vec_deque::Drain<'a, T> where
    T: Send
[src]

impl<'a, T> Send for std::vec::Drain<'a, T> where
    T: Send
[src]

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

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

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

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

impl<T> !Send for *mut 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 Rc<T> where
    T: ?Sized
[src]

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

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

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

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

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

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

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

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

impl<T> Send for std::vec::IntoIter<T> where
    T: Send
[src]

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

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

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

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

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

Auto implementors

impl !Send for Excess

impl !Send for Vars

impl !Send for VarsOs

impl !Send for TraitObject

impl Send for std::cmp::Ordering

impl Send for CollectionAllocErr

impl Send for VarError

impl Send for c_void

impl Send for std::fmt::Alignment

impl Send for ErrorKind

impl Send for SeekFrom

impl Send for IpAddr

impl Send for Ipv6MulticastScope

impl Send for Shutdown

impl Send for std::net::SocketAddr

impl Send for FpCategory

impl Send for SearchStep

impl Send for ParseError

impl Send for std::sync::atomic::Ordering

impl Send for RecvTimeoutError

impl Send for TryRecvError

impl Send for char

impl Send for f32

impl Send for f64

impl Send for i128

impl Send for i16

impl Send for i32

impl Send for i64

impl Send for i8

impl Send for isize

impl Send for str

impl Send for str

impl Send for u128

impl Send for u16

impl Send for u32

impl Send for u64

impl Send for u8

impl Send for usize

impl Send for AllocErr

impl Send for CannotReallocInPlace

impl Send for Global

impl Send for Layout

impl Send for LayoutErr

impl Send for System

impl Send for TypeId

impl Send for std::ascii::EscapeDefault

impl Send for BorrowError

impl Send for BorrowMutError

impl Send for CharTryFromError

impl Send for DecodeUtf16Error

impl Send for EscapeDebug

impl Send for std::char::EscapeDefault

impl Send for EscapeUnicode

impl Send for ParseCharError

impl Send for ToLowercase

impl Send for ToUppercase

impl Send for UnicodeVersion

impl Send for DefaultHasher

impl Send for RandomState

impl Send for JoinPathsError

impl Send for CStr

impl Send for CString

impl Send for FromBytesWithNulError

impl Send for IntoStringError

impl Send for NulError

impl Send for OsStr

impl Send for OsString

impl Send for std::fmt::Error

impl Send for DirBuilder

impl Send for DirEntry

impl Send for File

impl Send for FileType

impl Send for Metadata

impl Send for OpenOptions

impl Send for Permissions

impl Send for ReadDir

impl Send for SipHasher

impl Send for std::io::Empty

impl Send for std::io::Error

impl Send for Initializer

impl Send for std::io::Repeat

impl Send for Sink

impl Send for Stderr

impl Send for Stdin

impl Send for Stdout

impl Send for Pinned

impl Send for AddrParseError

impl Send for Ipv4Addr

impl Send for Ipv6Addr

impl Send for SocketAddrV4

impl Send for SocketAddrV6

impl Send for TcpListener

impl Send for TcpStream

impl Send for UdpSocket

impl Send for NonZeroU128

impl Send for NonZeroU16

impl Send for NonZeroU32

impl Send for NonZeroU64

impl Send for NonZeroU8

impl Send for NonZeroUsize

impl Send for ParseFloatError

impl Send for ParseIntError

impl Send for TryFromIntError

impl Send for RangeFull

impl Send for NoneError

impl Send for stat

impl Send for std::os::unix::net::SocketAddr

impl Send for UnixDatagram

impl Send for UnixListener

impl Send for UnixStream

impl Send for Path

impl Send for PathBuf

impl Send for StripPrefixError

impl Send for Child

impl Send for ChildStderr

impl Send for ChildStdin

impl Send for ChildStdout

impl Send for Command

impl Send for ExitCode

impl Send for ExitStatus

impl Send for Output

impl Send for Stdio

impl Send for ParseBoolError

impl Send for Utf8Error

impl Send for FromUtf16Error

impl Send for FromUtf8Error

impl Send for String

impl Send for AtomicBool

impl Send for AtomicI16

impl Send for AtomicI32

impl Send for AtomicI64

impl Send for AtomicI8

impl Send for AtomicIsize

impl Send for AtomicU16

impl Send for AtomicU32

impl Send for AtomicU64

impl Send for AtomicU8

impl Send for AtomicUsize

impl Send for RecvError

impl Send for Barrier

impl Send for BarrierWaitResult

impl Send for Condvar

impl Send for OnceState

impl Send for WaitTimeoutResult

impl Send for AccessError

impl Send for Builder

impl Send for Thread

impl Send for ThreadId

impl Send for Duration

impl Send for Instant

impl Send for SystemTime

impl Send for SystemTimeError

impl<'a> !Send for Arguments<'a>

impl<'a> !Send for Formatter<'a>

impl<'a> !Send for StderrLock<'a>

impl<'a> !Send for StdinLock<'a>

impl<'a> !Send for StdoutLock<'a>

impl<'a> !Send for PanicInfo<'a>

impl<'a> Send for Component<'a>

impl<'a> Send for Prefix<'a>

impl<'a> Send for SplitPaths<'a>

impl<'a> Send for std::net::Incoming<'a>

impl<'a> Send for std::os::unix::net::Incoming<'a>

impl<'a> Send for EncodeWide<'a>

impl<'a> Send for Location<'a>

impl<'a> Send for Ancestors<'a>

impl<'a> Send for Components<'a>

impl<'a> Send for Display<'a>

impl<'a> Send for std::path::Iter<'a>

impl<'a> Send for PrefixComponent<'a>

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

impl<'a> Send for std::str::Bytes<'a>

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

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

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

impl<'a> Send for std::str::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 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, 'b> Send for CharSliceSearcher<'a, 'b>

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

impl<'a, A> Send for std::option::Iter<'a, A> where
    A: Sync

impl<'a, A> Send for std::option::IterMut<'a, A> where
    A: Send

impl<'a, B: ?Sized> Send for Cow<'a, B> where
    B: Sync,
    <B as ToOwned>::Owned: Send

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

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

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

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

impl<'a, K, V> !Send for std::collections::hash_map::Entry<'a, K, V>

impl<'a, K, V> !Send for std::collections::hash_map::OccupiedEntry<'a, K, V>

impl<'a, K, V> !Send for std::collections::hash_map::VacantEntry<'a, K, V>

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

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

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

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

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

impl<'a, K, V> Send for 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 std::collections::btree_map::VacantEntry<'a, K, V> where
    K: Send,
    V: Send

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

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

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

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

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

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

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

impl<'a, K, V> Send for std::collections::hash_map::ValuesMut<'a, K, V> where
    K: Send,
    V: 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 std::str::RSplit<'a, P> where
    <P as Pattern<'a>>::Searcher: Send

impl<'a, P> Send for std::str::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 std::str::Split<'a, P> where
    <P as Pattern<'a>>::Searcher: Send

impl<'a, P> Send for std::str::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> !Send for std::sync::mpsc::Iter<'a, T>

impl<'a, T> !Send for TryIter<'a, T>

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

impl<'a, T> Send for 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 std::collections::btree_set::Difference<'a, T> where
    T: Sync

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

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

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

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

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

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

impl<'a, T> Send for std::collections::vec_deque::IterMut<'a, T> where
    T: Send

impl<'a, T> Send for std::result::Iter<'a, T> where
    T: Sync

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

impl<'a, T> Send for Chunks<'a, T> where
    T: Sync

impl<'a, T> Send for ChunksExact<'a, T> where
    T: Sync

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

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

impl<'a, T> Send for RChunks<'a, T> where
    T: Sync

impl<'a, T> Send for RChunksExact<'a, T> where
    T: Sync

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

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

impl<'a, T> Send for Windows<'a, T> where
    T: Sync

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

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

impl<'a, T, P> Send for std::slice::RSplit<'a, T, P> where
    P: Send,
    T: Sync

impl<'a, T, P> Send for RSplitMut<'a, T, P> where
    P: Send,
    T: Send

impl<'a, T, P> Send for std::slice::RSplitN<'a, T, P> where
    P: Send,
    T: Sync

impl<'a, T, P> Send for RSplitNMut<'a, T, P> where
    P: Send,
    T: Send

impl<'a, T, P> Send for std::slice::Split<'a, T, P> where
    P: Send,
    T: Sync

impl<'a, T, P> Send for SplitMut<'a, T, P> where
    P: Send,
    T: Send

impl<'a, T, P> Send for std::slice::SplitN<'a, T, P> where
    P: Send,
    T: Sync

impl<'a, T, P> Send for SplitNMut<'a, T, P> where
    P: Send,
    T: Send

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

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

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

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

impl<'b, T> !Send for Ref<'b, T>

impl<'b, T> !Send for RefMut<'b, T>

impl<'rx, T> !Send for Handle<'rx, T>

impl<A> Send for std::iter::Repeat<A> where
    A: Send

impl<A> Send for std::option::IntoIter<A> where
    A: Send

impl<A, B> Send for std::iter::Chain<A, B> where
    A: Send,
    B: Send

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

impl<B> Send for std::io::Lines<B> where
    B: Send

impl<B> Send for std::io::Split<B> where
    B: Send

impl<F> Send for RepeatWith<F> where
    F: Send

impl<H> Send for BuildHasherDefault<H> where
    H: Send

impl<I> Send for DecodeUtf16<I> where
    I: Send

impl<I> Send for Cloned<I> where
    I: Send

impl<I> Send for Cycle<I> where
    I: Send

impl<I> Send for Enumerate<I> where
    I: Send

impl<I> Send for Flatten<I> where
    I: Send,
    <<I as Iterator>::Item as IntoIterator>::IntoIter: Send

impl<I> Send for Fuse<I> where
    I: Send

impl<I> Send for Peekable<I> where
    I: Send,
    <I as Iterator>::Item: Send

impl<I> Send for Skip<I> where
    I: Send

impl<I> Send for StepBy<I> where
    I: Send

impl<I> Send for std::iter::Take<I> where
    I: Send

impl<I, F> Send for FilterMap<I, F> where
    F: Send,
    I: Send

impl<I, F> Send for Inspect<I, F> where
    F: Send,
    I: Send

impl<I, F> Send for Map<I, F> where
    F: Send,
    I: Send

impl<I, P> Send for Filter<I, P> where
    I: Send,
    P: Send

impl<I, P> Send for SkipWhile<I, P> where
    I: Send,
    P: Send

impl<I, P> Send for TakeWhile<I, P> where
    I: Send,
    P: Send

impl<I, St, F> Send for Scan<I, St, F> where
    F: Send,
    I: Send,
    St: Send

impl<I, U, F> Send for FlatMap<I, U, F> where
    F: Send,
    I: Send,
    <U as IntoIterator>::IntoIter: Send

impl<Idx> Send for std::ops::Range<Idx> where
    Idx: Send

impl<Idx> Send for RangeFrom<Idx> where
    Idx: Send

impl<Idx> Send for RangeInclusive<Idx> where
    Idx: Send

impl<Idx> Send for RangeTo<Idx> where
    Idx: Send

impl<Idx> Send for RangeToInclusive<Idx> where
    Idx: Send

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

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

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

impl<K, V> Send for std::collections::hash_map::IntoIter<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<P> Send for Pin<P> where
    P: Send

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

impl<R> Send for std::io::Bytes<R> where
    R: Send

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

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

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

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

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

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

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

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

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

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

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

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

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

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

impl<T> Send for std::io::Take<T> where
    T: Send

impl<T> Send for std::iter::Empty<T> where
    T: Send

impl<T> Send for std::iter::Once<T> where
    T: Send

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

impl<T> Send for Discriminant<T>

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

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

impl<T> Send for std::result::IntoIter<T> where
    T: Send

impl<T> Send for std::sync::mpsc::IntoIter<T> where
    T: Send

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

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

impl<T> Send for LocalKey<T>

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

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

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

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

impl<T, U> Send for std::io::Chain<T, U> where
    T: Send,
    U: Send

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

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

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

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

impl<W> Send for BufWriter<W> where
    W: Send

impl<W> Send for IntoInnerError<W> where
    W: Send

impl<W> Send for LineWriter<W> where
    W: Send

impl<Y, R> Send for GeneratorState<Y, R> where
    R: Send,
    Y: Send