Trait Sync

1.55.0 · Source
pub unsafe auto trait Sync { }
Expand description

Types for which it is safe to share references between threads.

This trait is automatically implemented when the compiler determines it’s appropriate.

The precise definition is: a type T is Sync if and only if &T is Send. In other words, if there is no possibility of undefined behavior (including data races) when passing &T references between threads.

As one would expect, primitive types like u8 and f64 are all Sync, and so are simple aggregate types containing them, like tuples, structs and enums. More examples of basic Sync types include “immutable” types like &T, and those with simple inherited mutability, such as Box<T>, Vec<T> and most other collection types. (Generic parameters need to be Sync for their container to be Sync.)

A somewhat surprising consequence of the definition is that &mut T is Sync (if T is Sync) even though it seems like that might provide unsynchronized mutation. The trick is that a mutable reference behind a shared reference (that is, & &mut T) becomes read-only, as if it were a & &T. Hence there is no risk of a data race.

A shorter overview of how Sync and Send relate to referencing:

  • &T is Send if and only if T is Sync
  • &mut T is Send if and only if T is Send
  • &T and &mut T are Sync if and only if T is Sync

Types that are not Sync are those that have “interior mutability” in a non-thread-safe form, such as Cell and RefCell. These types allow for mutation of their contents even through an immutable, shared reference. For example the set method on Cell<T> takes &self, so it requires only a shared reference &Cell<T>. The method performs no synchronization, thus Cell cannot be Sync.

Another example of a non-Sync type is the reference-counting pointer Rc. Given any reference &Rc<T>, you can clone a new Rc<T>, modifying the reference counts in a non-atomic way.

For cases when one does need thread-safe interior mutability, Rust provides atomic data types, as well as explicit locking via sync::Mutex and sync::RwLock. These types ensure that any mutation cannot cause data races, hence the types are Sync. Likewise, sync::Arc provides a thread-safe analogue of Rc.

Any types with interior mutability must also use the cell::UnsafeCell wrapper around the value(s) which can be mutated through a shared reference. Failing to doing this is undefined behavior. For example, transmute-ing from &T to &mut T is invalid.

See the Nomicon for more details about Sync.

Implementors§

1.26.0 · Source§

impl !Sync for Args

1.26.0 · Source§

impl !Sync for ArgsOs

1.0.0 · Source§

impl !Sync for Arguments<'_>

Source§

impl !Sync for LocalWaker

Source§

impl Sync for Select<'_>

Source§

impl Sync for Collector

Source§

impl Sync for Unparker

Source§

impl Sync for crossbeam_utils::thread::Scope<'_>

Source§

impl Sync for HazardSlot

1.6.0 · Source§

impl Sync for cs431_homework::test::loom::string::Drain<'_>

1.0.0 · Source§

impl Sync for AtomicBool

1.34.0 · Source§

impl Sync for AtomicI8

1.34.0 · Source§

impl Sync for AtomicI16

1.34.0 · Source§

impl Sync for AtomicI32

1.34.0 · Source§

impl Sync for AtomicI64

1.0.0 · Source§

impl Sync for AtomicIsize

1.34.0 · Source§

impl Sync for AtomicU8

1.34.0 · Source§

impl Sync for AtomicU16

1.34.0 · Source§

impl Sync for AtomicU32

1.34.0 · Source§

impl Sync for AtomicU64

1.0.0 · Source§

impl Sync for AtomicUsize

1.36.0 · Source§

impl Sync for Waker

Source§

impl Sync for core::ffi::c_str::Bytes<'_>

1.44.0 · Source§

impl<'a> Sync for IoSlice<'a>

1.44.0 · Source§

impl<'a> Sync for IoSliceMut<'a>

Source§

impl<Dyn> Sync for DynMetadata<Dyn>
where Dyn: ?Sized,

Source§

impl<K, V> Sync for List<K, V>
where K: Sync, V: Sync,

Source§

impl<L, T> Sync for Lock<L, T>
where L: RawLock, T: Send,

Source§

impl<L, T> Sync for LockGuard<'_, L, T>
where L: RawLock, T: Sync,

1.0.0 · Source§

impl<T> !Sync for *const T
where T: ?Sized,

1.0.0 · Source§

impl<T> !Sync for *mut T
where T: ?Sized,

1.0.0 · Source§

impl<T> !Sync for Cell<T>
where T: ?Sized,

1.70.0 · Source§

impl<T> !Sync for OnceCell<T>

1.0.0 · Source§

impl<T> !Sync for RefCell<T>
where T: ?Sized,

1.0.0 · Source§

impl<T> !Sync for UnsafeCell<T>
where T: ?Sized,

1.25.0 · Source§

impl<T> !Sync for NonNull<T>
where T: ?Sized,

NonNull pointers are not Sync because the data they reference may be aliased.

1.0.0 · Source§

impl<T> !Sync for cs431_homework::test::loom::sync::mpsc::Receiver<T>

Source§

impl<T> Sync for crossbeam_channel::channel::Receiver<T>
where T: Send,

Source§

impl<T> Sync for crossbeam_channel::channel::Sender<T>
where T: Send,

Source§

impl<T> Sync for Atomic<T>
where T: Pointable + Send + Sync + ?Sized,

Source§

impl<T> Sync for AtomicCell<T>
where T: Send,

Source§

impl<T> Sync for CachePadded<T>
where T: Sync,

Source§

impl<T> Sync for ShardedLock<T>
where T: Send + Sync + ?Sized,

Source§

impl<T> Sync for ShardedLockReadGuard<'_, T>
where T: Sync + ?Sized,

Source§

impl<T> Sync for ShardedLockWriteGuard<'_, T>
where T: Sync + ?Sized,

Source§

impl<T> Sync for crossbeam_utils::thread::ScopedJoinHandle<'_, T>

Source§

impl<T> Sync for ReadGuard<'_, T>
where T: Sync,

Source§

impl<T> Sync for SeqLock<T>
where T: Send + Sync,

Source§

impl<T> Sync for WriteGuard<'_, T>
where T: Sync,

Source§

impl<T> Sync for Queue<T>
where T: Send,

Source§

impl<T> Sync for Stack<T>
where T: Send,

Source§

impl<T> Sync for ThinBox<T>
where T: Sync + ?Sized,

ThinBox<T> is Sync if T is Sync because the data is owned.

Source§

impl<T> Sync for SyncUnsafeCell<T>
where T: Sync + ?Sized,

1.0.0 · Source§

impl<T> Sync for cs431_homework::test::loom::collections::linked_list::Iter<'_, T>
where T: Sync,

1.0.0 · Source§

impl<T> Sync for cs431_homework::test::loom::collections::linked_list::IterMut<'_, T>
where T: Sync,

1.28.0 · Source§

impl<T> Sync for NonZero<T>

1.31.0 · Source§

impl<T> Sync for ChunksExactMut<'_, T>
where T: Sync,

1.0.0 · Source§

impl<T> Sync for ChunksMut<'_, T>
where T: Sync,

1.0.0 · Source§

impl<T> Sync for cs431_homework::test::loom::slice::Iter<'_, T>
where T: Sync,

1.0.0 · Source§

impl<T> Sync for cs431_homework::test::loom::slice::IterMut<'_, T>
where T: Sync,

1.31.0 · Source§

impl<T> Sync for RChunksExactMut<'_, T>
where T: Sync,

1.31.0 · Source§

impl<T> Sync for RChunksMut<'_, T>
where T: Sync,

1.0.0 · Source§

impl<T> Sync for AtomicPtr<T>

Source§

impl<T> Sync for cs431_homework::test::loom::sync::mpmc::Receiver<T>
where T: Send,

Source§

impl<T> Sync for cs431_homework::test::loom::sync::mpmc::Sender<T>
where T: Send,

1.72.0 · Source§

impl<T> Sync for cs431_homework::test::loom::sync::mpsc::Sender<T>
where T: Send,

Source§

impl<T> Sync for Exclusive<T>
where T: ?Sized,

Source§

impl<T> Sync for MappedMutexGuard<'_, T>
where T: Sync + ?Sized,

Source§

impl<T> Sync for MappedRwLockReadGuard<'_, T>
where T: Sync + ?Sized,

Source§

impl<T> Sync for MappedRwLockWriteGuard<'_, T>
where T: Sync + ?Sized,

1.0.0 · Source§

impl<T> Sync for Mutex<T>
where T: Send + ?Sized,

T must be Send for Mutex to be Sync. This ensures that the protected data can be accessed safely from multiple threads without causing data races or other unsafe behavior.

Mutex<T> provides mutable access to T to one thread at a time. However, it’s essential for T to be Send because it’s not safe for non-Send structures to be accessed in this manner. For instance, consider Rc, a non-atomic reference counted smart pointer, which is not Send. With Rc, we can have multiple copies pointing to the same heap allocation with a non-atomic reference count. If we were to use Mutex<Rc<_>>, it would only protect one instance of Rc from shared access, leaving other copies vulnerable to potential data races.

Also note that it is not necessary for T to be Sync as &T is only made available to one thread at a time if T is not Sync.

1.19.0 · Source§

impl<T> Sync for MutexGuard<'_, T>
where T: Sync + ?Sized,

T must be Sync for a MutexGuard<T> to be Sync because it is possible to get a &T from &MutexGuard (via Deref).

1.70.0 · Source§

impl<T> Sync for OnceLock<T>
where T: Sync + Send,

Source§

impl<T> Sync for ReentrantLock<T>
where T: Send + ?Sized,

Source§

impl<T> Sync for ReentrantLockGuard<'_, T>
where T: Sync + ?Sized,

1.0.0 · Source§

impl<T> Sync for RwLock<T>
where T: Send + Sync + ?Sized,

1.23.0 · Source§

impl<T> Sync for RwLockReadGuard<'_, T>
where T: Sync + ?Sized,

1.23.0 · Source§

impl<T> Sync for RwLockWriteGuard<'_, T>
where T: Sync + ?Sized,

1.29.0 · Source§

impl<T> Sync for JoinHandle<T>

1.0.0 · Source§

impl<T, A> !Sync for Rc<T, A>
where A: Allocator, T: ?Sized,

Source§

impl<T, A> !Sync for UniqueRc<T, A>
where A: Allocator, T: ?Sized,

1.4.0 · Source§

impl<T, A> !Sync for cs431_homework::test::loom::rc::Weak<T, A>
where A: Allocator, T: ?Sized,

Source§

impl<T, A> Sync for cs431_homework::test::loom::collections::linked_list::Cursor<'_, T, A>
where T: Sync, A: Allocator + Sync,

Source§

impl<T, A> Sync for cs431_homework::test::loom::collections::linked_list::CursorMut<'_, T, A>
where T: Sync, A: Allocator + Sync,

1.0.0 · Source§

impl<T, A> Sync for cs431_homework::test::loom::collections::LinkedList<T, A>
where T: Sync, A: Allocator + Sync,

1.6.0 · Source§

impl<T, A> Sync for cs431_homework::test::loom::collections::vec_deque::Drain<'_, T, A>
where T: Sync, A: Allocator + Sync,

1.0.0 · Source§

impl<T, A> Sync for cs431_homework::test::loom::sync::Arc<T, A>
where T: Sync + Send + ?Sized, A: Allocator + Sync,

1.4.0 · Source§

impl<T, A> Sync for cs431_homework::test::loom::sync::Weak<T, A>
where T: Sync + Send + ?Sized, A: Allocator + Sync,

1.6.0 · Source§

impl<T, A> Sync for cs431_homework::test::loom::vec::Drain<'_, T, A>
where T: Sync, A: Sync + Allocator,

1.0.0 · Source§

impl<T, A> Sync for cs431_homework::test::loom::vec::IntoIter<T, A>
where T: Sync, A: Allocator + Sync,

1.80.0 · Source§

impl<T, F> Sync for LazyLock<T, F>
where T: Sync + Send, F: Send,

Source§

impl<T: Send> Sync for cs431_homework::elim_stack::treiber_stack::Node<T>

Source§

impl<T: Send> Sync for FineGrainedListSet<T>

Source§

impl<T: Sync + Send> Sync for ArcInner<T>

Source§

impl<T: Sync + Send> Sync for cs431_homework::Arc<T>

Source§

impl<T: Sync> Sync for cs431_homework::linked_list::Iter<'_, T>

Source§

impl<T: Sync> Sync for cs431_homework::linked_list::IterMut<'_, T>

Source§

impl<T: Sync> Sync for cs431_homework::LinkedList<T>

Source§

impl<T: Sync> Sync for OptimisticFineGrainedListSet<T>

impl<T: Send> Sync for Injector<T>

impl<T: Send> Sync for Stealer<T>

Auto implementors§

§

impl !Sync for Behavior

§

impl !Sync for cs431_homework::boc::Request

§

impl !Sync for Shield

§

impl !Sync for Job

§

impl !Sync for Vars

§

impl !Sync for VarsOs

§

impl !Sync for OnceState

§

impl !Sync for RawWaker

§

impl Sync for Ops

§

impl Sync for AsciiChar

§

impl Sync for BacktraceStatus

§

impl Sync for cs431_homework::test::loom::cmp::Ordering

§

impl Sync for TryReserveErrorKind

§

impl Sync for Infallible

§

impl Sync for VarError

§

impl Sync for FromBytesWithNulError

§

impl Sync for c_void

§

impl Sync for cs431_homework::test::loom::fmt::Alignment

§

impl Sync for DebugAsHex

§

impl Sync for Sign

§

impl Sync for BasicBlock

§

impl Sync for UnwindTerminateReason

§

impl Sync for ErrorKind

§

impl Sync for SeekFrom

§

impl Sync for IpAddr

§

impl Sync for Ipv6MulticastScope

§

impl Sync for Shutdown

§

impl Sync for cs431_homework::test::loom::net::SocketAddr

§

impl Sync for FpCategory

§

impl Sync for IntErrorKind

§

impl Sync for OneSidedRangeBound

§

impl Sync for AncillaryError

§

impl Sync for BacktraceStyle

§

impl Sync for GetDisjointMutError

§

impl Sync for SearchStep

§

impl Sync for cs431_homework::test::loom::sync::atomic::Ordering

§

impl Sync for RecvTimeoutError

§

impl Sync for TryRecvError

§

impl Sync for HazardBag

§

impl Sync for CancellableTcpListener

§

impl Sync for Handler

§

impl Sync for cs431_homework::hello_server::Report

§

impl Sync for Statistics

§

impl Sync for ThreadPool

§

impl Sync for ThreadPoolInner

§

impl Sync for Worker

§

impl Sync for AllocError

§

impl Sync for Global

§

impl Sync for Layout

§

impl Sync for LayoutError

§

impl Sync for System

§

impl Sync for TypeId

§

impl Sync for CpuidResult

§

impl Sync for __m128

§

impl Sync for __m128bh

§

impl Sync for __m128d

§

impl Sync for __m128h

§

impl Sync for __m128i

§

impl Sync for __m256

§

impl Sync for __m256bh

§

impl Sync for __m256d

§

impl Sync for __m256h

§

impl Sync for __m256i

§

impl Sync for __m512

§

impl Sync for __m512bh

§

impl Sync for __m512d

§

impl Sync for __m512h

§

impl Sync for __m512i

§

impl Sync for bf16

§

impl Sync for TryFromSliceError

§

impl Sync for cs431_homework::test::loom::ascii::EscapeDefault

§

impl Sync for Backtrace

§

impl Sync for BacktraceFrame

§

impl Sync for ByteStr

§

impl Sync for ByteString

§

impl Sync for BorrowError

§

impl Sync for BorrowMutError

§

impl Sync for CharTryFromError

§

impl Sync for DecodeUtf16Error

§

impl Sync for cs431_homework::test::loom::char::EscapeDebug

§

impl Sync for cs431_homework::test::loom::char::EscapeDefault

§

impl Sync for cs431_homework::test::loom::char::EscapeUnicode

§

impl Sync for ParseCharError

§

impl Sync for ToLowercase

§

impl Sync for ToUppercase

§

impl Sync for TryFromCharError

§

impl Sync for UnorderedKeyError

§

impl Sync for TryReserveError

§

impl Sync for JoinPathsError

§

impl Sync for CStr

§

impl Sync for CString

§

impl Sync for FromBytesUntilNulError

§

impl Sync for FromVecWithNulError

§

impl Sync for IntoStringError

§

impl Sync for NulError

§

impl Sync for OsStr

§

impl Sync for OsString

§

impl Sync for cs431_homework::test::loom::fmt::Error

§

impl Sync for FormattingOptions

§

impl Sync for DirBuilder

§

impl Sync for DirEntry

§

impl Sync for File

§

impl Sync for FileTimes

§

impl Sync for FileType

§

impl Sync for Metadata

§

impl Sync for OpenOptions

§

impl Sync for Permissions

§

impl Sync for ReadDir

§

impl Sync for DefaultHasher

§

impl Sync for RandomState

§

impl Sync for SipHasher

§

impl Sync for ReturnToArg

§

impl Sync for UnwindActionArg

§

impl Sync for cs431_homework::test::loom::io::Empty

§

impl Sync for cs431_homework::test::loom::io::Error

§

impl Sync for PipeReader

§

impl Sync for PipeWriter

§

impl Sync for cs431_homework::test::loom::io::Repeat

§

impl Sync for Sink

§

impl Sync for Stderr

§

impl Sync for Stdin

§

impl Sync for Stdout

§

impl Sync for WriterPanicked

§

impl Sync for PhantomPinned

§

impl Sync for Assume

§

impl Sync for AddrParseError

§

impl Sync for IntoIncoming

§

impl Sync for Ipv4Addr

§

impl Sync for Ipv6Addr

§

impl Sync for SocketAddrV4

§

impl Sync for SocketAddrV6

§

impl Sync for TcpListener

§

impl Sync for TcpStream

§

impl Sync for UdpSocket

§

impl Sync for ParseFloatError

§

impl Sync for ParseIntError

§

impl Sync for TryFromIntError

§

impl Sync for RangeFull

§

impl Sync for OwnedFd

§

impl Sync for PidFd

§

impl Sync for stat

§

impl Sync for cs431_homework::test::loom::os::unix::net::SocketAddr

§

impl Sync for SocketCred

§

impl Sync for UCred

§

impl Sync for UnixDatagram

§

impl Sync for UnixListener

§

impl Sync for UnixStream

§

impl Sync for Path

§

impl Sync for PathBuf

§

impl Sync for StripPrefixError

§

impl Sync for Child

§

impl Sync for ChildStderr

§

impl Sync for ChildStdin

§

impl Sync for ChildStdout

§

impl Sync for Command

§

impl Sync for ExitCode

§

impl Sync for ExitStatus

§

impl Sync for ExitStatusError

§

impl Sync for Output

§

impl Sync for Stdio

§

impl Sync for cs431_homework::test::loom::ptr::Alignment

§

impl Sync for DefaultRandomSource

§

impl Sync for ParseBoolError

§

impl Sync for Utf8Error

§

impl Sync for FromUtf8Error

§

impl Sync for FromUtf16Error

§

impl Sync for IntoChars

§

impl Sync for String

§

impl Sync for RecvError

§

impl Sync for Barrier

§

impl Sync for BarrierWaitResult

§

impl Sync for Condvar

§

impl Sync for cs431_homework::test::loom::sync::Once

§

impl Sync for WaitTimeoutResult

§

impl Sync for RawWakerVTable

§

impl Sync for AccessError

§

impl Sync for Builder

§

impl Sync for Thread

§

impl Sync for ThreadId

§

impl Sync for Duration

§

impl Sync for Instant

§

impl Sync for SystemTime

§

impl Sync for SystemTimeError

§

impl Sync for TryFromFloatSecsError

§

impl<'a> !Sync for cs431_homework::test::loom::error::Request<'a>

§

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

§

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

§

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

§

impl<'a> !Sync for PanicHookInfo<'a>

§

impl<'a> !Sync for Context<'a>

§

impl<'a> !Sync for ContextBuilder<'a>

§

impl<'a> Sync for AncillaryData<'a>

§

impl<'a> Sync for Component<'a>

§

impl<'a> Sync for Prefix<'a>

§

impl<'a> Sync for Utf8Pattern<'a>

§

impl<'a> Sync for cs431_homework::hello_server::tcp::Incoming<'a>

§

impl<'a> Sync for SplitPaths<'a>

§

impl<'a> Sync for cs431_homework::test::loom::ffi::os_str::Display<'a>

§

impl<'a> Sync for BorrowedCursor<'a>

§

impl<'a> Sync for StdinLock<'a>

§

impl<'a> Sync for PhantomContravariantLifetime<'a>

§

impl<'a> Sync for PhantomCovariantLifetime<'a>

§

impl<'a> Sync for PhantomInvariantLifetime<'a>

§

impl<'a> Sync for cs431_homework::test::loom::net::Incoming<'a>

§

impl<'a> Sync for cs431_homework::test::loom::os::unix::net::Incoming<'a>

§

impl<'a> Sync for Messages<'a>

§

impl<'a> Sync for ScmCredentials<'a>

§

impl<'a> Sync for ScmRights<'a>

§

impl<'a> Sync for SocketAncillary<'a>

§

impl<'a> Sync for Location<'a>

§

impl<'a> Sync for Ancestors<'a>

§

impl<'a> Sync for Components<'a>

§

impl<'a> Sync for cs431_homework::test::loom::path::Display<'a>

§

impl<'a> Sync for cs431_homework::test::loom::path::Iter<'a>

§

impl<'a> Sync for PrefixComponent<'a>

§

impl<'a> Sync for CommandArgs<'a>

§

impl<'a> Sync for CommandEnvs<'a>

§

impl<'a> Sync for EscapeAscii<'a>

§

impl<'a> Sync for CharSearcher<'a>

§

impl<'a> Sync for cs431_homework::test::loom::str::Bytes<'a>

§

impl<'a> Sync for CharIndices<'a>

§

impl<'a> Sync for Chars<'a>

§

impl<'a> Sync for EncodeUtf16<'a>

§

impl<'a> Sync for cs431_homework::test::loom::str::EscapeDebug<'a>

§

impl<'a> Sync for cs431_homework::test::loom::str::EscapeDefault<'a>

§

impl<'a> Sync for cs431_homework::test::loom::str::EscapeUnicode<'a>

§

impl<'a> Sync for cs431_homework::test::loom::str::Lines<'a>

§

impl<'a> Sync for LinesAny<'a>

§

impl<'a> Sync for SplitAsciiWhitespace<'a>

§

impl<'a> Sync for SplitWhitespace<'a>

§

impl<'a> Sync for Utf8Chunk<'a>

§

impl<'a> Sync for Utf8Chunks<'a>

§

impl<'a, 'b> !Sync for DebugList<'a, 'b>

§

impl<'a, 'b> !Sync for DebugMap<'a, 'b>

§

impl<'a, 'b> !Sync for DebugSet<'a, 'b>

§

impl<'a, 'b> !Sync for DebugStruct<'a, 'b>

§

impl<'a, 'b> !Sync for DebugTuple<'a, 'b>

§

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

§

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

§

impl<'a, 'b, const N: usize> Sync for CharArrayRefSearcher<'a, 'b, N>

§

impl<'a, 'f> !Sync for VaList<'a, 'f>

§

impl<'a, A> Sync for cs431_homework::test::loom::option::Iter<'a, A>
where A: Sync,

§

impl<'a, A> Sync for cs431_homework::test::loom::option::IterMut<'a, A>
where A: Sync,

§

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

§

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

§

impl<'a, I> Sync for ByRefSized<'a, I>
where I: Sync,

§

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

§

impl<'a, K> Sync for cs431_homework::test::loom::collections::btree_set::Cursor<'a, K>
where K: Sync,

§

impl<'a, K> Sync for cs431_homework::test::loom::collections::hash_set::Drain<'a, K>
where K: Sync,

§

impl<'a, K> Sync for cs431_homework::test::loom::collections::hash_set::Iter<'a, K>
where K: Sync,

§

impl<'a, K, A> Sync for cs431_homework::test::loom::collections::btree_set::CursorMut<'a, K, A>
where A: Sync, K: Sync,

§

impl<'a, K, A> Sync for cs431_homework::test::loom::collections::btree_set::CursorMutKey<'a, K, A>
where A: Sync, K: Sync,

§

impl<'a, K, F> Sync for cs431_homework::test::loom::collections::hash_set::ExtractIf<'a, K, F>
where F: Sync, K: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::hash_map::Entry<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::btree_map::Cursor<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::btree_map::Iter<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::btree_map::IterMut<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::btree_map::Keys<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::btree_map::Range<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for RangeMut<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::btree_map::Values<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::btree_map::ValuesMut<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::hash_map::Drain<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::hash_map::Iter<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::hash_map::IterMut<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::hash_map::Keys<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::hash_map::OccupiedEntry<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::hash_map::OccupiedError<'a, K, V>
where V: Sync, K: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::hash_map::VacantEntry<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::hash_map::Values<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Sync for cs431_homework::test::loom::collections::hash_map::ValuesMut<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V, A> Sync for cs431_homework::test::loom::collections::btree_map::Entry<'a, K, V, A>
where K: Sync, A: Sync, V: Sync,

§

impl<'a, K, V, A> Sync for cs431_homework::test::loom::collections::btree_map::CursorMut<'a, K, V, A>
where A: Sync, K: Sync, V: Sync,

§

impl<'a, K, V, A> Sync for cs431_homework::test::loom::collections::btree_map::CursorMutKey<'a, K, V, A>
where A: Sync, K: Sync, V: Sync,

§

impl<'a, K, V, A> Sync for cs431_homework::test::loom::collections::btree_map::OccupiedEntry<'a, K, V, A>
where A: Sync, K: Sync, V: Sync,

§

impl<'a, K, V, A> Sync for cs431_homework::test::loom::collections::btree_map::OccupiedError<'a, K, V, A>
where V: Sync, A: Sync, K: Sync,

§

impl<'a, K, V, A> Sync for cs431_homework::test::loom::collections::btree_map::VacantEntry<'a, K, V, A>
where K: Sync, A: Sync, V: Sync,

§

impl<'a, K, V, F> Sync for cs431_homework::test::loom::collections::hash_map::ExtractIf<'a, K, V, F>
where F: Sync, K: Sync, V: Sync,

§

impl<'a, K, V, F, A> Sync for cs431_homework::test::loom::collections::btree_map::ExtractIf<'a, K, V, F, A>
where F: Sync, A: Sync, K: Sync, V: Sync,

§

impl<'a, K, V, S> Sync for RawEntryMut<'a, K, V, S>
where K: Sync, V: Sync, S: Sync,

§

impl<'a, K, V, S> Sync for RawEntryBuilder<'a, K, V, S>
where S: Sync, K: Sync, V: Sync,

§

impl<'a, K, V, S> Sync for RawEntryBuilderMut<'a, K, V, S>
where S: Sync, K: Sync, V: Sync,

§

impl<'a, K, V, S> Sync for RawOccupiedEntryMut<'a, K, V, S>
where K: Sync, V: Sync, S: Sync,

§

impl<'a, K, V, S> Sync for RawVacantEntryMut<'a, K, V, S>
where S: Sync, K: Sync, V: Sync,

§

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

§

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

§

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

§

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

§

impl<'a, P> Sync for cs431_homework::test::loom::str::RSplit<'a, P>
where <P as Pattern>::Searcher<'a>: Sync,

§

impl<'a, P> Sync for cs431_homework::test::loom::str::RSplitN<'a, P>
where <P as Pattern>::Searcher<'a>: Sync,

§

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

§

impl<'a, P> Sync for cs431_homework::test::loom::str::Split<'a, P>
where <P as Pattern>::Searcher<'a>: Sync,

§

impl<'a, P> Sync for cs431_homework::test::loom::str::SplitInclusive<'a, P>
where <P as Pattern>::Searcher<'a>: Sync,

§

impl<'a, P> Sync for cs431_homework::test::loom::str::SplitN<'a, P>
where <P as Pattern>::Searcher<'a>: Sync,

§

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

§

impl<'a, T> !Sync for cs431_homework::test::loom::sync::mpsc::Iter<'a, T>

§

impl<'a, T> !Sync for cs431_homework::test::loom::sync::mpsc::TryIter<'a, T>

§

impl<'a, T> Sync for cs431_homework::test::loom::collections::binary_heap::Iter<'a, T>
where T: Sync,

§

impl<'a, T> Sync for cs431_homework::test::loom::collections::btree_set::Iter<'a, T>
where T: Sync,

§

impl<'a, T> Sync for cs431_homework::test::loom::collections::btree_set::Range<'a, T>
where T: Sync,

§

impl<'a, T> Sync for cs431_homework::test::loom::collections::btree_set::SymmetricDifference<'a, T>
where T: Sync,

§

impl<'a, T> Sync for cs431_homework::test::loom::collections::btree_set::Union<'a, T>
where T: Sync,

§

impl<'a, T> Sync for cs431_homework::test::loom::collections::vec_deque::Iter<'a, T>
where T: Sync,

§

impl<'a, T> Sync for cs431_homework::test::loom::collections::vec_deque::IterMut<'a, T>
where T: Sync,

§

impl<'a, T> Sync for cs431_homework::test::loom::result::Iter<'a, T>
where T: Sync,

§

impl<'a, T> Sync for cs431_homework::test::loom::result::IterMut<'a, T>
where T: Sync,

§

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

§

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

§

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

§

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

§

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

§

impl<'a, T> Sync for cs431_homework::test::loom::sync::mpmc::Iter<'a, T>
where T: Send,

§

impl<'a, T> Sync for cs431_homework::test::loom::sync::mpmc::TryIter<'a, T>
where T: Send,

§

impl<'a, T, A> Sync for cs431_homework::test::loom::collections::btree_set::Entry<'a, T, A>
where A: Sync, T: Sync,

§

impl<'a, T, A> Sync for cs431_homework::test::loom::collections::binary_heap::Drain<'a, T, A>
where T: Sync, A: Sync,

§

impl<'a, T, A> Sync for DrainSorted<'a, T, A>
where A: Sync, T: Sync,

§

impl<'a, T, A> Sync for PeekMut<'a, T, A>
where A: Sync, T: Sync,

§

impl<'a, T, A> Sync for cs431_homework::test::loom::collections::btree_set::Difference<'a, T, A>
where T: Sync, A: Sync,

§

impl<'a, T, A> Sync for cs431_homework::test::loom::collections::btree_set::Intersection<'a, T, A>
where T: Sync, A: Sync,

§

impl<'a, T, A> Sync for cs431_homework::test::loom::collections::btree_set::OccupiedEntry<'a, T, A>
where A: Sync, T: Sync,

§

impl<'a, T, A> Sync for cs431_homework::test::loom::collections::btree_set::VacantEntry<'a, T, A>
where T: Sync, A: Sync,

§

impl<'a, T, F, A = Global> !Sync for cs431_homework::test::loom::collections::linked_list::ExtractIf<'a, T, F, A>

§

impl<'a, T, F, A> Sync for cs431_homework::test::loom::collections::btree_set::ExtractIf<'a, T, F, A>
where F: Sync, A: Sync, T: Sync,

§

impl<'a, T, F, A> Sync for cs431_homework::test::loom::vec::ExtractIf<'a, T, F, A>
where F: Sync, A: Sync, T: Sync,

§

impl<'a, T, P> Sync for ChunkBy<'a, T, P>
where P: Sync, T: Sync,

§

impl<'a, T, P> Sync for ChunkByMut<'a, T, P>
where P: Sync, T: Sync,

§

impl<'a, T, P> Sync for cs431_homework::test::loom::slice::RSplit<'a, T, P>
where P: Sync, T: Sync,

§

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

§

impl<'a, T, P> Sync for cs431_homework::test::loom::slice::RSplitN<'a, T, P>
where P: Sync, T: Sync,

§

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

§

impl<'a, T, P> Sync for cs431_homework::test::loom::slice::Split<'a, T, P>
where P: Sync, T: Sync,

§

impl<'a, T, P> Sync for cs431_homework::test::loom::slice::SplitInclusive<'a, T, P>
where P: Sync, T: Sync,

§

impl<'a, T, P> Sync for SplitInclusiveMut<'a, T, P>
where P: Sync, T: Sync,

§

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

§

impl<'a, T, P> Sync for cs431_homework::test::loom::slice::SplitN<'a, T, P>
where P: Sync, T: Sync,

§

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

§

impl<'a, T, S> Sync for cs431_homework::test::loom::collections::hash_set::Entry<'a, T, S>
where T: Sync, S: Sync,

§

impl<'a, T, S> Sync for cs431_homework::test::loom::collections::hash_set::Difference<'a, T, S>
where S: Sync, T: Sync,

§

impl<'a, T, S> Sync for cs431_homework::test::loom::collections::hash_set::Intersection<'a, T, S>
where S: Sync, T: Sync,

§

impl<'a, T, S> Sync for cs431_homework::test::loom::collections::hash_set::OccupiedEntry<'a, T, S>
where T: Sync, S: Sync,

§

impl<'a, T, S> Sync for cs431_homework::test::loom::collections::hash_set::SymmetricDifference<'a, T, S>
where S: Sync, T: Sync,

§

impl<'a, T, S> Sync for cs431_homework::test::loom::collections::hash_set::Union<'a, T, S>
where S: Sync, T: Sync,

§

impl<'a, T, S> Sync for cs431_homework::test::loom::collections::hash_set::VacantEntry<'a, T, S>
where T: Sync, S: Sync,

§

impl<'a, T, const N: usize> !Sync for ArrayWindows<'a, T, N>

§

impl<'a, T, const N: usize> Sync for cs431_homework::test::loom::slice::ArrayChunks<'a, T, N>
where T: Sync,

§

impl<'a, T, const N: usize> Sync for ArrayChunksMut<'a, T, N>
where T: Sync,

§

impl<'a, const N: usize> Sync for CharArraySearcher<'a, N>

§

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

§

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

§

impl<'data> Sync for BorrowedBuf<'data>

§

impl<'f> !Sync for VaListImpl<'f>

§

impl<'fd> Sync for BorrowedFd<'fd>

§

impl<'g, T> !Sync for cs431_homework::list_set::optimistic_fine_grained::Cursor<'g, T>

§

impl<'g, T> !Sync for cs431_homework::list_set::optimistic_fine_grained::Iter<'g, T>

§

impl<'l, T> !Sync for cs431_homework::list_set::fine_grained::Cursor<'l, T>

§

impl<'l, T> !Sync for cs431_homework::list_set::fine_grained::Iter<'l, T>

§

impl<'s> !Sync for RetiredSet<'s>

§

impl<'scope, 'env> Sync for cs431_homework::test::loom::thread::Scope<'scope, 'env>

§

impl<'scope, T> Sync for cs431_homework::test::loom::thread::ScopedJoinHandle<'scope, T>
where T: Send,

§

impl<A> Sync for cs431_homework::test::loom::iter::Repeat<A>
where A: Sync,

§

impl<A> Sync for RepeatN<A>
where A: Sync,

§

impl<A> Sync for cs431_homework::test::loom::option::IntoIter<A>
where A: Sync,

§

impl<A> Sync for IterRange<A>
where A: Sync,

§

impl<A> Sync for IterRangeFrom<A>
where A: Sync,

§

impl<A> Sync for IterRangeInclusive<A>
where A: Sync,

§

impl<A, B> Sync for cs431_homework::test::loom::iter::Chain<A, B>
where A: Sync, B: Sync,

§

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

§

impl<B> Sync for cs431_homework::test::loom::io::Lines<B>
where B: Sync,

§

impl<B> Sync for cs431_homework::test::loom::io::Split<B>
where B: Sync,

§

impl<B, C> Sync for ControlFlow<B, C>
where C: Sync, B: Sync,

§

impl<E> Sync for cs431_homework::test::loom::error::Report<E>
where E: Sync,

§

impl<F> Sync for cs431_homework::test::loom::fmt::FromFn<F>
where F: Sync,

§

impl<F> Sync for PollFn<F>
where F: Sync,

§

impl<F> Sync for cs431_homework::test::loom::iter::FromFn<F>
where F: Sync,

§

impl<F> Sync for OnceWith<F>
where F: Sync,

§

impl<F> Sync for RepeatWith<F>
where F: Sync,

§

impl<G> Sync for FromCoroutine<G>
where G: Sync,

§

impl<H> Sync for BuildHasherDefault<H>

§

impl<I> Sync for FromIter<I>
where I: Sync,

§

impl<I> Sync for DecodeUtf16<I>
where I: Sync,

§

impl<I> Sync for Cloned<I>
where I: Sync,

§

impl<I> Sync for Copied<I>
where I: Sync,

§

impl<I> Sync for Cycle<I>
where I: Sync,

§

impl<I> Sync for Enumerate<I>
where I: Sync,

§

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

§

impl<I> Sync for Fuse<I>
where I: Sync,

§

impl<I> Sync for Intersperse<I>
where <I as Iterator>::Item: Sized + Sync, I: Sync,

§

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

§

impl<I> Sync for Skip<I>
where I: Sync,

§

impl<I> Sync for StepBy<I>
where I: Sync,

§

impl<I> Sync for cs431_homework::test::loom::iter::Take<I>
where I: Sync,

§

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

§

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

§

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

§

impl<I, F, const N: usize> Sync for MapWindows<I, F, N>
where F: Sync, I: Sync, <I as Iterator>::Item: Sync,

§

impl<I, G> Sync for IntersperseWith<I, G>
where G: Sync, <I as Iterator>::Item: Sync, I: Sync,

§

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

§

impl<I, P> Sync for MapWhile<I, P>
where I: Sync, P: Sync,

§

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

§

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

§

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

§

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

§

impl<I, const N: usize> Sync for cs431_homework::test::loom::iter::ArrayChunks<I, N>
where I: Sync, <I as Iterator>::Item: Sync,

§

impl<Idx> Sync for cs431_homework::test::loom::ops::Range<Idx>
where Idx: Sync,

§

impl<Idx> Sync for cs431_homework::test::loom::ops::RangeFrom<Idx>
where Idx: Sync,

§

impl<Idx> Sync for cs431_homework::test::loom::ops::RangeInclusive<Idx>
where Idx: Sync,

§

impl<Idx> Sync for RangeTo<Idx>
where Idx: Sync,

§

impl<Idx> Sync for RangeToInclusive<Idx>
where Idx: Sync,

§

impl<Idx> Sync for cs431_homework::test::loom::range::Range<Idx>
where Idx: Sync,

§

impl<Idx> Sync for cs431_homework::test::loom::range::RangeFrom<Idx>
where Idx: Sync,

§

impl<Idx> Sync for cs431_homework::test::loom::range::RangeInclusive<Idx>
where Idx: Sync,

§

impl<K> Sync for cs431_homework::test::loom::collections::hash_set::IntoIter<K>
where K: Sync,

§

impl<K, V> Sync for Log<K, V>
where K: Sync, V: Sync,

§

impl<K, V> Sync for Cache<K, V>
where K: Send, V: Send,

§

impl<K, V> Sync for cs431_homework::test::loom::collections::hash_map::IntoIter<K, V>
where K: Sync, V: Sync,

§

impl<K, V> Sync for cs431_homework::test::loom::collections::hash_map::IntoKeys<K, V>
where K: Sync, V: Sync,

§

impl<K, V> Sync for cs431_homework::test::loom::collections::hash_map::IntoValues<K, V>
where K: Sync, V: Sync,

§

impl<K, V, A> Sync for cs431_homework::test::loom::collections::btree_map::IntoIter<K, V, A>
where A: Sync, K: Sync, V: Sync,

§

impl<K, V, A> Sync for cs431_homework::test::loom::collections::btree_map::IntoKeys<K, V, A>
where A: Sync, K: Sync, V: Sync,

§

impl<K, V, A> Sync for cs431_homework::test::loom::collections::btree_map::IntoValues<K, V, A>
where A: Sync, K: Sync, V: Sync,

§

impl<K, V, A> Sync for BTreeMap<K, V, A>
where A: Sync, K: Sync, V: Sync,

§

impl<K, V, S> Sync for HashMap<K, V, S>
where S: Sync, K: Sync, V: Sync,

§

impl<Ptr> Sync for Pin<Ptr>
where Ptr: Sync,

§

impl<R> Sync for BufReader<R>
where R: Sync + ?Sized,

§

impl<R> Sync for cs431_homework::test::loom::io::Bytes<R>
where R: Sync,

§

impl<T> !Sync for Cown<T>

§

impl<T> !Sync for CownPtr<T>

§

impl<T> !Sync for cs431_homework::linked_list::Node<T>

§

impl<T> !Sync for cs431_homework::list_set::fine_grained::Node<T>

§

impl<T> !Sync for cs431_homework::test::loom::sync::mpsc::IntoIter<T>

§

impl<T> !Sync for std::sys::thread_local::native::eager::Storage<T>

§

impl<T> Sync for Bound<T>
where T: Sync,

§

impl<T> Sync for Option<T>
where T: Sync,

§

impl<T> Sync for TryLockError<T>
where T: Sync,

§

impl<T> Sync for SendTimeoutError<T>
where T: Sync,

§

impl<T> Sync for TrySendError<T>
where T: Sync,

§

impl<T> Sync for Poll<T>
where T: Sync,

§

impl<T> Sync for TreiberStack<T>
where T: Send,

§

impl<T> Sync for cs431_homework::linked_list::IntoIter<T>
where T: Sync,

§

impl<T> Sync for cs431_homework::list_set::optimistic_fine_grained::Node<T>
where T: Sync + Send,

§

impl<T> Sync for GrowableArray<T>
where T: Send + Sync,

§

impl<T> Sync for Reverse<T>
where T: Sync,

§

impl<T> Sync for AsyncDropInPlace<T>

§

impl<T> Sync for Pending<T>

§

impl<T> Sync for Ready<T>
where T: Sync,

§

impl<T> Sync for cs431_homework::test::loom::io::Cursor<T>
where T: Sync,

§

impl<T> Sync for cs431_homework::test::loom::io::Take<T>
where T: Sync,

§

impl<T> Sync for cs431_homework::test::loom::iter::Empty<T>

§

impl<T> Sync for cs431_homework::test::loom::iter::Once<T>
where T: Sync,

§

impl<T> Sync for Rev<T>
where T: Sync,

§

impl<T> Sync for PhantomContravariant<T>
where T: ?Sized,

§

impl<T> Sync for PhantomCovariant<T>
where T: ?Sized,

§

impl<T> Sync for PhantomData<T>
where T: Sync + ?Sized,

§

impl<T> Sync for PhantomInvariant<T>
where T: ?Sized,

§

impl<T> Sync for Discriminant<T>

§

impl<T> Sync for ManuallyDrop<T>
where T: Sync + ?Sized,

§

impl<T> Sync for Saturating<T>
where T: Sync,

§

impl<T> Sync for Wrapping<T>
where T: Sync,

§

impl<T> Sync for Yeet<T>
where T: Sync,

§

impl<T> Sync for AssertUnwindSafe<T>
where T: Sync,

§

impl<T> Sync for cs431_homework::test::loom::result::IntoIter<T>
where T: Sync,

§

impl<T> Sync for cs431_homework::test::loom::sync::mpmc::IntoIter<T>
where T: Send,

§

impl<T> Sync for SendError<T>
where T: Sync,

§

impl<T> Sync for SyncSender<T>
where T: Send,

§

impl<T> Sync for PoisonError<T>
where T: Sync,

§

impl<T> Sync for LocalKey<T>

§

impl<T> Sync for Segment<T>
where T: Send + Sync,

§

impl<T> Sync for MaybeUninit<T>
where T: Sync,

§

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

§

impl<T, A> Sync for cs431_homework::test::loom::collections::binary_heap::IntoIter<T, A>
where T: Sync, A: Sync,

§

impl<T, A> Sync for IntoIterSorted<T, A>
where A: Sync, T: Sync,

§

impl<T, A> Sync for cs431_homework::test::loom::collections::btree_set::IntoIter<T, A>
where A: Sync, T: Sync,

§

impl<T, A> Sync for cs431_homework::test::loom::collections::linked_list::IntoIter<T, A>
where T: Sync, A: Sync,

§

impl<T, A> Sync for BTreeSet<T, A>
where A: Sync, T: Sync,

§

impl<T, A> Sync for BinaryHeap<T, A>
where A: Sync, T: Sync,

§

impl<T, A> Sync for VecDeque<T, A>
where A: Sync, T: Sync,

§

impl<T, A> Sync for cs431_homework::test::loom::collections::vec_deque::IntoIter<T, A>
where A: Sync, T: Sync,

§

impl<T, A> Sync for Vec<T, A>
where A: Sync, T: Sync,

§

impl<T, D> !Sync for std::sys::thread_local::native::lazy::Storage<T, D>

§

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

§

impl<T, F = fn() -> T> !Sync for LazyCell<T, F>

§

impl<T, F> Sync for Successors<T, F>
where F: Sync, T: Sync,

§

impl<T, S> Sync for ElimStack<T, S>
where S: Sync, <S as Stack<T>>::PushReq: Send + Sync,

§

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

§

impl<T, U> Sync for cs431_homework::test::loom::io::Chain<T, U>
where T: Sync, U: Sync,

§

impl<T, const N: usize> Sync for cs431_homework::test::loom::array::IntoIter<T, N>
where T: Sync,

§

impl<T, const N: usize> Sync for Mask<T, N>
where T: Sync,

§

impl<T, const N: usize> Sync for Simd<T, N>
where T: Sync,

§

impl<V> Sync for SplitOrderedList<V>
where V: Sync + Send,

§

impl<W> Sync for BufWriter<W>
where W: Sync + ?Sized,

§

impl<W> Sync for IntoInnerError<W>
where W: Sync,

§

impl<W> Sync for LineWriter<W>
where W: Sync + ?Sized,

§

impl<Y, R> Sync for CoroutineState<Y, R>
where Y: Sync, R: Sync,

§

impl<const N: usize> Sync for LaneCount<N>

impl Sync for Candidate

impl Sync for Anchored

impl Sync for MatchKind

impl Sync for StartKind

impl Sync for MatchKind

impl Sync for Prefilter

impl Sync for StateID

impl Sync for Builder

impl Sync for DFA

impl Sync for Builder

impl Sync for NFA

impl Sync for Builder

impl Sync for NFA

impl Sync for Builder

impl Sync for Config

impl Sync for Searcher

impl Sync for AhoCorasick

impl Sync for BuildError

impl Sync for Match

impl Sync for MatchError

impl Sync for PatternID

impl Sync for Span

impl<'a, 'h> Sync for FindIter<'a, 'h>

impl<'a, 'h> Sync for FindOverlappingIter<'a, 'h>

impl<'a, 'h, A> Sync for FindIter<'a, 'h, A>
where A: Sync,

impl<'a, 'h, A> Sync for FindOverlappingIter<'a, 'h, A>
where A: Sync,

impl<'a, A, R> Sync for StreamFindIter<'a, A, R>
where R: Sync, A: Sync,

impl<'a, R> Sync for StreamFindIter<'a, R>
where R: Sync,

impl<'h> Sync for Input<'h>

impl<'s, 'h> Sync for FindIter<'s, 'h>

impl<T> !Sync for Worker<T>

impl<T> Sync for Steal<T>
where T: Sync,

impl<L, R> Sync for Either<L, R>
where L: Sync, R: Sync,

impl<L, R> Sync for IterEither<L, R>
where L: Sync, R: Sync,

impl Sync for Error

impl !Sync for Dl_info

impl !Sync for addrinfo

impl !Sync for aiocb

impl !Sync for dl_phdr_info

impl !Sync for glob64_t

impl !Sync for glob_t

impl !Sync for group

impl !Sync for hostent

impl !Sync for if_nameindex

impl !Sync for ifaddrs

impl !Sync for ifconf

impl !Sync for ifreq

impl !Sync for iovec

impl !Sync for iw_event

impl !Sync for iw_point

impl !Sync for iwreq

impl !Sync for lconv

impl !Sync for mcontext_t

impl !Sync for mmsghdr

impl !Sync for mntent

impl !Sync for msghdr

impl !Sync for option

impl !Sync for passwd

impl !Sync for protoent

impl !Sync for regex_t

impl !Sync for rtentry

impl !Sync for servent

impl !Sync for sigevent

impl !Sync for sigval

impl !Sync for sock_fprog

impl !Sync for spwd

impl !Sync for stack_t

impl !Sync for tm

impl !Sync for ucontext_t

impl !Sync for user

impl !Sync for iwreq_data

impl Sync for DIR

impl Sync for FILE

impl Sync for fpos64_t

impl Sync for fpos_t

impl Sync for timezone

impl Sync for Elf32_Chdr

impl Sync for Elf32_Ehdr

impl Sync for Elf32_Phdr

impl Sync for Elf32_Shdr

impl Sync for Elf32_Sym

impl Sync for Elf64_Chdr

impl Sync for Elf64_Ehdr

impl Sync for Elf64_Phdr

impl Sync for Elf64_Shdr

impl Sync for Elf64_Sym

impl Sync for __timeval

impl Sync for af_alg_iv

impl Sync for arphdr

impl Sync for arpreq

impl Sync for arpreq_old

impl Sync for can_filter

impl Sync for can_frame

impl Sync for canfd_frame

impl Sync for canxl_frame

impl Sync for clone_args

impl Sync for cmsghdr

impl Sync for cpu_set_t

impl Sync for dirent

impl Sync for dirent64

impl Sync for dqblk

impl Sync for epoll_event

impl Sync for fanout_args

impl Sync for fd_set

impl Sync for ff_effect

impl Sync for ff_envelope

impl Sync for ff_replay

impl Sync for ff_trigger

impl Sync for flock

impl Sync for flock64

impl Sync for fsid_t

impl Sync for genlmsghdr

impl Sync for in6_addr

impl Sync for in6_ifreq

impl Sync for in6_pktinfo

impl Sync for in6_rtmsg

impl Sync for in_addr

impl Sync for in_pktinfo

impl Sync for input_event

impl Sync for input_id

impl Sync for input_mask

impl Sync for iocb

impl Sync for ip_mreq

impl Sync for ip_mreqn

impl Sync for ipc_perm

impl Sync for ipv6_mreq

impl Sync for itimerspec

impl Sync for itimerval

impl Sync for iw_freq

impl Sync for iw_missed

impl Sync for iw_mlme

impl Sync for iw_param

impl Sync for iw_pmksa

impl Sync for iw_quality

impl Sync for iw_range

impl Sync for iw_scan_req

impl Sync for iw_thrspy

impl Sync for linger

impl Sync for mallinfo

impl Sync for mallinfo2

impl Sync for max_align_t

impl Sync for mount_attr

impl Sync for mq_attr

impl Sync for msginfo

impl Sync for msqid_ds

impl Sync for nl_mmap_hdr

impl Sync for nl_mmap_req

impl Sync for nl_pktinfo

impl Sync for nlattr

impl Sync for nlmsgerr

impl Sync for nlmsghdr

impl Sync for ntptimeval

impl Sync for open_how

impl Sync for packet_mreq

impl Sync for pollfd

impl Sync for regmatch_t

impl Sync for rlimit

impl Sync for rlimit64

impl Sync for rusage

impl Sync for sched_attr

impl Sync for sched_param

impl Sync for sctp_prinfo

impl Sync for sem_t

impl Sync for sembuf

impl Sync for semid_ds

impl Sync for seminfo

impl Sync for shmid_ds

impl Sync for sigaction

impl Sync for siginfo_t

impl Sync for sigset_t

impl Sync for sock_filter

impl Sync for sock_txtime

impl Sync for sockaddr

impl Sync for sockaddr_in

impl Sync for sockaddr_ll

impl Sync for sockaddr_nl

impl Sync for sockaddr_un

impl Sync for sockaddr_vm

impl Sync for stat

impl Sync for stat64

impl Sync for statfs

impl Sync for statfs64

impl Sync for statvfs

impl Sync for statvfs64

impl Sync for statx

impl Sync for sysinfo

impl Sync for tcp_info

impl Sync for termios

impl Sync for termios2

impl Sync for timespec

impl Sync for timeval

impl Sync for timex

impl Sync for tms

impl Sync for tpacket_hdr

impl Sync for tpacket_req

impl Sync for ucred

impl Sync for utimbuf

impl Sync for utmpx

impl Sync for utsname

impl Sync for winsize

impl Sync for xdp_desc

impl Sync for xdp_options

impl Sync for One

impl Sync for Three

impl Sync for Two

impl Sync for Finder

impl Sync for Pair

impl Sync for Finder

impl Sync for FinderRev

impl Sync for Finder

impl Sync for Finder

impl Sync for FinderRev

impl Sync for One

impl Sync for Three

impl Sync for Two

impl Sync for Finder

impl Sync for One

impl Sync for Three

impl Sync for Two

impl Sync for Finder

impl<'a, 'h> Sync for OneIter<'a, 'h>

impl<'a, 'h> Sync for ThreeIter<'a, 'h>

impl<'a, 'h> Sync for TwoIter<'a, 'h>

impl<'a, 'h> Sync for OneIter<'a, 'h>

impl<'a, 'h> Sync for ThreeIter<'a, 'h>

impl<'a, 'h> Sync for TwoIter<'a, 'h>

impl<'a, 'h> Sync for OneIter<'a, 'h>

impl<'a, 'h> Sync for ThreeIter<'a, 'h>

impl<'a, 'h> Sync for TwoIter<'a, 'h>

impl<'h> Sync for Memchr<'h>

impl<'h> Sync for Memchr2<'h>

impl<'h> Sync for Memchr3<'h>

impl<'h, 'n> Sync for FindIter<'h, 'n>

impl<'h, 'n> Sync for FindRevIter<'h, 'n>

impl<'n> Sync for Finder<'n>

impl<'n> Sync for FinderRev<'n>

impl Sync for NoA1

impl Sync for NoA2

impl Sync for NoNI

impl Sync for NoS3

impl Sync for NoS4

impl Sync for YesA1

impl Sync for YesA2

impl Sync for YesNI

impl Sync for YesS3

impl Sync for YesS4

impl<NI> Sync for Avx2Machine<NI>
where NI: Sync,

impl<S3, S4, NI> Sync for SseMachine<S3, S4, NI>
where S3: Sync, S4: Sync, NI: Sync,

impl !Sync for ThreadRng

impl Sync for Error

impl Sync for Error

impl Sync for IndexVec

impl Sync for Empty

impl Sync for Bernoulli

impl Sync for Open01

impl Sync for UniformChar

impl Sync for StepRng

impl Sync for SmallRng

impl Sync for StdRng

impl<'a> Sync for IndexVecIter<'a>

impl<'a, S, T> Sync for SliceChooseIter<'a, S, T>
where S: Sync + ?Sized, T: Sync,

impl<'a, T> Sync for Choose<'a, T>
where T: Sync,

impl<D, F, T, S> Sync for Map<D, F, T, S>
where D: Sync, F: Sync,

impl<D, R, T> Sync for Iter<D, R, T>
where D: Sync, R: Sync, T: Sync,

impl<R, Rsdr> Sync for ReseedingRng<R, Rsdr>
where <R as BlockRngCore>::Results: Sync, R: Sync, Rsdr: Sync,

impl<X> Sync for Uniform<X>
where <X as SampleUniform>::Sampler: Sync,

impl<X> Sync for UniformFloat<X>
where X: Sync,

impl<X> Sync for UniformInt<X>
where X: Sync,

impl<X> Sync for WeightedIndex<X>
where X: Sync, <X as SampleUniform>::Sampler: Sync,

impl Sync for ChaCha12Rng

impl Sync for ChaCha20Rng

impl Sync for ChaCha8Core

impl Sync for ChaCha8Rng

impl Sync for OsError

impl Sync for OsRng

impl<'a, R> Sync for RngReadAdapter<'a, R>
where R: Sync + ?Sized,

impl<'r, R> Sync for UnwrapMut<'r, R>
where R: Sync + ?Sized,

impl<R> Sync for BlockRng<R>
where <R as BlockRngCore>::Results: Sync, R: Sync,

impl<R> Sync for BlockRng64<R>
where <R as BlockRngCore>::Results: Sync, R: Sync + ?Sized,

impl<R> Sync for UnwrapErr<R>
where R: Sync,

impl<'a> Sync for Drain<'a>

impl<'a, K, V> Sync for Iter<'a, K, V>

impl<'a, K, V> Sync for IterMut<'a, K, V>
where V: Sync,

impl<'a, K, V> Sync for Drain<'a, K, V>
where K: Sync, V: Sync,

impl<'a, K, V> Sync for Iter<'a, K, V>

impl<'a, K, V> Sync for IterMut<'a, K, V>
where V: Sync,

impl<'a, T> Sync for Drain<'a, T>
where T: Sync,

impl<'a, T> Sync for Iter<'a, T>

impl<'a, T> Sync for Iter<'a, T>

impl<'a, T> Sync for Drain<'a, T>
where T: Sync,

impl<'a, T> Sync for Iter<'a, T>

impl<'a, T> Sync for Iter<'a, T>

impl<'a, T> Sync for IterMut<'a, T>
where T: Sync,

impl<'a, T> Sync for Drain<'a, T>
where T: Sync,

impl<'a, T> Sync for Iter<'a, T>

impl<'a, T> Sync for IterMut<'a, T>
where T: Sync,

impl<'a, T> Sync for Iter<'a, T>

impl<'a, T> Sync for IterMut<'a, T>
where T: Sync,

impl<'a, T> Sync for Iter<'a, T>

impl<'a, T> Sync for IterMut<'a, T>
where T: Sync,

impl<'ch> Sync for Bytes<'ch>

impl<'ch> Sync for CharIndices<'ch>

impl<'ch> Sync for Chars<'ch>

impl<'ch> Sync for EncodeUtf16<'ch>

impl<'ch> Sync for Lines<'ch>

impl<'ch> Sync for SplitAsciiWhitespace<'ch>

impl<'ch> Sync for SplitWhitespace<'ch>

impl<'ch, P> Sync for MatchIndices<'ch, P>

impl<'ch, P> Sync for Matches<'ch, P>

impl<'ch, P> Sync for Split<'ch, P>

impl<'ch, P> Sync for SplitInclusive<'ch, P>

impl<'ch, P> Sync for SplitTerminator<'ch, P>

impl<'data, T> Sync for Chunks<'data, T>

impl<'data, T> Sync for ChunksExact<'data, T>

impl<'data, T> Sync for ChunksExactMut<'data, T>
where T: Sync,

impl<'data, T> Sync for ChunksMut<'data, T>
where T: Sync,

impl<'data, T> Sync for Iter<'data, T>

impl<'data, T> Sync for IterMut<'data, T>
where T: Sync,

impl<'data, T> Sync for RChunks<'data, T>

impl<'data, T> Sync for RChunksExact<'data, T>

impl<'data, T> Sync for RChunksExactMut<'data, T>
where T: Sync,

impl<'data, T> Sync for RChunksMut<'data, T>
where T: Sync,

impl<'data, T> Sync for Windows<'data, T>

impl<'data, T> Sync for Drain<'data, T>
where T: Sync,

impl<'data, T, P> Sync for ChunkBy<'data, T, P>
where P: Sync, T: Sync,

impl<'data, T, P> Sync for ChunkByMut<'data, T, P>
where P: Sync, T: Sync,

impl<'data, T, P> Sync for Split<'data, T, P>
where P: Sync, T: Sync,

impl<'data, T, P> Sync for SplitInclusive<'data, T, P>
where P: Sync, T: Sync,

impl<'data, T, P> Sync for SplitInclusiveMut<'data, T, P>
where P: Sync, T: Sync,

impl<'data, T, P> Sync for SplitMut<'data, T, P>
where P: Sync, T: Sync,

impl<A, B> Sync for Chain<A, B>
where A: Sync, B: Sync,

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

impl<A, B> Sync for ZipEq<A, B>
where A: Sync, B: Sync,

impl<D, S> Sync for Split<D, S>
where D: Sync, S: Sync,

impl<I> Sync for Chunks<I>
where I: Sync,

impl<I> Sync for Cloned<I>
where I: Sync,

impl<I> Sync for Copied<I>
where I: Sync,

impl<I> Sync for Enumerate<I>
where I: Sync,

impl<I> Sync for ExponentialBlocks<I>
where I: Sync,

impl<I> Sync for Flatten<I>
where I: Sync,

impl<I> Sync for FlattenIter<I>
where I: Sync,

impl<I> Sync for Intersperse<I>
where <I as ParallelIterator>::Item: Sized + Sync, I: Sync,

impl<I> Sync for MaxLen<I>
where I: Sync,

impl<I> Sync for MinLen<I>
where I: Sync,

impl<I> Sync for PanicFuse<I>
where I: Sync,

impl<I> Sync for Rev<I>
where I: Sync,

impl<I> Sync for Skip<I>
where I: Sync,

impl<I> Sync for SkipAny<I>
where I: Sync,

impl<I> Sync for StepBy<I>
where I: Sync,

impl<I> Sync for Take<I>
where I: Sync,

impl<I> Sync for TakeAny<I>
where I: Sync,

impl<I> Sync for UniformBlocks<I>
where I: Sync,

impl<I> Sync for WhileSome<I>
where I: Sync,

impl<I, F> Sync for FlatMap<I, F>
where I: Sync, F: Sync,

impl<I, F> Sync for FlatMapIter<I, F>
where I: Sync, F: Sync,

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

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

impl<I, F> Sync for Update<I, F>
where I: Sync, F: Sync,

impl<I, ID, F> Sync for Fold<I, ID, F>
where I: Sync, ID: Sync, F: Sync,

impl<I, ID, F> Sync for FoldChunks<I, ID, F>
where I: Sync, F: Sync, ID: Sync,

impl<I, INIT, F> Sync for MapInit<I, INIT, F>
where I: Sync, INIT: Sync, F: Sync,

impl<I, J> Sync for Interleave<I, J>
where I: Sync, J: Sync,

impl<I, J> Sync for InterleaveShortest<I, J>
where I: Sync, J: Sync,

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

impl<I, P> Sync for FilterMap<I, P>
where I: Sync, P: Sync,

impl<I, P> Sync for Positions<I, P>
where I: Sync, P: Sync,

impl<I, P> Sync for SkipAnyWhile<I, P>
where I: Sync, P: Sync,

impl<I, P> Sync for TakeAnyWhile<I, P>
where I: Sync, P: Sync,

impl<I, T, F> Sync for MapWith<I, T, F>
where I: Sync, T: Sync, F: Sync,

impl<I, U, F> Sync for FoldChunksWith<I, U, F>
where I: Sync, U: Sync, F: Sync,

impl<I, U, F> Sync for FoldWith<I, U, F>
where I: Sync, U: Sync, F: Sync,

impl<I, U, F> Sync for TryFoldWith<I, U, F>
where I: Sync, <U as Try>::Output: Sync, F: Sync,

impl<I, U, ID, F> Sync for TryFold<I, U, ID, F>
where I: Sync, ID: Sync, F: Sync, U: Sync,

impl<Iter> Sync for IterBridge<Iter>
where Iter: Sync,

impl<K, V> Sync for IntoIter<K, V>
where K: Sync, V: Sync,

impl<K, V> Sync for IntoIter<K, V>
where K: Sync, V: Sync,

impl<S, B> Sync for WalkTree<S, B>
where S: Sync, B: Sync,

impl<S, B> Sync for WalkTreePostfix<S, B>
where S: Sync, B: Sync,

impl<S, B> Sync for WalkTreePrefix<S, B>
where S: Sync, B: Sync,

impl<T> Sync for IntoIter<T>
where T: Sync,

impl<T> Sync for IntoIter<T>
where T: Sync,

impl<T> Sync for IntoIter<T>
where T: Sync,

impl<T> Sync for IntoIter<T>
where T: Sync,

impl<T> Sync for IntoIter<T>
where T: Sync,

impl<T> Sync for Empty<T>
where T: Sync,

impl<T> Sync for MultiZip<T>
where T: Sync,

impl<T> Sync for Once<T>
where T: Sync,

impl<T> Sync for Repeat<T>
where T: Sync,

impl<T> Sync for RepeatN<T>
where T: Sync,

impl<T> Sync for IntoIter<T>
where T: Sync,

impl<T> Sync for Iter<T>
where T: Sync,

impl<T> Sync for Iter<T>
where T: Sync,

impl<T> Sync for IntoIter<T>
where T: Sync,

impl<T> Sync for IntoIter<T>
where T: Sync,

impl<T, const N: usize> Sync for IntoIter<T, N>
where T: Sync,

impl !Sync for FnContext

impl Sync for Yield

impl Sync for ThreadPool

impl<'a> !Sync for BroadcastContext<'a>

impl<'scope> Sync for Scope<'scope>

impl<'scope> Sync for ScopeFifo<'scope>

impl<S = DefaultSpawn> !Sync for ThreadPoolBuilder<S>

impl Sync for Error

impl Sync for Regex

impl Sync for RegexSet

impl Sync for SetMatches

impl Sync for Regex

impl Sync for RegexSet

impl Sync for SetMatches

impl<'a> Sync for SetMatchesIter<'a>

impl<'a> Sync for SetMatchesIter<'a>

impl<'a, R> Sync for ReplacerRef<'a, R>
where R: Sync + ?Sized,

impl<'a, R> Sync for ReplacerRef<'a, R>
where R: Sync + ?Sized,

impl<'c, 'h> Sync for SubCaptureMatches<'c, 'h>

impl<'c, 'h> Sync for SubCaptureMatches<'c, 'h>

impl<'h> Sync for Captures<'h>

impl<'h> Sync for Match<'h>

impl<'h> Sync for Captures<'h>

impl<'h> Sync for Match<'h>

impl<'r> Sync for CaptureNames<'r>

impl<'r> Sync for CaptureNames<'r>

impl<'r, 'h> Sync for CaptureMatches<'r, 'h>

impl<'r, 'h> Sync for Matches<'r, 'h>

impl<'r, 'h> Sync for Split<'r, 'h>

impl<'r, 'h> Sync for SplitN<'r, 'h>

impl<'r, 'h> Sync for CaptureMatches<'r, 'h>

impl<'r, 'h> Sync for Matches<'r, 'h>

impl<'r, 'h> Sync for Split<'r, 'h>

impl<'r, 'h> Sync for SplitN<'r, 'h>

impl<'s> Sync for NoExpand<'s>

impl<'s> Sync for NoExpand<'s>

impl !Sync for Builder

impl !Sync for Builder

impl !Sync for Builder

impl !Sync for Builder

impl !Sync for Builder

impl !Sync for Compiler

impl Sync for Anchored

impl Sync for MatchKind

impl Sync for StartError

impl Sync for State

impl Sync for Look

impl Sync for BuildError

impl Sync for Cache

impl Sync for Config

impl Sync for DFA

impl Sync for Cache

impl Sync for Config

impl Sync for DFA

impl Sync for Cache

impl Sync for Regex

impl Sync for BuildError

impl Sync for CacheError

impl Sync for LazyStateID

impl Sync for BuildError

impl Sync for Builder

impl Sync for Cache

impl Sync for Config

impl Sync for Regex

impl Sync for Cache

impl Sync for Config

impl Sync for Cache

impl Sync for Config

impl Sync for PikeVM

impl Sync for BuildError

impl Sync for Builder

impl Sync for Config

impl Sync for NFA

impl Sync for Transition

impl Sync for HalfMatch

impl Sync for Match

impl Sync for MatchError

impl Sync for PatternID

impl Sync for PatternSet

impl Sync for Span

impl Sync for ByteClasses

impl Sync for Unit

impl Sync for Captures

impl Sync for GroupInfo

impl Sync for DebugByte

impl Sync for LookMatcher

impl Sync for LookSet

impl Sync for LookSetIter

impl Sync for Prefilter

impl Sync for NonMaxUsize

impl Sync for SmallIndex

impl Sync for StateID

impl Sync for Config

impl Sync for Config

impl<'a> Sync for PatternIter<'a>

impl<'a> Sync for PatternSetIter<'a>

impl<'a> Sync for ByteClassElements<'a>

impl<'a> Sync for ByteClassIter<'a>

impl<'a> Sync for CapturesPatternIter<'a>

impl<'a> Sync for GroupInfoAllNames<'a>

impl<'a> Sync for GroupInfoPatternNames<'a>

impl<'a> Sync for DebugHaystack<'a>

impl<'a, T, F> Sync for PoolGuard<'a, T, F>
where F: Send + Sync, T: Sync,

impl<'h> Sync for Input<'h>

impl<'h> Sync for Searcher<'h>

impl<'h, F> Sync for CapturesIter<'h, F>
where F: Sync,

impl<'h, F> Sync for HalfMatchesIter<'h, F>
where F: Sync,

impl<'h, F> Sync for MatchesIter<'h, F>
where F: Sync,

impl<'h, F> Sync for TryCapturesIter<'h, F>
where F: Sync,

impl<'h, F> Sync for TryHalfMatchesIter<'h, F>
where F: Sync,

impl<'h, F> Sync for TryMatchesIter<'h, F>
where F: Sync,

impl<'r, 'c, 'h> Sync for FindMatches<'r, 'c, 'h>

impl<'r, 'c, 'h> Sync for TryCapturesMatches<'r, 'c, 'h>

impl<'r, 'c, 'h> Sync for TryFindMatches<'r, 'c, 'h>

impl<'r, 'c, 'h> Sync for CapturesMatches<'r, 'c, 'h>

impl<'r, 'c, 'h> Sync for FindMatches<'r, 'c, 'h>

impl<'r, 'h> Sync for CapturesMatches<'r, 'h>

impl<'r, 'h> Sync for FindMatches<'r, 'h>

impl<'r, 'h> Sync for Split<'r, 'h>

impl<'r, 'h> Sync for SplitN<'r, 'h>

impl<B, T> Sync for AlignAs<B, T>
where B: Sync + ?Sized, T: Sync,

impl<T, F> Sync for Lazy<T, F>
where T: Send + Sync, F: Send + Sync,

impl<T, F> Sync for Pool<T, F>
where T: Send, F: Send + Sync,

impl !Sync for Parser

impl !Sync for Translator

impl !Sync for Parser

impl Sync for Ast

impl Sync for ClassSet

impl Sync for ErrorKind

impl Sync for Flag

impl Sync for GroupKind

impl Sync for LiteralKind

impl Sync for Error

impl Sync for Class

impl Sync for Dot

impl Sync for ErrorKind

impl Sync for HirKind

impl Sync for Look

impl Sync for ExtractKind

impl Sync for Printer

impl Sync for Alternation

impl Sync for Assertion

impl Sync for CaptureName

impl Sync for ClassAscii

impl Sync for ClassPerl

impl Sync for Comment

impl Sync for Concat

impl Sync for Error

impl Sync for Flags

impl Sync for FlagsItem

impl Sync for Group

impl Sync for Literal

impl Sync for Position

impl Sync for Repetition

impl Sync for SetFlags

impl Sync for Span

impl Sync for Extractor

impl Sync for Literal

impl Sync for Seq

impl Sync for Printer

impl Sync for Capture

impl Sync for ClassBytes

impl Sync for Error

impl Sync for Hir

impl Sync for Literal

impl Sync for LookSet

impl Sync for LookSetIter

impl Sync for Properties

impl Sync for Repetition

impl Sync for Utf8Range

impl<'a> Sync for ClassBytesIter<'a>

impl<'a> Sync for ClassUnicodeIter<'a>

impl Sync for BigEndian

impl Sync for AllocError

impl<A, S, V> Sync for ConvertError<A, S, V>
where A: Sync, S: Sync, V: Sync,

impl<B, T> Sync for Ref<B, T>
where B: Sync, T: Sync + ?Sized,

impl<O> Sync for F32<O>
where O: Sync,

impl<O> Sync for F64<O>
where O: Sync,

impl<O> Sync for I128<O>
where O: Sync,

impl<O> Sync for I16<O>
where O: Sync,

impl<O> Sync for I32<O>
where O: Sync,

impl<O> Sync for I64<O>
where O: Sync,

impl<O> Sync for Isize<O>
where O: Sync,

impl<O> Sync for U128<O>
where O: Sync,

impl<O> Sync for U16<O>
where O: Sync,

impl<O> Sync for U32<O>
where O: Sync,

impl<O> Sync for U64<O>
where O: Sync,

impl<O> Sync for Usize<O>
where O: Sync,

impl<Src, Dst> Sync for AlignmentError<Src, Dst>
where Src: Sync, Dst: ?Sized,

impl<Src, Dst> Sync for SizeError<Src, Dst>
where Src: Sync, Dst: ?Sized,

impl<Src, Dst> Sync for ValidityError<Src, Dst>
where Src: Sync, Dst: ?Sized,

impl<T> Sync for Unalign<T>
where T: Sync,