Skip to main content

Sync

Trait Sync 

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

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


📍code/marker re-exported from core::marker



📜
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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

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

1.98.0 · Source§

impl !Sync for VarsOs

Source§

impl Sync for AtomicBool

Source§

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

1.6.0 · Source§

impl Sync for alloc::string::Drain<'_>

Source§

impl Sync for LinuxMmapAlloc

Available on Linux and crate feature alloc and crate feature unsafe_layout and (crate features std or unsafe_ffi) only.
1.10.0 · Source§

impl Sync for Location<'_>

1.0.0 · Source§

impl Sync for TypeId

1.36.0 · Source§

impl Sync for Waker

Source§

impl Sync for WasmAlloc

Available on WebAssembly and crate feature alloc and crate feature unsafe_layout only.

This is safe in single-threaded WASM environments, but invalid in multi-threaded contexts.

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, S, A> Sync for hashbrown::map::OccupiedEntry<'_, K, V, S, A>
where K: Sync, V: Sync, S: Sync, A: Sync + Allocator,

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 devela::zall::RcWeak<T, A>
where A: Allocator, T: ?Sized,

1.0.0 · Source§

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

Source§

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

Source§

impl<T, A> Sync for CursorMut<'_, T, A>
where T: Sync, A: Allocator + Sync,

1.6.0 · Source§

impl<T, A> Sync for alloc::collections::vec_deque::drain::Drain<'_, T, A>
where T: Sync, A: Allocator + Sync,

1.6.0 · Source§

impl<T, A> Sync for alloc::vec::drain::Drain<'_, T, A>
where T: Sync, A: Sync + Allocator,

1.0.0 · Source§

impl<T, A> Sync for alloc::vec::into_iter::IntoIter<T, A>
where T: Sync, A: Allocator + Sync,

1.0.0 · Source§

impl<T, A> Sync for LinkedList<T, A>
where T: Sync, A: Allocator + Sync,

Source§

impl<T, A> Sync for hashbrown::table::OccupiedEntry<'_, T, A>
where T: Sync, A: Sync + Allocator,

Source§

impl<T, A> Sync for UniqueArc<T, A>
where T: Sync + Send + ?Sized, A: Allocator + Sync,

1.4.0 · Source§

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

1.80.0 · Source§

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

Source§

impl<T: Sync> Sync for BareBox<T>

Available on crate feature unsafe_sync only.
Source§

impl<T: Sync> Sync for CacheAlign<T>

Available on crate feature unsafe_sync only.
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.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.70.0 · Source§

impl<T> !Sync for OnceCell<T>

1.0.0 · Source§

impl<T> !Sync for devela::zall::MpscReceiver<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,

Source§

impl<T> Sync for devela::zall::Arc<T>
where T: Sync + Send + ?Sized,

1.0.0 · Source§

impl<T> Sync for core::sync::atomic::Atomic<T>
where T: AtomicPrimitive,

Source§

impl<T> Sync for devela::zall::Atomic<T>
where T: Copy + Send,

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 core::slice::iter::Iter<'_, T>
where T: Sync,

1.0.0 · Source§

impl<T> Sync for alloc::collections::linked_list::Iter<'_, T>
where T: Sync,

1.0.0 · Source§

impl<T> Sync for core::slice::iter::IterMut<'_, T>
where T: Sync,

1.0.0 · Source§

impl<T> Sync for alloc::collections::linked_list::IterMut<'_, T>
where T: Sync,

1.29.0 · Source§

impl<T> Sync for JoinHandle<T>

Source§

impl<T> Sync for std::sync::nonpoison::mutex::MappedMutexGuard<'_, T>
where T: Sync + ?Sized,

Source§

impl<T> Sync for std::sync::poison::mutex::MappedMutexGuard<'_, T>
where T: Sync + ?Sized,

Source§

impl<T> Sync for std::sync::nonpoison::rwlock::MappedRwLockReadGuard<'_, T>
where T: Sync + ?Sized,

Source§

impl<T> Sync for std::sync::poison::rwlock::MappedRwLockReadGuard<'_, T>
where T: Sync + ?Sized,

Source§

impl<T> Sync for std::sync::nonpoison::rwlock::MappedRwLockWriteGuard<'_, T>
where T: Sync + ?Sized,

Source§

impl<T> Sync for std::sync::poison::rwlock::MappedRwLockWriteGuard<'_, T>
where T: Sync + ?Sized,

Source§

impl<T> Sync for std::sync::nonpoison::mutex::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.0.0 · Source§

impl<T> Sync for devela::zall::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.

Source§

impl<T> Sync for std::sync::nonpoison::mutex::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.19.0 · Source§

impl<T> Sync for devela::zall::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.28.0 · Source§

impl<T> Sync for NonZero<T>

1.70.0 · Source§

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

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,

Source§

impl<T> Sync for std::sync::oneshot::Receiver<T>

Source§

impl<T> Sync for std::sync::mpmc::Receiver<T>
where T: Send,

Source§

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

Source§

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

Source§

impl<T> Sync for std::sync::nonpoison::rwlock::RwLock<T>
where T: Send + Sync + ?Sized,

1.0.0 · Source§

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

Source§

impl<T> Sync for std::sync::nonpoison::rwlock::RwLockReadGuard<'_, T>
where T: Sync + ?Sized,

1.23.0 · Source§

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

Source§

impl<T> Sync for std::sync::nonpoison::rwlock::RwLockWriteGuard<'_, T>
where T: Sync + ?Sized,

1.23.0 · Source§

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

Source§

impl<T> Sync for std::sync::oneshot::Sender<T>

Source§

impl<T> Sync for std::sync::mpmc::Sender<T>
where T: Send,

1.72.0 · Source§

impl<T> Sync for devela::zall::MpscSender<T>
where T: Send,

Source§

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

Available on crate feature unsafe_sync only.
Source§

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

Source§

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

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 UnsafePinned<T>
where T: Sync + ?Sized,

Source§

impl<T> Sync for devela::zall::ArcWeak<T>
where T: Sync + Send + ?Sized,

Auto implementors§

§

impl !Sync for AlsaPcmHandle

§

impl !Sync for FatPtr

§

impl !Sync for LinuxSiginfo

§

impl !Sync for LinuxSparseSet

§

impl !Sync for OnceState

§

impl !Sync for RawWaker

§

impl !Sync for XDisplay

§

impl !Sync for XEvent

§

impl !Sync for XFrontend

§

impl !Sync for XShmBuffer

§

impl !Sync for XWindow

§

impl Sync for AccessError

§

impl Sync for AddrParseError

§

impl Sync for Adler32

§

impl Sync for Alignment

§

impl Sync for Alloc

§

impl Sync for Alsa

§

impl Sync for AlsaError

§

impl Sync for AngleDirection

§

impl Sync for AngleKind

§

impl Sync for Ansi

§

impl Sync for AnsiColor

§

impl Sync for AnsiColor3

§

impl Sync for AnsiColor8

§

impl Sync for AppApple

§

impl Sync for AppConfig

§

impl Sync for AppControl

§

impl Sync for AppControlSet

§

impl Sync for AppUnix

§

impl Sync for AppWindows

§

impl Sync for AppXdg

§

impl Sync for Arch

§

impl Sync for ArenaHandleExample

§

impl Sync for ArenaMarkExample

§

impl Sync for AsciiLut

§

impl Sync for AsciiSet

§

impl Sync for AtomicF32

§

impl Sync for AtomicF64

§

impl Sync for AtomicI8

§

impl Sync for AtomicI16

§

impl Sync for AtomicI32

§

impl Sync for AtomicI64

§

impl Sync for AtomicI128

§

impl Sync for AtomicIsize

§

impl Sync for AtomicU8

§

impl Sync for AtomicU16

§

impl Sync for AtomicU32

§

impl Sync for AtomicU64

§

impl Sync for AtomicU128

§

impl Sync for AtomicUsize

§

impl Sync for AudioChannel

§

impl Sync for AudioChannels

§

impl Sync for AudioDeviceDir

§

impl Sync for AudioStreamDir

§

impl Sync for Backtrace

§

impl Sync for BacktraceStatus

§

impl Sync for Barrier

§

impl Sync for BarrierWaitResult

§

impl Sync for BinTag4

§

impl Sync for BitfieldExample

§

impl Sync for BorrowError

§

impl Sync for BorrowMutError

§

impl Sync for Boundary1d

§

impl Sync for Boundary2d

§

impl Sync for Boundary3d

§

impl Sync for Boxed

§

impl Sync for Builder

§

impl Sync for BumpAlloc

§

impl Sync for ByteSearch

§

impl Sync for CStr

§

impl Sync for CString

§

impl Sync for CallBindTime

§

impl Sync for CallContext

§

impl Sync for CallDispatch

§

impl Sync for CallOpenness

§

impl Sync for CallSemantics

§

impl Sync for CallStorage

§

impl Sync for CharAscii

§

impl Sync for Child

§

impl Sync for ChildStderr

§

impl Sync for ChildStdin

§

impl Sync for ChildStdout

§

impl Sync for CodeLocation

§

impl Sync for CodeSpan

§

impl Sync for ColorDepth

§

impl Sync for Command

§

impl Sync for CommandFlow

§

impl Sync for CompressionMode

§

impl Sync for Condvar

§

impl Sync for Crockford

§

impl Sync for CryptoError

§

impl Sync for DataNotEnough

§

impl Sync for DeviceId

§

impl Sync for DiagLevel

§

impl Sync for DirBuilder

§

impl Sync for DirEntry

§

impl Sync for Duration

§

impl Sync for ElementNotFound

§

impl Sync for Empty

§

impl Sync for EncodingMode

§

impl Sync for EnumSetExample

§

impl Sync for EnumintI8Example

§

impl Sync for Env

§

impl Sync for devela::zall::IoError

§

impl Sync for devela::zall::FmtError

§

impl Sync for ErrorKind

§

impl Sync for Event

§

impl Sync for EventButton

§

impl Sync for EventButtonState

§

impl Sync for EventButtons

§

impl Sync for EventKey

§

impl Sync for EventKeyFfi

§

impl Sync for EventKind

§

impl Sync for EventMouse

§

impl Sync for EventPointer

§

impl Sync for EventPointerKind

§

impl Sync for EventTag

§

impl Sync for EventTagSet

§

impl Sync for EventTarget

§

impl Sync for EventTimestamp

§

impl Sync for EventTimestampMode

§

impl Sync for EventWheel

§

impl Sync for EventWheelUnit

§

impl Sync for EventWindow

§

impl Sync for ExitCode

§

impl Sync for ExitStatus

§

impl Sync for ExitStatusError

§

impl Sync for FailedErrorConversion

§

impl Sync for False

§

impl Sync for File

§

impl Sync for FileTimes

§

impl Sync for FileType

§

impl Sync for Fmt

§

impl Sync for FmtNumConf

§

impl Sync for FmtNumGroup

§

impl Sync for FmtNumShape

§

impl Sync for FmtNumSign

§

impl Sync for FpCategory

§

impl Sync for FromUtf8Error

§

impl Sync for Fs

§

impl Sync for FsPath

§

impl Sync for GraphemeBoundary

§

impl Sync for GraphemeKind

§

impl Sync for GraphemeMachine

§

impl Sync for GraphemePropCb

§

impl Sync for GraphemePropInCb

§

impl Sync for GraphemeProps

§

impl Sync for GraphemeString

§

impl Sync for HandleSpanExample

§

impl Sync for HasherPengy

§

impl Sync for Http

§

impl Sync for HttpError

§

impl Sync for HttpStatus

§

impl Sync for HttpStatusClass

§

impl Sync for HttpVersion

§

impl Sync for IdPinBox

§

impl Sync for IdSeqUsizeExample

§

impl Sync for ImageError

§

impl Sync for IncompatibleBounds

§

impl Sync for IndexOutOfBounds

§

impl Sync for Infallible

§

impl Sync for Instant

§

impl Sync for IntError

§

impl Sync for IntErrorKind

§

impl Sync for InvalidAxisLength

§

impl Sync for InvalidChar

§

impl Sync for InvalidText

§

impl Sync for InvalidUtf8

§

impl Sync for InvalidValue

§

impl Sync for Io

§

impl Sync for IpAddr

§

impl Sync for Ipv4Addr

§

impl Sync for Ipv6Addr

§

impl Sync for devela::zall::Iter

§

impl Sync for IterArgsOsRef

§

impl Sync for JoinPathsError

§

impl Sync for Js

§

impl Sync for JsConsole

§

impl Sync for JsInstant

§

impl Sync for JsTextRenderMetrics

§

impl Sync for JsTextRenderMetricsFull

§

impl Sync for JsTimeout

§

impl Sync for JsValue

§

impl Sync for Key

§

impl Sync for KeyAlreadyExists

§

impl Sync for KeyDead

§

impl Sync for KeyFfi

§

impl Sync for KeyMedia

§

impl Sync for KeyMod

§

impl Sync for KeyMods

§

impl Sync for KeyPad

§

impl Sync for KeyState

§

impl Sync for LINUX_ERRNO

§

impl Sync for LINUX_EXIT

§

impl Sync for LINUX_FILENO

§

impl Sync for LINUX_F_CMD

§

impl Sync for LINUX_IOCTL

§

impl Sync for LINUX_O_FLAGS

§

impl Sync for LINUX_SEEK

§

impl Sync for LINUX_S_IFMT

§

impl Sync for Layout

§

impl Sync for LayoutError

§

impl Sync for Lcg16

§

impl Sync for Libc

§

impl Sync for Linux

§

impl Sync for LinuxClock

§

impl Sync for LinuxError

§

impl Sync for LinuxInstant

§

impl Sync for LinuxRandomMode

§

impl Sync for LinuxSigaction

§

impl Sync for LinuxSigactionFlags

§

impl Sync for LinuxSignal

§

impl Sync for LinuxSignalSet

§

impl Sync for LinuxSigset

§

impl Sync for LinuxStat

§

impl Sync for LinuxTermios

§

impl Sync for LinuxTermiosCc

§

impl Sync for LinuxTermiosCharSize

§

impl Sync for LinuxTermiosControlFlags

§

impl Sync for LinuxTermiosInputFlags

§

impl Sync for LinuxTermiosLocalFlags

§

impl Sync for LinuxTermiosOutputFlags

§

impl Sync for LinuxTime

§

impl Sync for LinuxTimespec

§

impl Sync for Md5

§

impl Sync for Mem

§

impl Sync for MemHedgeCtrl

§

impl Sync for MemHedgeError

§

impl Sync for MemHedgeState

§

impl Sync for MemReplicaError

§

impl Sync for Metadata

§

impl Sync for MismatchedBounds

§

impl Sync for MismatchedCapacity

§

impl Sync for MismatchedDimensions

§

impl Sync for MismatchedIndices

§

impl Sync for MismatchedSizes

§

impl Sync for Month

§

impl Sync for Mpsc

§

impl Sync for NicheValueError

§

impl Sync for NoInverse

§

impl Sync for NodeEmpty

§

impl Sync for NodeLinkNotSet

§

impl Sync for NodeLinkNotUnique

§

impl Sync for NonNegativeRequired

§

impl Sync for NonZeroRequired

§

impl Sync for NotAvailable

§

impl Sync for NotEnoughElements

§

impl Sync for NotEnoughSpace

§

impl Sync for NotImplemented

§

impl Sync for NotSupported

§

impl Sync for NumError

§

impl Sync for Once

§

impl Sync for OpenOptions

§

impl Sync for Order

§

impl Sync for devela::zall::Ordering

§

impl Sync for devela::zall::AtomicOrdering

§

impl Sync for OsStr

§

impl Sync for OsString

§

impl Sync for Otp

§

impl Sync for Output

§

impl Sync for Overflow

§

impl Sync for OwnedFd

§

impl Sync for Panic

§

impl Sync for ParseFloatError

§

impl Sync for ParseIntError

§

impl Sync for PartialSpace

§

impl Sync for PartiallyAdded

§

impl Sync for Path

§

impl Sync for PathBuf

§

impl Sync for Pcg32

§

impl Sync for PcmLayout

§

impl Sync for PcmRaw

§

impl Sync for PcmRawError

§

impl Sync for PcmSample

§

impl Sync for PcmSpec

§

impl Sync for PcmWav

§

impl Sync for PcmWavError

§

impl Sync for PcmWavFmt

§

impl Sync for Permissions

§

impl Sync for PhantomPinned

§

impl Sync for PipeReader

§

impl Sync for PipeWriter

§

impl Sync for Pnm

§

impl Sync for PositiveRequired

§

impl Sync for Ptr

§

impl Sync for RandQualities

§

impl Sync for RandomState

§

impl Sync for RangeFull

§

impl Sync for RasterFormat

§

impl Sync for RasterLayout

§

impl Sync for RawWakerVTable

§

impl Sync for ReadDir

§

impl Sync for RecvError

§

impl Sync for RecvTimeoutError

§

impl Sync for Repeat

§

impl Sync for ReprMode

§

impl Sync for Rfc4648

§

impl Sync for Rfc4648Hex

§

impl Sync for Riff

§

impl Sync for RiffError

§

impl Sync for RunCap

§

impl Sync for RunCapAudio

§

impl Sync for RunCapColor

§

impl Sync for RunCapImage

§

impl Sync for RunCapInput

§

impl Sync for RunCapSystem

§

impl Sync for RunCapText

§

impl Sync for RunCapWindow

§

impl Sync for RunControl

§

impl Sync for RunCycle

§

impl Sync for RunPhase

§

impl Sync for RunSystemInfo

§

impl Sync for RuntimeTick

§

impl Sync for Sha1

§

impl Sync for Sha256

§

impl Sync for Sha512

§

impl Sync for ShellQuote

§

impl Sync for ShellWordError

§

impl Sync for Shutdown

§

impl Sync for Sign

§

impl Sync for Sink

§

impl Sync for SixelChar

§

impl Sync for SixelColor

§

impl Sync for SocketAddr

§

impl Sync for SocketAddrV4

§

impl Sync for SocketAddrV6

§

impl Sync for SparseSetError

§

impl Sync for SplitMix64

§

impl Sync for StdRand

§

impl Sync for Stderr

§

impl Sync for Stdin

§

impl Sync for Stdio

§

impl Sync for Stdout

§

impl Sync for Str

§

impl Sync for String

§

impl Sync for StripPrefixError

§

impl Sync for System

§

impl Sync for SystemTime

§

impl Sync for devela::zall::StdSystemTimeError

§

impl Sync for devela::zall::SystemTimeError

§

impl Sync for TcpListener

§

impl Sync for TcpStream

§

impl Sync for TermCap

§

impl Sync for TermCaps

§

impl Sync for TermColor

§

impl Sync for TermColorKind

§

impl Sync for TermColorMode

§

impl Sync for TermColors

§

impl Sync for TermGridError

§

impl Sync for TermInputParser

§

impl Sync for TermLineMode

§

impl Sync for TermLinux

§

impl Sync for TermMode

§

impl Sync for TermPollPolicy

§

impl Sync for TermSize

§

impl Sync for TermStyle

§

impl Sync for TermStyleExt

§

impl Sync for TermelMeta

§

impl Sync for TermelOccupancy

§

impl Sync for TextCohesion

§

impl Sync for TextCursor

§

impl Sync for TextError

§

impl Sync for TextFit

§

impl Sync for TextIndex

§

impl Sync for TextLayout

§

impl Sync for TextLayoutSpan

§

impl Sync for TextLayoutStep

§

impl Sync for TextParseError

§

impl Sync for TextParseErrorKind

§

impl Sync for TextRange

§

impl Sync for TextSymbol

§

impl Sync for Thread

§

impl Sync for ThreadId

§

impl Sync for TimeDelta

§

impl Sync for TimeError

§

impl Sync for TimeFake

§

impl Sync for TimeScale

§

impl Sync for TimeUnixI64

§

impl Sync for TimeUnixU32

§

impl Sync for Timecode

§

impl Sync for Timeout

§

impl Sync for Translit

§

impl Sync for True

§

impl Sync for TryFromFloatSecsError

§

impl Sync for TryFromIntError

§

impl Sync for TryRecvError

§

impl Sync for UdpSocket

§

impl Sync for UiError

§

impl Sync for UnexpectedEof

§

impl Sync for UnitBi

§

impl Sync for UnitSi

§

impl Sync for ValueKind

§

impl Sync for ValueKind4

§

impl Sync for VarError

§

impl Sync for Version

§

impl Sync for WaitTimeoutResult

§

impl Sync for Wasm

§

impl Sync for WaveletHaar

§

impl Sync for WaveletUnitRole

§

impl Sync for WaveletUnitVec

§

impl Sync for Web

§

impl Sync for WebDocument

§

impl Sync for WebElement

§

impl Sync for WebEventKind

§

impl Sync for WebEventMouse

§

impl Sync for WebEventPointer

§

impl Sync for WebEventWheel

§

impl Sync for WebKeyLocation

§

impl Sync for WebPermission

§

impl Sync for WebPermissionState

§

impl Sync for WebWindow

§

impl Sync for WebWindowState

§

impl Sync for WebWorker

§

impl Sync for WebWorkerError

§

impl Sync for WebWorkerJob

§

impl Sync for Weekday

§

impl Sync for WindowId

§

impl Sync for XCpuBuffer

§

impl Sync for XError

§

impl Sync for XImageMode

§

impl Sync for XRasterRenderer

§

impl Sync for Xabc

§

impl Sync for XorShift128

§

impl Sync for XorShift128p

§

impl Sync for Xoroshiro128pp

§

impl Sync for Xyza8a

§

impl Sync for Xyza8b

§

impl Sync for c_void

§

impl Sync for char7

§

impl Sync for char8

§

impl Sync for char16

§

impl Sync for charu

§

impl Sync for charu_niche

§

impl Sync for f32bits

§

impl Sync for f32bits_niche

§

impl Sync for f64bits

§

impl Sync for f64bits_niche

§

impl Sync for g_bvec2

§

impl Sync for g_bvec3

§

impl Sync for g_bvec4

§

impl Sync for g_dmat2

§

impl Sync for g_dmat3

§

impl Sync for g_dmat4

§

impl Sync for g_dvec2

§

impl Sync for g_dvec3

§

impl Sync for g_dvec4

§

impl Sync for g_ivec2

§

impl Sync for g_ivec3

§

impl Sync for g_ivec4

§

impl Sync for g_mat2

§

impl Sync for g_mat3

§

impl Sync for g_mat4

§

impl Sync for g_mat2x3

§

impl Sync for g_mat2x4

§

impl Sync for g_mat3x2

§

impl Sync for g_mat3x4

§

impl Sync for g_mat4x2

§

impl Sync for g_mat4x3

§

impl Sync for g_uvec2

§

impl Sync for g_uvec3

§

impl Sync for g_uvec4

§

impl Sync for g_vec2

§

impl Sync for g_vec3

§

impl Sync for g_vec4

§

impl Sync for g_vertex2

§

impl Sync for g_vertex3

§

impl Sync for m128

§

impl Sync for m256

§

impl Sync for m128d

§

impl Sync for m128i

§

impl Sync for m256d

§

impl Sync for m256i

§

impl<'a, 'b, T> Sync for EnumExample<'a, 'b, T>
where T: Sync,

§

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, 's, T, const N: usize> Sync for MemHedgeRead<'a, 's, T, N>
where T: Sync,

§

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

§

impl<'a, C> Sync for GraphemeScanner<'a, C>
where C: Sync,

§

impl<'a, DST, BUF> !Sync for DstQueueIter<'a, DST, BUF>

§

impl<'a, DST, BUF> !Sync for DstQueueIterMut<'a, DST, BUF>

§

impl<'a, DST, BUF> !Sync for DstQueuePopGuard<'a, DST, BUF>

§

impl<'a, DST, BUF> !Sync for DstStackIter<'a, DST, BUF>

§

impl<'a, DST, BUF> !Sync for DstStackIterMut<'a, DST, BUF>

§

impl<'a, E, C> Sync for RunFrame<'a, E, C>
where C: Sync, E: Sync,

§

impl<'a, E> Sync for RunStep<'a, E>
where E: Sync,

§

impl<'a, K, V, A> Sync for devela::zall::BTreeMapEntry<'a, K, V, A>
where K: Sync, A: Sync, V: Sync,

§

impl<'a, K, V, S, A> Sync for devela::zall::HashMapEntry<'a, K, V, S, A>
where K: Sync, V: Sync, S: Sync, A: Sync,

§

impl<'a, Source> Sync for CharIter<'a, Source>
where Source: Sync,

§

impl<'a, T, E> Sync for CoroWork<'a, T, E>
where T: Sync, E: Sync,

§

impl<'a, T, S> Sync for BufferViewExample<'a, T, S>
where S: Sync, T: Sync,

§

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

§

impl<'a, T, const SPIN: usize, const YIELD: usize, const SLEEP: u64> !Sync for SpinLockGuard<'a, T, SPIN, YIELD, SLEEP>

§

impl<'a, T> !Sync for CurrentGuard<'a, T>

§

impl<'a, T> !Sync for devela::zall::MpscIter<'a, T>

§

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

§

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

§

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

§

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

§

impl<'a, T> Sync for DebugWith<'a, T>
where T: Sync + ?Sized, <T as DebugExt>::Ctx: Sync,

§

impl<'a, T> Sync for MaybeOwned<'a, T>
where <T as Ownership>::Backing: Sync, T: Sync + ?Sized,

§

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

§

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

§

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

§

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

§

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

§

impl<'a, V> Sync for StaticMapEntry<'a, V>
where V: Sync,

§

impl<'a, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11> Sync for TupleElementMut<'a, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11>
where _0: Sync, _1: Sync, _2: Sync, _3: Sync, _4: Sync, _5: Sync, _6: Sync, _7: Sync, _8: Sync, _9: Sync, _10: Sync, _11: Sync,

§

impl<'a, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11> Sync for TupleElementRef<'a, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11>
where _0: Sync, _1: Sync, _2: Sync, _3: Sync, _4: Sync, _5: Sync, _6: Sync, _7: Sync, _8: Sync, _9: Sync, _10: Sync, _11: Sync,

§

impl<'a, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11> Sync for TupleIterMut<'a, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11>
where _0: Sync, _1: Sync, _2: Sync, _3: Sync, _4: Sync, _5: Sync, _6: Sync, _7: Sync, _8: Sync, _9: Sync, _10: Sync, _11: Sync,

§

impl<'a, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11> Sync for TupleIterRef<'a, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11>
where _0: Sync, _1: Sync, _2: Sync, _3: Sync, _4: Sync, _5: Sync, _6: Sync, _7: Sync, _8: Sync, _9: Sync, _10: Sync, _11: Sync,

§

impl<'a, const CAP: usize> Sync for SixelPaletteIter<'a, CAP>

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<'a> Sync for AnsiLink<'a>

§

impl<'a> Sync for AudioDevice<'a>

§

impl<'a> Sync for AudioDeviceCow<'a>

§

impl<'a> Sync for Backing<'a>

§

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

§

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

§

impl<'a> Sync for FmtWriter<'a>

§

impl<'a> Sync for HttpMethod<'a>

§

impl<'a> Sync for HttpRequestLine<'a>

§

impl<'a> Sync for HttpResponseHead<'a>

§

impl<'a> Sync for IdPin<'a>

§

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

§

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

§

impl<'a> Sync for RasterBytesMut<'a>

§

impl<'a> Sync for RasterBytesRef<'a>

§

impl<'a> Sync for RiffChunk<'a>

§

impl<'a> Sync for RiffChunkIter<'a>

§

impl<'a> Sync for ShellLex<'a>

§

impl<'a> Sync for StrBuf<'a>

§

impl<'a> Sync for TextScanner<'a>

§

impl<'a> Sync for TimeFakeRef<'a>

§

impl<'a> Sync for VersionFull<'a>

§

impl<'a> Sync for XPresent<'a>

§

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

§

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

§

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

§

impl<'g> Sync for FontArt<'g>

§

impl<'glyphs, T> Sync for FontBitmap<'glyphs, T>
where T: Sync,

§

impl<'s, T, const CAP: usize, IDX, S> Sync for DestaqueIter<'s, T, CAP, IDX, S>
where IDX: Sync, <S as Storage>::Stored<[T; CAP]>: Sync,

§

impl<'s, T, const CAP: usize, IDX, S> Sync for StackIter<'s, T, CAP, IDX, S>
where IDX: Sync, <S as Storage>::Stored<[T; CAP]>: Sync,

§

impl<'s, T> Sync for SliceIter<'s, T>
where T: Sync,

§

impl<'s, T> Sync for SliceIterMut<'s, T>
where T: Sync,

§

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

§

impl<'scope, T> Sync for ScopedJoinHandle<'scope, T>
where T: Send,

§

impl<'t, T, F> Sync for OptionFmtOrElse<'t, T, F>
where F: Sync, T: Sync,

§

impl<'t, T, U> Sync for OptionFmtOr<'t, T, U>
where U: Sync, T: Sync,

§

impl<'t, T> Sync for OptionFmt<'t, T>
where T: Sync,

§

impl<A, B, C, D, E, F, G, H> Sync for Pinned<A, B, C, D, E, F, G, H>
where A: Sync, B: Sync, C: Sync, D: Sync, E: Sync, F: Sync, G: Sync, H: Sync,

§

impl<A> !Sync for VecChunk<A>

§

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

§

impl<B> Sync for Lines<B>
where B: Sync,

§

impl<B> Sync for PcmRawBuf<B>
where B: Sync,

§

impl<B> Sync for PcmWavBuf<B>
where B: Sync,

§

impl<B> Sync for Split<B>
where B: Sync,

§

impl<B> Sync for TermRenderer<B>
where B: Sync,

§

impl<BE, AE, RE, PE> Sync for RunDriverFrameError<BE, AE, RE, PE>
where BE: Sync, AE: Sync, RE: Sync, PE: Sync,

§

impl<BE, AE> Sync for RunDriverError<BE, AE>
where BE: Sync, AE: Sync,

§

impl<DST, BUF> !Sync for DstQueue<DST, BUF>

§

impl<DST, BUF> !Sync for DstStack<DST, BUF>

§

impl<DST, BUF> Sync for DstValue<DST, BUF>
where BUF: Sync, DST: Sync + ?Sized,

§

impl<E, S> Sync for TermGrid<E, S>
where S: Sync,

§

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

§

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

§

impl<G, C> Sync for GcdReturn<G, C>
where G: Sync, C: Sync,

§

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

§

impl<H> Sync for BuildHasherDefault<H>

§

impl<Id, const MAX: usize> Sync for IdRegistry<Id, MAX>
where Id: Sync,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<K, V, const N: usize> Sync for MapStaticConstU8Example<K, V, N>
where K: Sync, V: Sync,

§

impl<K, V, const N: usize> Sync for MapStaticTypeIdExample<K, V, N>
where K: Sync, V: Sync,

§

impl<K, V, const N: usize> Sync for MapStaticU16Example<K, V, N>
where K: Sync, V: Sync,

§

impl<K> Sync for GameAction<K>
where K: Sync,

§

impl<K> Sync for GameOutcome<K>
where K: Sync,

§

impl<K> Sync for GamePhase<K>
where K: Sync,

§

impl<K> Sync for GameRole<K>
where K: Sync,

§

impl<N, D> Sync for Ratio<N, D>
where N: Sync, D: Sync,

§

impl<N, H> Sync for Mismatch<N, H>
where N: Sync, H: Sync,

§

impl<P, E, const D: usize> Sync for Region<P, E, D>
where P: Sync, E: Sync,

§

impl<P, E, const D: usize> Sync for RegionStrided<P, E, D>
where E: Sync, P: Sync,

§

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

§

impl<R, As> Sync for GameTurn<R, As>
where R: Sync, As: Sync,

§

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

§

impl<R> Sync for devela::zall::IoBytes<R>
where R: Sync,

§

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

§

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

§

impl<Rs, As, Os> Sync for GameSession<Rs, As, Os>
where Rs: Sync, As: Sync, Os: Sync,

§

impl<S, C> Sync for TermPen<S, C>
where S: Sync, C: Sync,

§

impl<S, V> Sync for Own<S, V>
where S: Sync, V: Sync,

§

impl<S> Sync for ByteCursor<S>
where S: Sync,

§

impl<Ss> Sync for GameLegacy<Ss>
where Ss: Sync,

§

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

§

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

§

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

§

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

§

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

§

impl<T, B> Sync for PcmBuf<T, B>
where B: Sync,

§

impl<T, E> !Sync for CoroManager<T, E>

§

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

§

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, S> Sync for ScopeGuard<T, F, S>
where S: Sync, T: Sync, F: Sync,

§

impl<T, N> Sync for CycleCount<T, N>
where N: Sync, T: Sync,

§

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

§

impl<T, S, C, M> Sync for Termel<T, S, C, M>
where S: Sync, C: Sync, M: Sync, T: Sync,

§

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

§

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

§

impl<T, U> Sync for Chain<T, U>
where T: Sync, U: Sync,

§

impl<T, const C: usize, const R: usize, const CR: usize, const RMAJ: bool, S> Sync for Array2d<T, C, R, CR, RMAJ, S>
where <S as Storage>::Stored<[T; CR]>: Sync,

§

impl<T, const CAP: usize, IDX, S> Sync for Destaque<T, CAP, IDX, S>
where IDX: Sync, <S as Storage>::Stored<[T; CAP]>: Sync,

§

impl<T, const CAP: usize, IDX, S> Sync for Stack<T, CAP, IDX, S>
where IDX: Sync, <S as Storage>::Stored<[T; CAP]>: Sync,

§

impl<T, const CAP: usize, S> Sync for Array<T, CAP, S>
where <S as Storage>::Stored<[T; CAP]>: Sync,

§

impl<T, const CAP: usize, S> Sync for ArrayUninit<T, CAP, S>
where <S as Storage>::Stored<[MaybeUninit<T>; CAP]>: Sync,

§

impl<T, const CAP: usize> Sync for DstArray<T, CAP>
where T: Sync,

§

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

§

impl<T, const D: usize> Sync for Distance<T, D>
where T: Sync,

§

impl<T, const D: usize> Sync for Extent<T, D>
where T: Sync,

§

impl<T, const D: usize> Sync for Orientation<T, D>
where T: Sync,

§

impl<T, const D: usize> Sync for Point<T, D>
where T: Sync,

§

impl<T, const D: usize> Sync for Position<T, D>
where T: Sync,

§

impl<T, const D: usize> Sync for Stride<T, D>
where T: Sync,

§

impl<T, const D: usize> Sync for VecPoints<T, D>
where T: Sync,

§

impl<T, const D: usize> Sync for Vector<T, D>
where T: Sync,

§

impl<T, const LINEAR: bool, const LIGHTNESS: bool> Sync for Lum<T, LINEAR, LIGHTNESS>
where T: Sync,

§

impl<T, const LINEAR: bool, const PREMUL: bool> Sync for Rgba<T, LINEAR, PREMUL>
where T: Sync,

§

impl<T, const LINEAR: bool> Sync for Rgb<T, LINEAR>
where T: Sync,

§

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

§

impl<T, const R: usize, const C: usize, const LEN: usize, const RMAJ: bool, const MAX_LEN_DET: usize> Sync for Matrix<T, R, C, LEN, RMAJ, MAX_LEN_DET>
where T: Sync,

§

impl<T, const SPIN: usize = 5, const YIELD: usize = 10, const SLEEP: u64 = 100> !Sync for SpinLock<T, SPIN, YIELD, SLEEP>

§

impl<T> !Sync for devela::zall::MpscIntoIter<T>

§

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

§

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

§

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

§

impl<T> Sync for AtomicPtr<T>

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<T> Sync for devela::zall::IoCursor<T>
where T: Sync,

§

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

§

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

§

impl<T> Sync for Discriminant<T>

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<T> Sync for LocalKey<T>

§

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

§

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

§

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

§

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

§

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

§

impl<T> Sync for Pending<T>

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<T> Sync for TypeResource<T>
where <T as TypeResourced>::TypeData: Sync,

§

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

§

impl<Ts> Sync for GameCycle<Ts>
where Ts: Sync,

§

impl<V, Q> Sync for ValueQuant<V, Q>
where V: Sync, Q: Sync,

§

impl<V, T> Sync for Timed<V, T>
where V: Sync, T: Sync,

§

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, MO, D, H, M, S, MS, US, NS> Sync for TimeSplit<Y, MO, D, H, M, S, MS, US, NS>
where Y: Sync, MO: Sync, D: Sync, H: Sync, M: Sync, S: Sync, MS: Sync, US: Sync, NS: Sync,

§

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

§

impl<_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11> Sync for TupleElement<_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11>
where _0: Sync, _1: Sync, _2: Sync, _3: Sync, _4: Sync, _5: Sync, _6: Sync, _7: Sync, _8: Sync, _9: Sync, _10: Sync, _11: Sync,

§

impl<_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11> Sync for TupleIter<_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11>
where _0: Sync, _1: Sync, _2: Sync, _3: Sync, _4: Sync, _5: Sync, _6: Sync, _7: Sync, _8: Sync, _9: Sync, _10: Sync, _11: Sync,

§

impl<const A: usize, const B: usize, const C: usize> Sync for XorShift8<A, B, C>

§

impl<const BASIS: usize, const A: usize, const B: usize, const C: usize> Sync for XorShift16<BASIS, A, B, C>

§

impl<const BASIS: usize, const A: usize, const B: usize, const C: usize> Sync for XorShift32<BASIS, A, B, C>

§

impl<const BASIS: usize, const A: usize, const B: usize, const C: usize> Sync for XorShift64<BASIS, A, B, C>

§

impl<const CAP: usize, const MSG_LEN: usize> Sync for LoggerStatic<CAP, MSG_LEN>

§

impl<const CAP: usize> Sync for ArenaExample<CAP>

§

impl<const CAP: usize> Sync for EventQueue<CAP>

§

impl<const CAP: usize> Sync for GraphemeNonul<CAP>

§

impl<const CAP: usize> Sync for GraphemeU8<CAP>

§

impl<const CAP: usize> Sync for SixelPalette<CAP>

§

impl<const CAP: usize> Sync for StringNonul<CAP>

§

impl<const CAP: usize> Sync for StringSmallAlloc<CAP>

§

impl<const CAP: usize> Sync for StringU8<CAP>

§

impl<const DENSE: usize, const SPARSE: usize> Sync for SparseSetArray<DENSE, SPARSE>

§

impl<const LEN: usize, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11> Sync for Oneof<LEN, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11>
where _0: Sync, _1: Sync, _2: Sync, _3: Sync, _4: Sync, _5: Sync, _6: Sync, _7: Sync, _8: Sync, _9: Sync, _10: Sync, _11: Sync,

§

impl<const MAX_COLORS: usize> Sync for SixelEncoder<MAX_COLORS>

§

impl<const N: usize, const PANIC: bool> Sync for RandFake<N, PANIC>

§

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

§

impl<const RADIX: usize, const LUT: bool, const PAD: bool, const CASE: bool, CODE> Sync for Base<RADIX, LUT, PAD, CASE, CODE>
where CODE: Sync,

§

impl<const V: i8> Sync for NonValueI8<V>

§

impl<const V: i16> Sync for NonValueI16<V>

§

impl<const V: i32> Sync for NonValueI32<V>

§

impl<const V: i64> Sync for NonValueI64<V>

§

impl<const V: i128> Sync for NonValueI128<V>

§

impl<const V: isize> Sync for NonValueIsize<V>

§

impl<const V: u8> Sync for NonValueU8<V>

§

impl<const V: u16> Sync for NonValueU16<V>

§

impl<const V: u32> Sync for NonValueU32<V>

§

impl<const V: u64> Sync for NonValueU64<V>

§

impl<const V: u128> Sync for NonValueU128<V>

§

impl<const V: usize> Sync for NonValueUsize<V>