Trait std::marker::Send 1.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 Rc
s 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 Argument
impl Send for FormatSpec
impl Send for FormatSpec
impl Send for Alignment
impl Send for Alignment
impl Send for Count
impl Send for Count
impl Send for Position
impl Send for Position
impl Send for __m256d
impl Send for __m256d
impl Send for __m64
impl Send for __m64
impl Send for __m128d
impl Send for __m128d
impl Send for __m128i
impl Send for __m128i
impl Send for __m128
impl Send for __m128
impl Send for __m256i
impl Send for __m256i
impl Send for __m256
impl Send for __m256
impl Send for CpuidResult
impl Send for CpuidResult
Implementors
impl<T> Send for Cell<T> where
T: Send,impl<'a, T> Send for &'a T where
T: Sync + ?Sized,impl<T> Send for Unique<T> where
T: Send + ?Sized,impl<T> Send for RefCell<T> where
T: Send + ?Sized,impl<T> Send for AtomicPtr<T>
impl<T> !Send for *const T where
T: ?Sized,impl<T> !Send for NonNull<T> where
T: ?Sized,impl<'a, T> Send for std::slice::Iter<'a, T> where
T: Sync,impl<T> !Send for *mut T where
T: ?Sized,impl<'a, T> Send for std::slice::IterMut<'a, T> where
T: Send,impl<'a, T> Send for &'a mut T where
T: Send + ?Sized,impl<T> Send for LinkedList<T> where
T: Send,impl<'a, T> Send for std::collections::vec_deque::Drain<'a, T> where
T: Send,impl<T> !Send for Rc<T> where
T: ?Sized,impl<T> Send for std::sync::Weak<T> where
T: Send + Sync + ?Sized,impl<'a, T> Send for std::collections::linked_list::IterMut<'a, T> where
T: Send,impl<'a> Send for std::string::Drain<'a>
impl<T> Send for Arc<T> where
T: Send + Sync + ?Sized,impl<T> !Send for std::rc::Weak<T> where
T: ?Sized,impl<'a, T> Send for std::collections::linked_list::Iter<'a, T> where
T: Sync,impl<'a, T> Send for std::vec::Drain<'a, T> where
T: Send,impl<T> Send for std::vec::IntoIter<T> where
T: Send,impl !Send for Args
impl !Send for ArgsOs
impl !Send for Select
impl<T: Send> Send for Receiver<T>
impl<T: Send> Send for Sender<T>
impl<T: Send> Send for SyncSender<T>
impl<T: ?Sized + Send> Send for Mutex<T>
impl<'a, T: ?Sized> !Send for MutexGuard<'a, T>
impl Send for std::sync::Once
impl<T: ?Sized + Send> Send for RwLock<T>
impl<'a, T: ?Sized> !Send for RwLockReadGuard<'a, T>
impl<'a, T: ?Sized> !Send for RwLockWriteGuard<'a, T>
Auto implementors
impl Send for TypeId
impl Send for BorrowError
impl Send for BorrowMutError
impl<'b, T> !Send for Ref<'b, T>
impl<'b, T> !Send for RefMut<'b, T>
impl<T: ?Sized> Send for UnsafeCell<T> where
T: Send,impl Send for std::cmp::Ordering
impl<T> Send for Reverse<T> where
T: Send,impl<H> Send for BuildHasherDefault<H> where
H: Send,impl Send for SipHasher
impl<T> Send for Rev<T> where
T: Send,impl<I> Send for Cloned<I> where
I: Send,impl<I> Send for Cycle<I> where
I: Send,impl<I> Send for StepBy<I> where
I: 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<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, F> Send for FilterMap<I, F> where
F: Send,
I: Send,impl<I> Send for Enumerate<I> where
I: Send,impl<I> Send for Peekable<I> where
I: Send,
<I as Iterator>::Item: 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> Send for Skip<I> where
I: Send,impl<I> Send for std::iter::Take<I> where
I: 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<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, F> Send for Inspect<I, F> where
F: Send,
I: Send,impl<T> Send for std::iter::Once<T> where
T: Send,impl<T> Send for std::iter::Empty<T> where
T: Send,impl<A> Send for std::iter::Repeat<A> where
A: Send,impl<F> Send for RepeatWith<F> where
F: Send,impl<T: ?Sized> Send for PhantomData<T> where
T: Send,impl<T> Send for Discriminant<T>
impl<T> Send for ManuallyDrop<T> where
T: Send,impl<'a, T: ?Sized> Send for Pin<'a, T> where
T: Send,impl<Idx> Send for RangeFrom<Idx> where
Idx: Send,impl<T> Send for Bound<T> where
T: Send,impl<Idx> Send for RangeInclusive<Idx> where
Idx: Send,impl<Idx> Send for std::ops::Range<Idx> where
Idx: Send,impl<Idx> Send for RangeTo<Idx> where
Idx: Send,impl<Y, R> Send for GeneratorState<Y, R> where
R: Send,
Y: Send,impl Send for RangeFull
impl<Idx> Send for RangeToInclusive<Idx> where
Idx: Send,impl !Send for TraitObject
impl<T, E> Send for Result<T, E> where
E: Send,
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<T> Send for std::result::IntoIter<T> where
T: Send,impl<T> Send for Option<T> where
T: Send,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> Send for std::option::IntoIter<A> where
A: Send,impl Send for NoneError
impl Send for ExchangeHeapSingleton
impl<T: ?Sized> Send for Box<T> where
T: Send,impl<T> !Send for IntermediateBox<T>
impl<T: ?Sized> Send for PinBox<T> where
T: Send,impl<'a, B: ?Sized> Send for Cow<'a, B> where
B: Sync,
<B as ToOwned>::Owned: Send,impl<'a, 'b> !Send for DebugSet<'a, 'b>
impl<'a, 'b> !Send for DebugList<'a, 'b>
impl<'a, 'b> !Send for DebugTuple<'a, 'b>
impl<'a> !Send for Formatter<'a>
impl Send for std::fmt::Error
impl<'a> !Send for Arguments<'a>
impl<'a, 'b> !Send for DebugStruct<'a, 'b>
impl<'a, 'b> !Send for DebugMap<'a, 'b>
impl<'a, T> Send for ExactChunks<'a, T> where
T: Sync,impl<'a, T> Send for Chunks<'a, T> where
T: Sync,impl<'a, T, P> Send for RSplitNMut<'a, T, P> where
P: Send,
T: Send,impl<'a, T, P> Send for SplitMut<'a, T, P> where
P: Send,
T: Send,impl<'a, T> Send for ChunksMut<'a, T> where
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 RSplitMut<'a, T, P> where
P: Send,
T: Send,impl<'a, T> Send for Windows<'a, T> where
T: Sync,impl<'a, T, P> Send for std::slice::RSplitN<'a, T, P> where
P: Send,
T: Sync,impl<'a, T, P> Send for std::slice::RSplit<'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> Send for ExactChunksMut<'a, T> where
T: Send,impl<'a, T, P> Send for std::slice::SplitN<'a, T, P> where
P: Send,
T: Sync,impl<'a> Send for EncodeUtf16<'a>
impl<'a, P> Send for SplitTerminator<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl<'a, P> Send for MatchIndices<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl<'a> Send for std::str::Chars<'a>
impl<'a, P> Send for std::str::Split<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl<'a> Send for LinesAny<'a>
impl<'a> Send for std::str::Bytes<'a>
impl<'a, P> Send for RMatches<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl<'a> Send for SplitWhitespace<'a>
impl<'a> Send for std::str::Lines<'a>
impl<'a, P> Send for std::str::RSplitN<'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 std::str::RSplit<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl Send for SearchStep
impl<'a> Send for CharSearcher<'a>
impl<'a, 'b> Send for CharSliceSearcher<'a, 'b>
impl<'a, F> Send for CharPredicateSearcher<'a, F> where
F: Send,impl<'a, 'b> Send for StrSearcher<'a, 'b>
impl Send for Utf8Error
impl<'a> Send for CharIndices<'a>
impl Send for ParseBoolError
impl<'a, P> Send for RSplitTerminator<'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 RMatchIndices<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl Send for String
impl Send for FromUtf8Error
impl Send for FromUtf16Error
impl Send for ParseError
impl<T> Send for Vec<T> where
T: Send,impl<'a, T> Send for std::vec::PlaceBack<'a, T> where
T: Send,impl<'a, I> Send for Splice<'a, I> where
I: Send,
<I as Iterator>::Item: Send,impl<'a, T, F> Send for std::vec::DrainFilter<'a, T, F> where
F: Send,
T: Send,impl Send for ToLowercase
impl Send for ToUppercase
impl<I> Send for DecodeUtf16<I> where
I: Send,impl Send for DecodeUtf16Error
impl<I> Send for DecodeUtf8<I> where
I: Send,impl Send for CharTryFromError
impl Send for std::char::EscapeDefault
impl Send for UnicodeVersion
impl Send for ParseCharError
impl Send for EscapeDebug
impl Send for EscapeUnicode
impl Send for u16x2
impl Send for i16x16
impl Send for f32x4
impl Send for u64x8
impl Send for i64x8
impl Send for u64x2
impl Send for b8x32
impl Send for u16x4
impl Send for i8x64
impl Send for u16x8
impl Send for u8x32
impl Send for i8x8
impl Send for f64x4
impl Send for i8x2
impl Send for i8x16
impl Send for i8x4
impl Send for u16x16
impl Send for i32x4
impl Send for u8x64
impl Send for i16x32
impl Send for u8x8
impl Send for b8x16
impl Send for b8x2
impl Send for u8x2
impl Send for i32x8
impl Send for u32x2
impl Send for i32x2
impl Send for i32x16
impl Send for f32x8
impl Send for u8x16
impl Send for b8x8
impl Send for u8x4
impl Send for f64x2
impl Send for u32x4
impl Send for f32x2
impl Send for u32x8
impl Send for i64x2
impl Send for i16x8
impl Send for b8x4
impl Send for i16x4
impl Send for f64x8
impl Send for i16x2
impl Send for u16x32
impl Send for i8x32
impl Send for u64x4
impl Send for u32x16
impl Send for i64x4
impl Send for b8x64
impl Send for f32x16
impl<T> Send for LocalKey<T>
impl Send for AccessError
impl Send for Builder
impl Send for ThreadId
impl Send for Thread
impl<T> Send for JoinHandle<T> where
T: Send,impl Send for std::ascii::EscapeDefault
impl<T> Send for BinaryHeap<T> where
T: Send,impl<K, V> Send for BTreeMap<K, V> where
K: Send,
V: Send,impl<T> Send for BTreeSet<T> where
T: Send,impl<T> Send for VecDeque<T> where
T: Send,impl<'a, T> Send for PeekMut<'a, T> where
T: Send,impl<'a, T> Send for std::collections::binary_heap::Iter<'a, T> where
T: Sync,impl<T> Send for std::collections::binary_heap::IntoIter<T> where
T: Send,impl<'a, T> Send for std::collections::binary_heap::Drain<'a, T> where
T: Send,impl<'a, T> !Send for BinaryHeapPlace<'a, T>
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::btree_map::Entry<'a, K, V> where
K: Send,
V: Send,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::Keys<'a, K, V> where
K: Sync,
V: Sync,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::OccupiedEntry<'a, 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<'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::Range<'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::Iter<'a, K, V> where
K: Sync,
V: 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::Difference<'a, T> where
T: Sync,impl<T> Send for std::collections::btree_set::IntoIter<T> where
T: Send,impl<'a, T> Send for std::collections::btree_set::Range<'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::Union<'a, T> where
T: Sync,impl<'a, T> Send for std::collections::btree_set::Iter<'a, T> where
T: Sync,impl<T> Send for std::collections::linked_list::IntoIter<T> where
T: Send,impl<'a, T, F> !Send for std::collections::linked_list::DrainFilter<'a, T, F>
impl<'a, T> !Send for FrontPlace<'a, T>
impl<'a, T> !Send for BackPlace<'a, T>
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<T> Send for std::collections::vec_deque::IntoIter<T> where
T: Send,impl<'a, T> Send for std::collections::vec_deque::PlaceBack<'a, T> where
T: Send,impl<'a, T> Send for PlaceFront<'a, T> where
T: Send,impl Send for CollectionAllocErr
impl<K, V, S> Send for HashMap<K, V, S> where
K: Send,
S: Send,
V: Send,impl<T, S> Send for HashSet<T, S> where
S: Send,
T: 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<K, V> Send for std::collections::hash_map::IntoIter<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::Drain<'a, K, V> where
K: Send,
V: Send,impl<'a, K, V> Send for std::collections::hash_map::ValuesMut<'a, K, V> where
K: Send,
V: Send,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 EntryPlace<'a, K, V>
impl Send for RandomState
impl Send for DefaultHasher
impl<'a, K, V> !Send for std::collections::hash_map::Entry<'a, K, V>
impl<'a, K> Send for std::collections::hash_set::Iter<'a, K> where
K: Sync,impl<K> Send for std::collections::hash_set::IntoIter<K> where
K: Send,impl<'a, K> Send for std::collections::hash_set::Drain<'a, K> where
K: Send,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::Difference<'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 !Send for Vars
impl !Send for VarsOs
impl<'a> Send for SplitPaths<'a>
impl Send for JoinPathsError
impl Send for VarError
impl Send for CString
impl Send for CStr
impl Send for NulError
impl Send for IntoStringError
impl Send for FromBytesWithNulError
impl Send for OsString
impl Send for OsStr
impl Send for File
impl Send for Metadata
impl Send for ReadDir
impl Send for DirEntry
impl Send for OpenOptions
impl Send for Permissions
impl Send for FileType
impl Send for DirBuilder
impl<R> Send for BufReader<R> where
R: Send,impl<W> Send for BufWriter<W> where
W: Send,impl<W> Send for LineWriter<W> where
W: Send,impl<W> Send for IntoInnerError<W> where
W: Send,impl<T> Send for Cursor<T> where
T: Send,impl Send for std::io::Error
impl Send for Sink
impl Send for std::io::Empty
impl Send for std::io::Repeat
impl Send for Stdin
impl Send for Stdout
impl Send for Stderr
impl<'a> !Send for StdoutLock<'a>
impl<'a> !Send for StderrLock<'a>
impl<'a> !Send for StdinLock<'a>
impl Send for Initializer
impl<T, U> Send for std::io::Chain<T, U> where
T: Send,
U: Send,impl<T> Send for std::io::Take<T> where
T: Send,impl<R> Send for std::io::Bytes<R> where
R: Send,impl<R> Send for std::io::Chars<R> where
R: Send,impl<B> Send for std::io::Split<B> where
B: Send,impl<B> Send for std::io::Lines<B> where
B: Send,impl Send for ErrorKind
impl Send for SeekFrom
impl Send for CharsError
impl Send for Ipv4Addr
impl Send for Ipv6Addr
impl Send for SocketAddrV4
impl Send for SocketAddrV6
impl Send for TcpStream
impl Send for TcpListener
impl<'a> Send for std::net::Incoming<'a>
impl Send for UdpSocket
impl Send for AddrParseError
impl Send for LookupHost
impl Send for IpAddr
impl Send for Ipv6MulticastScope
impl Send for std::net::SocketAddr
impl Send for Shutdown
impl Send for FpCategory
impl Send for ParseIntError
impl Send for ParseFloatError
impl Send for TryFromIntError
impl<T> Send for Wrapping<T> where
T: Send,impl Send for NonZeroU8
impl Send for NonZeroI8
impl Send for NonZeroU16
impl Send for NonZeroI16
impl Send for NonZeroU32
impl Send for NonZeroI32
impl Send for NonZeroU64
impl Send for NonZeroI64
impl Send for NonZeroU128
impl Send for NonZeroI128
impl Send for NonZeroUsize
impl Send for NonZeroIsize
impl Send for std::os::unix::net::SocketAddr
impl Send for UnixStream
impl Send for UnixListener
impl<'a> Send for std::os::unix::net::Incoming<'a>
impl Send for UnixDatagram
impl<'a> Send for EncodeWide<'a>
impl Send for stat
impl Send for c_void
impl<'a> !Send for PanicInfo<'a>
impl<'a> Send for Location<'a>
impl<T> Send for AssertUnwindSafe<T> where
T: Send,impl<'a> Send for PrefixComponent<'a>
impl<'a> Send for Components<'a>
impl<'a> Send for std::path::Iter<'a>
impl<'a> Send for Ancestors<'a>
impl Send for PathBuf
impl Send for Path
impl Send for StripPrefixError
impl<'a> Send for Display<'a>
impl<'a> Send for Prefix<'a>
impl<'a> Send for Component<'a>
impl Send for Child
impl Send for ChildStdin
impl Send for ChildStdout
impl Send for ChildStderr
impl Send for Command
impl Send for Output
impl Send for Stdio
impl Send for ExitStatus
impl Send for ExitCode
impl Send for AtomicBool
impl Send for std::sync::atomic::Ordering
impl Send for AtomicI8
impl Send for AtomicU8
impl Send for AtomicI16
impl Send for AtomicU16
impl Send for AtomicI32
impl Send for AtomicU32
impl Send for AtomicI64
impl Send for AtomicU64
impl Send for AtomicIsize
impl Send for AtomicUsize
impl Send for Barrier
impl Send for BarrierWaitResult
impl Send for Condvar
impl Send for WaitTimeoutResult
impl Send for OnceState
impl<T> Send for PoisonError<T> where
T: Send,impl<T> Send for TryLockError<T> where
T: Send,impl<'rx, T> !Send for Handle<'rx, T>
impl<'a, T> !Send for std::sync::mpsc::Iter<'a, T>
impl<'a, T> !Send for TryIter<'a, T>
impl<T> Send for std::sync::mpsc::IntoIter<T> where
T: Send,impl<T> Send for SendError<T> where
T: Send,impl Send for RecvError
impl Send for TryRecvError
impl Send for RecvTimeoutError
impl<T> Send for TrySendError<T> where
T: Send,impl Send for Duration
impl Send for Instant
impl Send for SystemTime
impl Send for SystemTimeError
impl Send for Heap
impl Send for System