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 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 Argumentimpl Send for FormatSpec
impl Send for FormatSpecimpl Send for Alignment
impl Send for Alignmentimpl Send for Count
impl Send for Countimpl Send for Position
impl Send for PositionImplementors
impl<T> !Send for *mut T where
T: ?Sized,impl<T> Send for Cell<T> where
T: Send,impl<T> Send for AtomicPtr<T>impl<T> Send for RefCell<T> where
T: Send + ?Sized,impl<'a, T> Send for &'a mut T where
T: Send + ?Sized,impl<T> !Send for NonNull<T> where
T: ?Sized,impl<T> !Send for *const T where
T: ?Sized,impl<'a, T> Send for std::slice::Iter<'a, T> where
T: Sync,impl<'a, T> Send for std::slice::IterMut<'a, T> where
T: Send,impl<'a, T> Send for &'a T where
T: Sync + ?Sized,impl<T> Send for std::sync::Weak<T> where
T: Send + Sync + ?Sized,impl<T> Send for Arc<T> where
T: Send + Sync + ?Sized,impl<T> Send for std::vec::IntoIter<T> where
T: Send,impl<'a, T> Send for std::collections::linked_list::IterMut<'a, T> where
T: Send,impl<T> Send for LinkedList<T> where
T: Send,impl<T> !Send for std::rc::Weak<T> where
T: ?Sized,impl<'a, T> Send for std::vec::Drain<'a, T> where
T: Send,impl<'a> Send for std::string::Drain<'a>impl<'a, T> Send for std::collections::linked_list::Iter<'a, T> where
T: Sync,impl<T> !Send for Rc<T> where
T: ?Sized,impl<'a, T> Send for std::collections::vec_deque::Drain<'a, T> where
T: Send,impl !Send for Argsimpl !Send for ArgsOsimpl !Send for Selectimpl<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::Onceimpl<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 TypeIdimpl Send for BorrowErrorimpl Send for BorrowMutErrorimpl<'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::Orderingimpl<T> Send for Reverse<T> where
T: Send,impl<H> Send for BuildHasherDefault<H> where
H: Send,impl Send for SipHasherimpl<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<A> Send for std::iter::Repeat<A> where
A: Send,impl<F> Send for RepeatWith<F> where
F: 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: ?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 RangeTo<Idx> where
Idx: Send,impl<Idx> Send for RangeInclusive<Idx> where
Idx: Send,impl<Idx> Send for RangeToInclusive<Idx> where
Idx: Send,impl<Idx> Send for RangeFrom<Idx> where
Idx: Send,impl Send for RangeFullimpl<T> Send for Bound<T> where
T: Send,impl<Y, R> Send for GeneratorState<Y, R> where
R: Send,
Y: Send,impl<Idx> Send for std::ops::Range<Idx> where
Idx: Send,impl !Send for TraitObjectimpl<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 NoneErrorimpl<T: ?Sized> Send for Box<T> where
T: Send,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> !Send for Arguments<'a>impl<'a, 'b> !Send for DebugTuple<'a, 'b>impl<'a, 'b> !Send for DebugStruct<'a, 'b>impl<'a, 'b> !Send for DebugList<'a, 'b>impl<'a, 'b> !Send for DebugMap<'a, 'b>impl<'a> !Send for Formatter<'a>impl Send for std::fmt::Errorimpl<'a, 'b> !Send for DebugSet<'a, 'b>impl<'a, T> Send for Windows<'a, T> where
T: Sync,impl<'a, T> Send for Chunks<'a, T> where
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 RSplitMut<'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, P> Send for std::slice::RSplitN<'a, T, P> where
P: Send,
T: Sync,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, 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> Send for ExactChunks<'a, T> where
T: Sync,impl<'a, T> Send for ExactChunksMut<'a, T> where
T: Send,impl<'a, T> Send for ChunksMut<'a, T> where
T: Send,impl<'a, P> Send for std::str::RSplit<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl<'a> Send for std::str::Lines<'a>impl Send for Utf8Errorimpl<'a> Send for std::str::Chars<'a>impl<'a, P> Send for MatchIndices<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl<'a> Send for std::str::Bytes<'a>impl<'a, P> Send for RMatchIndices<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl<'a> Send for EncodeUtf16<'a>impl<'a, P> Send for Matches<'a, P> where
<P as Pattern<'a>>::Searcher: Send,impl<'a> Send for SplitWhitespace<'a>impl Send for SearchStepimpl<'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<'a, P> Send for std::str::SplitN<'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 RMatches<'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> Send for LinesAny<'a>impl<'a, P> Send for SplitTerminator<'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 Send for ParseBoolErrorimpl<'a> Send for CharIndices<'a>impl Send for Stringimpl Send for FromUtf8Errorimpl Send for FromUtf16Errorimpl Send for ParseErrorimpl<T> Send for Vec<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 EscapeUnicodeimpl Send for std::char::EscapeDefaultimpl Send for EscapeDebugimpl Send for ToLowercaseimpl Send for ToUppercaseimpl<I> Send for DecodeUtf8<I> where
I: Send,impl Send for ParseCharErrorimpl Send for CharTryFromErrorimpl Send for DecodeUtf16Errorimpl Send for UnicodeVersionimpl Send for InvalidSequenceimpl<I> Send for DecodeUtf16<I> where
I: Send,impl Send for i8x2impl Send for u8x2impl Send for u32x4impl Send for m32x2impl Send for i16x2impl Send for i16x16impl Send for u64x4impl Send for u8x4impl Send for u64x2impl Send for m16x16impl Send for u16x16impl Send for m64x4impl Send for u16x4impl Send for i64x2impl Send for i16x4impl Send for m64x2impl Send for m16x4impl Send for m1x32impl Send for i8x16impl Send for i64x8impl Send for m1x8impl Send for u32x8impl Send for m32x8impl Send for i8x32impl Send for i8x64impl Send for u8x16impl Send for m16x8impl Send for u8x64impl Send for u64x8impl Send for f64x8impl Send for i32x4impl Send for u32x2impl Send for f32x2impl Send for u16x8impl Send for i32x2impl Send for u32x16impl Send for i32x16impl Send for f32x4impl Send for u16x2impl Send for m1x16impl Send for f32x16impl Send for f64x4impl Send for m8x2impl Send for i64x4impl Send for m8x4impl Send for i8x4impl Send for u16x32impl Send for f64x2impl Send for i16x32impl Send for m8x16impl Send for m8x32impl Send for m8x8impl Send for f32x8impl Send for i32x8impl Send for i16x8impl Send for m1x64impl Send for u8x32impl Send for i8x8impl Send for u8x8impl Send for m16x2impl Send for m32x4impl<T> Send for LocalKey<T>impl Send for AccessErrorimpl Send for Builderimpl Send for ThreadIdimpl Send for Threadimpl<T> Send for JoinHandle<T> where
T: Send,impl Send for std::ascii::EscapeDefaultimpl<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, K, V> Send for std::collections::btree_map::IterMut<'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::Entry<'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<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::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::Iter<'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::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<T> Send for std::collections::btree_set::IntoIter<T> where
T: Send,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<'a, T> Send for std::collections::btree_set::Iter<'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::Range<'a, T> where
T: Sync,impl<'a, T> Send for std::collections::btree_set::Intersection<'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 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 Send for CollectionAllocErrimpl<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 Send for RandomStateimpl Send for DefaultHasherimpl<'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 Varsimpl !Send for VarsOsimpl<'a> Send for SplitPaths<'a>impl Send for JoinPathsErrorimpl Send for VarErrorimpl Send for CStringimpl Send for CStrimpl Send for NulErrorimpl Send for IntoStringErrorimpl Send for FromBytesWithNulErrorimpl Send for OsStringimpl Send for OsStrimpl Send for Fileimpl Send for Metadataimpl Send for ReadDirimpl Send for DirEntryimpl Send for OpenOptionsimpl Send for Permissionsimpl Send for FileTypeimpl Send for DirBuilderimpl<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::Errorimpl Send for Sinkimpl Send for std::io::Emptyimpl Send for std::io::Repeatimpl Send for Stdinimpl Send for Stdoutimpl Send for Stderrimpl<'a> !Send for StdoutLock<'a>impl<'a> !Send for StderrLock<'a>impl<'a> !Send for StdinLock<'a>impl Send for Initializerimpl<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 ErrorKindimpl Send for SeekFromimpl Send for CharsErrorimpl Send for Ipv4Addrimpl Send for Ipv6Addrimpl Send for SocketAddrV4impl Send for SocketAddrV6impl Send for TcpStreamimpl Send for TcpListenerimpl<'a> Send for std::net::Incoming<'a>impl Send for UdpSocketimpl Send for AddrParseErrorimpl Send for IpAddrimpl Send for Ipv6MulticastScopeimpl Send for std::net::SocketAddrimpl Send for Shutdownimpl Send for FpCategoryimpl Send for ParseIntErrorimpl Send for ParseFloatErrorimpl Send for TryFromIntErrorimpl<T> Send for Wrapping<T> where
T: Send,impl Send for NonZeroU8impl Send for NonZeroI8impl Send for NonZeroU16impl Send for NonZeroI16impl Send for NonZeroU32impl Send for NonZeroI32impl Send for NonZeroU64impl Send for NonZeroI64impl Send for NonZeroU128impl Send for NonZeroI128impl Send for NonZeroUsizeimpl Send for NonZeroIsizeimpl Send for std::os::unix::net::SocketAddrimpl Send for UnixStreamimpl Send for UnixListenerimpl<'a> Send for std::os::unix::net::Incoming<'a>impl Send for UnixDatagramimpl<'a> Send for EncodeWide<'a>impl Send for statimpl Send for c_voidimpl<'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 PathBufimpl Send for Pathimpl Send for StripPrefixErrorimpl<'a> Send for Display<'a>impl<'a> Send for Prefix<'a>impl<'a> Send for Component<'a>impl Send for Childimpl Send for ChildStdinimpl Send for ChildStdoutimpl Send for ChildStderrimpl Send for Commandimpl Send for Outputimpl Send for Stdioimpl Send for ExitStatusimpl Send for ExitCodeimpl Send for AtomicBoolimpl Send for std::sync::atomic::Orderingimpl Send for AtomicI8impl Send for AtomicU8impl Send for AtomicI16impl Send for AtomicU16impl Send for AtomicI32impl Send for AtomicU32impl Send for AtomicI64impl Send for AtomicU64impl Send for AtomicIsizeimpl Send for AtomicUsizeimpl Send for Barrierimpl Send for BarrierWaitResultimpl Send for Condvarimpl Send for WaitTimeoutResultimpl Send for OnceStateimpl<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 RecvErrorimpl Send for TryRecvErrorimpl Send for RecvTimeoutErrorimpl<T> Send for TrySendError<T> where
T: Send,impl Send for Durationimpl Send for Instantimpl Send for SystemTimeimpl Send for SystemTimeErrorimpl Send for Globalimpl Send for System