Trait cretonne::prelude::codegen::entity::__core::prelude::v1::Sync 1.0.0[−][src]
#[lang = "sync"]pub unsafe auto trait Sync { }
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.
Types that are not Sync
are those that have "interior
mutability" in a non-thread-safe form, such as cell::Cell
and cell::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::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
.
Implementations on Foreign Types
impl !Sync for Args
[src]
impl !Sync for Args
impl<T> Sync for Mutex<T> where
T: Send + ?Sized,
[src]
impl<T> Sync for Mutex<T> where
T: Send + ?Sized,
impl<'a, T> Sync for RwLockWriteGuard<'a, T> where
T: Sync + ?Sized,
[src]
impl<'a, T> Sync for RwLockWriteGuard<'a, T> where
T: Sync + ?Sized,
impl<T> Sync for Key<T>
[src]
impl<T> Sync for Key<T>
impl<T> !Sync for Sender<T>
[src]
impl<T> !Sync for Sender<T>
impl Sync for Once
[src]
impl Sync for Once
impl<T> Sync for RwLock<T> where
T: Send + Sync + ?Sized,
[src]
impl<T> Sync for RwLock<T> where
T: Send + Sync + ?Sized,
impl<'a, T> Sync for MutexGuard<'a, T> where
T: Sync + ?Sized,
[src]
impl<'a, T> Sync for MutexGuard<'a, T> where
T: Sync + ?Sized,
impl !Sync for ArgsOs
[src]
impl !Sync for ArgsOs
impl<'a, T> Sync for RwLockReadGuard<'a, T> where
T: Sync + ?Sized,
[src]
impl<'a, T> Sync for RwLockReadGuard<'a, T> where
T: Sync + ?Sized,
impl<T> !Sync for Receiver<T>
[src]
impl<T> !Sync for Receiver<T>
impl<T> !Sync for *mut T where
T: ?Sized,
[src]
impl<T> !Sync for *mut T where
T: ?Sized,
impl<T> !Sync for *const T where
T: ?Sized,
[src]
impl<T> !Sync for *const T where
T: ?Sized,
impl<T> Sync for Arc<T> where
T: Send + Sync + ?Sized,
[src]
impl<T> Sync for Arc<T> where
T: Send + Sync + ?Sized,
impl<'a, T> Sync for IterMut<'a, T> where
T: Sync,
[src]
impl<'a, T> Sync for IterMut<'a, T> where
T: Sync,
impl<T> Sync for LinkedList<T> where
T: Sync,
[src]
impl<T> Sync for LinkedList<T> where
T: Sync,
impl<'a, T> Sync for Drain<'a, T> where
T: Sync,
[src]
impl<'a, T> Sync for Drain<'a, T> where
T: Sync,
impl<T> Sync for Weak<T> where
T: Send + Sync + ?Sized,
[src]
impl<T> Sync for Weak<T> where
T: Send + Sync + ?Sized,
impl<T> !Sync for Rc<T> where
T: ?Sized,
[src]
impl<T> !Sync for Rc<T> where
T: ?Sized,
impl<'a> Sync for Drain<'a>
[src]
impl<'a> Sync for Drain<'a>
impl<'a, T> Sync for Drain<'a, T> where
T: Sync,
[src]
impl<'a, T> Sync for Drain<'a, T> where
T: Sync,
impl<T> !Sync for Weak<T> where
T: ?Sized,
[src]
impl<T> !Sync for Weak<T> where
T: ?Sized,
impl<'a, T> Sync for Iter<'a, T> where
T: Sync,
[src]
impl<'a, T> Sync for Iter<'a, T> where
T: Sync,
impl<T> Sync for IntoIter<T> where
T: Sync,
[src]
impl<T> Sync for IntoIter<T> where
T: Sync,
impl Sync for isize
impl Sync for isize
impl Sync for i8
impl Sync for i8
impl Sync for i16
impl Sync for i16
impl Sync for i32
impl Sync for i32
impl Sync for i64
impl Sync for i64
impl Sync for i128
impl Sync for i128
impl Sync for usize
impl Sync for usize
impl Sync for u8
impl Sync for u8
impl Sync for u16
impl Sync for u16
impl Sync for u32
impl Sync for u32
impl Sync for u64
impl Sync for u64
impl Sync for u128
impl Sync for u128
impl Sync for f32
impl Sync for f32
impl Sync for f64
impl Sync for f64
impl Sync for f32
impl Sync for f32
impl Sync for f64
impl Sync for f64
impl Sync for char
impl Sync for char
impl Sync for str
impl Sync for str
impl Sync for str
impl Sync for str
impl Sync for Decoded
impl Sync for Decoded
impl Sync for FullDecoded
impl Sync for FullDecoded
impl<'a> Sync for Part<'a>
impl<'a> Sync for Part<'a>
impl<'a> Sync for Formatted<'a>
impl<'a> Sync for Formatted<'a>
impl Sync for Sign
impl Sync for Sign
impl Sync for Unpacked
impl Sync for Unpacked
impl Sync for Sign
impl Sync for Sign
impl<'a> Sync for Decimal<'a>
impl<'a> Sync for Decimal<'a>
impl<'a> Sync for ParseResult<'a>
impl<'a> Sync for ParseResult<'a>
impl Sync for ParseFloatError
impl Sync for ParseFloatError
impl Sync for Big32x40
impl Sync for Big32x40
impl Sync for Big8x3
impl Sync for Big8x3
impl Sync for Argument
impl Sync for Argument
impl Sync for FormatSpec
impl Sync for FormatSpec
impl Sync for Alignment
impl Sync for Alignment
impl Sync for Count
impl Sync for Count
impl Sync for Position
impl Sync for Position
Implementors
impl<T> Sync for AtomicPtr<T>
impl<'a, T> Sync for cretonne::prelude::codegen::entity::__core::slice::Iter<'a, T> where
T: Sync,impl Sync for AtomicI32
impl Sync for AtomicU16
impl Sync for AtomicU64
impl<T> !Sync for UnsafeCell<T> where
T: ?Sized,impl<T> !Sync for NonNull<T> where
T: ?Sized,impl Sync for AtomicI64
impl Sync for AtomicU8
impl Sync for AtomicI16
impl<T> !Sync for Cell<T>
impl<'a, T> Sync for cretonne::prelude::codegen::entity::__core::slice::IterMut<'a, T> where
T: Sync,impl Sync for AtomicBool
impl Sync for AtomicUsize
impl<T> !Sync for RefCell<T> where
T: ?Sized,impl Sync for AtomicI8
impl Sync for AtomicIsize
impl Sync for AtomicU32
Auto implementors
impl<'a, T> Sync for DisplayList<'a, T> where
T: Sync,impl<K, V, C> Sync for cretonne::prelude::codegen::bforest::Map<K, V, C> where
C: Sync,
K: Sync,
V: Sync,impl<'a, K, C> Sync for SetIter<'a, K, C> where
C: Sync,
K: Sync,impl<K, C> Sync for Set<K, C> where
C: Sync,
K: Sync,impl<'a, K, V, C> Sync for MapIter<'a, K, V, C> where
C: Sync,
K: Sync,
V: Sync,impl<K, V, C> Sync for MapForest<K, V, C> where
K: Sync,
V: Sync,impl<K, C> Sync for SetForest<K, C> where
K: Sync,impl<'a, K, V, C> Sync for MapCursor<'a, K, V, C> where
C: Sync,
K: Sync,
V: Sync,impl<'a, K, C> Sync for SetCursor<'a, K, C> where
C: Sync,
K: Sync,impl Sync for Reloc
impl Sync for NullTrapSink
impl Sync for RegDiversions
impl<'a> !Sync for MemoryCodeSink<'a>
impl<'a> Sync for CFGPrinter<'a>
impl Sync for CursorPosition
impl<'f> Sync for FuncCursor<'f>
impl<'f> !Sync for EncCursor<'f>
impl Sync for DominatorTree
impl Sync for DominatorTreePreorder
impl<'a> Sync for ChildIter<'a>
impl Sync for ControlFlowGraph
impl<'a> Sync for PredIter<'a>
impl Sync for IntCC
impl Sync for FloatCC
impl Sync for DataFlowGraph
impl Sync for ValueDef
impl<'a> !Sync for DisplayInst<'a>
impl Sync for Ebb
impl Sync for Value
impl Sync for Inst
impl Sync for StackSlot
impl Sync for GlobalValue
impl Sync for JumpTable
impl Sync for FuncRef
impl Sync for SigRef
impl Sync for Heap
impl Sync for AnyEntity
impl Sync for Function
impl<'a> !Sync for DisplayFunction<'a>
impl<'a> Sync for InstOffsetIter<'a>
impl Sync for Imm64
impl Sync for Uimm32
impl Sync for Offset32
impl Sync for Ieee32
impl Sync for Ieee64
impl Sync for InstructionFormat
impl Sync for InstructionData
impl Sync for Opcode
impl Sync for VariableArgs
impl<'a> Sync for BranchInfo<'a>
impl<'a> Sync for CallInfo<'a>
impl Sync for OpcodeConstraints
impl Sync for ValueTypeSet
impl Sync for ResolvedConstraint
impl Sync for JumpTableData
impl<'a> Sync for Entries<'a>
impl Sync for cretonne::prelude::codegen::ir::layout::Layout
impl<'f> Sync for Ebbs<'f>
impl<'f> Sync for Insts<'f>
impl Sync for StackSlotKind
impl Sync for StackSlotData
impl Sync for StackSlots
impl Sync for Type
impl Sync for ValueLoc
impl Sync for ArgumentPurpose
impl Sync for GlobalValueData
impl<'f, IIB> Sync for InsertBuilder<'f, IIB> where
IIB: Sync,impl Sync for ArgumentLoc
impl Sync for ExpandedProgramPoint
impl Sync for AbiParam
impl Sync for Signature
impl Sync for HeapStyle
impl Sync for SourceLoc
impl Sync for LibCall
impl Sync for ExternalName
impl Sync for ExtFuncData
impl Sync for HeapData
impl Sync for HeapBase
impl Sync for ArgumentExtension
impl Sync for ProgramPoint
impl Sync for TrapCode
impl Sync for MemFlags
impl Sync for RegBank
impl Sync for RegClassData
impl Sync for RegClassIndex
impl Sync for RegInfo
impl<'a> Sync for DisplayRegUnit<'a>
impl Sync for LookupError
impl Sync for cretonne::prelude::isa::Builder
impl Sync for StackRef
impl Sync for RecipeConstraints
impl Sync for OperandConstraint
impl Sync for Encoding
impl Sync for StackBaseMask
impl Sync for BranchRange
impl Sync for EncInfo
impl Sync for ConstraintKind
impl Sync for StackBase
impl Sync for Loop
impl Sync for LoopAnalysis
impl Sync for cretonne::prelude::settings::Builder
impl Sync for SetError
impl<'a> Sync for PredicateView<'a>
impl Sync for Template
impl Sync for Descriptor
impl Sync for Detail
impl Sync for Flags
impl Sync for OptLevel
impl Sync for CallConv
impl<'a> !Sync for FlagsOrIsa<'a>
impl Sync for PassTimes
impl Sync for TimingToken
impl Sync for VerifierError
impl Sync for Context
impl<T> Sync for PackedOption<T> where
T: Sync,impl<T> Sync for EntityList<T> where
T: Sync,impl<'a, K, V> Sync for cretonne::prelude::codegen::entity::IterMut<'a, K, V> where
K: Sync,
V: Sync,impl<K, V> Sync for EntityMap<K, V> where
K: Sync,
V: Sync,impl<K> Sync for EntitySet<K> where
K: Sync,impl<'a, K, V> Sync for cretonne::prelude::codegen::entity::Iter<'a, K, V> where
K: Sync,
V: Sync,impl<K> Sync for Keys<K> where
K: Sync,impl<K, V> Sync for PrimaryMap<K, V> where
K: Sync,
V: Sync,impl<T> Sync for ListPool<T> where
T: Sync,impl Sync for NonZeroU8
impl Sync for NonZeroU16
impl Sync for NonZeroU32
impl Sync for NonZeroU64
impl Sync for NonZeroU128
impl Sync for NonZeroUsize
impl<T> Sync for Wrapping<T> where
T: Sync,impl Sync for FpCategory
impl Sync for TryFromIntError
impl Sync for ParseIntError
impl<T> Sync for Option<T> where
T: Sync,impl<T, E> Sync for Result<T, E> where
E: Sync,
T: Sync,impl<T> Sync for Discriminant<T>
impl<T> Sync for ManuallyDrop<T> where
T: Sync,impl<'a, T: ?Sized> Sync for PinMut<'a, T> where
T: Sync,impl<T: ?Sized> Sync for PhantomData<T> where
T: Sync,impl Sync for Pinned
impl<Idx> Sync for RangeToInclusive<Idx> where
Idx: Sync,impl<Idx> Sync for RangeFrom<Idx> where
Idx: Sync,impl<Idx> Sync for RangeInclusive<Idx> where
Idx: Sync,impl<T> Sync for Bound<T> where
T: Sync,impl<Idx> Sync for Range<Idx> where
Idx: Sync,impl<Y, R> Sync for GeneratorState<Y, R> where
R: Sync,
Y: Sync,impl<Idx> Sync for RangeTo<Idx> where
Idx: Sync,impl Sync for RangeFull
impl Sync for cretonne::prelude::codegen::entity::__core::cmp::Ordering
impl<T> Sync for Reverse<T> where
T: Sync,impl Sync for TypeId
impl Sync for TryFromSliceError
impl Sync for cretonne::prelude::codegen::entity::__core::ascii::EscapeDefault
impl Sync for cretonne::prelude::codegen::entity::__core::sync::atomic::Ordering
impl Sync for BorrowError
impl Sync for BorrowMutError
impl<'b, T> !Sync for Ref<'b, T>
impl<'b, T> !Sync for RefMut<'b, T>
impl Sync for EscapeUnicode
impl Sync for cretonne::prelude::codegen::entity::__core::char::EscapeDefault
impl Sync for EscapeDebug
impl Sync for ToLowercase
impl Sync for ToUppercase
impl<I> Sync for DecodeUtf16<I> where
I: Sync,impl<I> Sync for DecodeUtf8<I> where
I: Sync,impl Sync for ParseCharError
impl Sync for DecodeUtf16Error
impl Sync for UnicodeVersion
impl Sync for CharTryFromError
impl Sync for InvalidSequence
impl<'a> !Sync for PanicInfo<'a>
impl<'a> Sync for Location<'a>
impl<T> Sync for Rev<T> where
T: Sync,impl<I> Sync for Cloned<I> where
I: Sync,impl<I> Sync for Cycle<I> where
I: Sync,impl<I> Sync for StepBy<I> where
I: 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<I, F> Sync for cretonne::prelude::codegen::entity::__core::iter::Map<I, F> where
F: Sync,
I: Sync,impl<I, P> Sync for Filter<I, P> where
I: Sync,
P: Sync,impl<I, F> Sync for FilterMap<I, F> where
F: Sync,
I: Sync,impl<I> Sync for Enumerate<I> where
I: Sync,impl<I> Sync for Peekable<I> where
I: Sync,
<I as Iterator>::Item: 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> Sync for Skip<I> where
I: Sync,impl<I> Sync for Take<I> where
I: Sync,impl<I, St, F> Sync for Scan<I, St, F> where
F: Sync,
I: Sync,
St: Sync,impl<I, U, F> Sync for FlatMap<I, U, F> where
F: Sync,
I: Sync,
<U as IntoIterator>::IntoIter: Sync,impl<I> Sync for Flatten<I> where
I: Sync,
<<I as Iterator>::Item as IntoIterator>::IntoIter: Sync,impl<I> Sync for Fuse<I> where
I: Sync,impl<I, F> Sync for Inspect<I, F> where
F: Sync,
I: Sync,impl<F> Sync for RepeatWith<F> where
F: Sync,impl<T> Sync for cretonne::prelude::codegen::entity::__core::iter::Once<T> where
T: Sync,impl<T> Sync for Empty<T> where
T: Sync,impl<A> Sync for Repeat<A> where
A: Sync,impl<'a, A> Sync for cretonne::prelude::codegen::entity::__core::option::Iter<'a, A> where
A: Sync,impl<'a, A> Sync for cretonne::prelude::codegen::entity::__core::option::IterMut<'a, A> where
A: Sync,impl<A> Sync for cretonne::prelude::codegen::entity::__core::option::IntoIter<A> where
A: Sync,impl Sync for NoneError
impl !Sync for TraitObject
impl<'a, T> Sync for cretonne::prelude::codegen::entity::__core::result::Iter<'a, T> where
T: Sync,impl<'a, T> Sync for cretonne::prelude::codegen::entity::__core::result::IterMut<'a, T> where
T: Sync,impl<T> Sync for cretonne::prelude::codegen::entity::__core::result::IntoIter<T> where
T: Sync,impl<'a, T, P> Sync for cretonne::prelude::codegen::entity::__core::slice::Split<'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 cretonne::prelude::codegen::entity::__core::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 cretonne::prelude::codegen::entity::__core::slice::SplitN<'a, T, P> where
P: Sync,
T: Sync,impl<'a, T, P> Sync for cretonne::prelude::codegen::entity::__core::slice::RSplitN<'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, P> Sync for RSplitNMut<'a, T, P> where
P: Sync,
T: Sync,impl<'a, T> Sync for Windows<'a, T> where
T: Sync,impl<'a, T> Sync for Chunks<'a, T> where
T: Sync,impl<'a, T> Sync for ChunksMut<'a, T> where
T: Sync,impl<'a, T> Sync for ExactChunks<'a, T> where
T: Sync,impl<'a, T> Sync for ExactChunksMut<'a, T> where
T: Sync,impl Sync for SearchStep
impl<'a> Sync for CharSearcher<'a>
impl<'a, 'b> Sync for CharSliceSearcher<'a, 'b>
impl<'a, F> Sync for CharPredicateSearcher<'a, F> where
F: Sync,impl<'a, 'b> Sync for StrSearcher<'a, 'b>
impl Sync for Utf8Lossy
impl<'a> Sync for Utf8LossyChunksIter<'a>
impl<'a> Sync for Utf8LossyChunk<'a>
impl Sync for ParseBoolError
impl Sync for Utf8Error
impl<'a> Sync for Chars<'a>
impl<'a> Sync for CharIndices<'a>
impl<'a> Sync for Bytes<'a>
impl<'a, P> Sync for cretonne::prelude::codegen::entity::__core::str::Split<'a, P> where
<P as Pattern<'a>>::Searcher: Sync,impl<'a, P> Sync for cretonne::prelude::codegen::entity::__core::str::RSplit<'a, P> where
<P as Pattern<'a>>::Searcher: Sync,impl<'a, P> Sync for SplitTerminator<'a, P> where
<P as Pattern<'a>>::Searcher: Sync,impl<'a, P> Sync for RSplitTerminator<'a, P> where
<P as Pattern<'a>>::Searcher: Sync,impl<'a, P> Sync for cretonne::prelude::codegen::entity::__core::str::SplitN<'a, P> where
<P as Pattern<'a>>::Searcher: Sync,impl<'a, P> Sync for cretonne::prelude::codegen::entity::__core::str::RSplitN<'a, P> where
<P as Pattern<'a>>::Searcher: Sync,impl<'a, P> Sync for MatchIndices<'a, P> where
<P as Pattern<'a>>::Searcher: Sync,impl<'a, P> Sync for RMatchIndices<'a, P> where
<P as Pattern<'a>>::Searcher: Sync,impl<'a, P> Sync for Matches<'a, P> where
<P as Pattern<'a>>::Searcher: Sync,impl<'a, P> Sync for RMatches<'a, P> where
<P as Pattern<'a>>::Searcher: Sync,impl<'a> Sync for Lines<'a>
impl<'a> Sync for LinesAny<'a>
impl<'a> Sync for SplitWhitespace<'a>
impl<'a> Sync for EncodeUtf16<'a>
impl<H> Sync for BuildHasherDefault<H> where
H: Sync,impl Sync for SipHasher
impl Sync for cretonne::prelude::codegen::entity::__core::fmt::Alignment
impl Sync for Error
impl<'a> !Sync for Formatter<'a>
impl<'a> !Sync for Arguments<'a>
impl<'a, 'b> !Sync for DebugSet<'a, 'b>
impl<'a, 'b> !Sync for DebugList<'a, 'b>
impl<'a, 'b> !Sync for DebugTuple<'a, 'b>
impl<'a, 'b> !Sync for DebugStruct<'a, 'b>
impl<'a, 'b> !Sync for DebugMap<'a, 'b>
impl Sync for Duration
impl !Sync for Excess
impl Sync for cretonne::prelude::codegen::entity::__core::alloc::Layout
impl Sync for LayoutErr
impl Sync for AllocErr
impl Sync for CannotReallocInPlace
impl Sync for CollectionAllocErr
impl Sync for __m256i
impl Sync for __m256
impl Sync for __m128d
impl Sync for __m64
impl Sync for __m128i
impl Sync for CpuidResult
impl Sync for __m128
impl Sync for __m256d
impl Sync for u16x8
impl Sync for i16x4
impl Sync for u8x16
impl Sync for f32x8
impl Sync for f64x2
impl Sync for m8x4
impl Sync for m1x16
impl Sync for i32x2
impl Sync for u16x32
impl Sync for u16x4
impl Sync for m1x32
impl Sync for m1x8
impl Sync for m8x2
impl Sync for i16x32
impl Sync for i8x4
impl Sync for u32x2
impl Sync for m32x8
impl Sync for f64x4
impl Sync for m32x4
impl Sync for m8x32
impl Sync for i16x2
impl Sync for f32x16
impl Sync for u64x2
impl Sync for i64x8
impl Sync for m16x16
impl Sync for m64x2
impl Sync for f32x2
impl Sync for i32x8
impl Sync for i32x4
impl Sync for i8x32
impl Sync for u16x16
impl Sync for m64x4
impl Sync for u32x4
impl Sync for u8x2
impl Sync for u16x2
impl Sync for m1x64
impl Sync for m16x8
impl Sync for m8x8
impl Sync for i8x2
impl Sync for u32x16
impl Sync for u8x4
impl Sync for u32x8
impl Sync for u64x8
impl Sync for i64x2
impl Sync for m32x2
impl Sync for i8x64
impl Sync for m8x16
impl Sync for i8x8
impl Sync for i64x4
impl Sync for u8x32
impl Sync for m16x4
impl Sync for f32x4
impl Sync for i32x16
impl Sync for f64x8
impl Sync for m16x2
impl Sync for i16x16
impl Sync for i16x8
impl Sync for i8x16
impl Sync for u8x8
impl Sync for u8x64
impl Sync for u64x4
impl<K, V> Sync for SparseMap<K, V> where
K: Sync,
V: Sync,impl Sync for CodegenError
impl<'a, Variable> Sync for FunctionBuilder<'a, Variable> where
Variable: Sync,impl<Variable> Sync for FunctionBuilderContext<Variable> where
Variable: Sync,impl Sync for Variable