Trait Sync

1.0.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.0.0 · Source§

impl !Sync for Arguments<'_>

Source§

impl !Sync for LocalWaker

1.26.0 · Source§

impl !Sync for Args

1.26.0 · Source§

impl !Sync for ArgsOs

1.6.0 · Source§

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

Source§

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

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 bytes::bytes::Bytes

Source§

impl Sync for BytesMut

1.44.0 · Source§

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

1.44.0 · Source§

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

Source§

impl<'a, T, const CAP: usize> Sync for arrayvec::arrayvec::Drain<'a, T, CAP>
where T: Sync,

Source§

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

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.70.0 · Source§

impl<T> !Sync for OnceCell<T>

1.0.0 · Source§

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

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 std::sync::mpsc::Receiver<T>

Source§

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

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

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 alloc::collections::linked_list::IterMut<'_, T>
where T: Sync,

Source§

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

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

1.0.0 · Source§

impl<T> Sync for core::slice::iter::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 Exclusive<T>
where T: ?Sized,

Source§

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

Source§

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

1.72.0 · Source§

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

1.70.0 · Source§

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

Source§

impl<T> Sync for MappedMutexGuard<'_, 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).

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 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,

Source§

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

Source§

impl<T> Sync for ReentrantLockGuard<'_, 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 alloc::rc::Weak<T, A>
where A: Allocator, T: ?Sized,

Source§

impl<T, A> Sync for 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.0.0 · Source§

impl<T, A> Sync for LinkedList<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.0.0 · Source§

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

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.6.0 · Source§

impl<T, A> Sync for ibc_core::primitives::prelude::vec::Drain<'_, T, A>
where T: Sync, A: Sync + Allocator,

1.0.0 · Source§

impl<T, A> Sync for 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, N> Sync for GenericArray<T, N>
where T: Sync, N: ArrayLength<T>,

Auto implementors§

§

impl Sync for TimeoutMsgType

§

impl Sync for AcknowledgementStatus

§

impl Sync for ibc_core::channel::types::channel::Order

§

impl Sync for ibc_core::channel::types::channel::State

§

impl Sync for ChannelError

§

impl Sync for ChannelMsg

§

impl Sync for PacketMsg

§

impl Sync for PacketMsgType

§

impl Sync for Receipt

§

impl Sync for Response

§

impl Sync for ibc_core::channel::types::proto::v1::Order

§

impl Sync for ResponseResultType

§

impl Sync for ibc_core::channel::types::proto::v1::State

§

impl Sync for TimeoutHeight

§

impl Sync for TimeoutTimestamp

§

impl Sync for ClientError

§

impl Sync for UpgradeClientError

§

impl Sync for ClientMsg

§

impl Sync for MsgUpdateOrMisbehaviour

§

impl Sync for Status

§

impl Sync for UpdateKind

§

impl Sync for CommitmentError

§

impl Sync for ibc_core::commitment_types::proto::ics23::batch_entry::Proof

§

impl Sync for ibc_core::commitment_types::proto::ics23::commitment_proof::Proof

§

impl Sync for ibc_core::commitment_types::proto::ics23::compressed_batch_entry::Proof

§

impl Sync for HashOp

§

impl Sync for LengthOp

§

impl Sync for ibc_core::connection::types::State

§

impl Sync for ConnectionError

§

impl Sync for ConnectionMsg

§

impl Sync for ibc_core::connection::types::proto::v1::State

§

impl Sync for HandlerError

§

impl Sync for IbcEvent

§

impl Sync for MessageEvent

§

impl Sync for MsgEnvelope

§

impl Sync for DecodingError

§

impl Sync for HostError

§

impl Sync for IdentifierError

§

impl Sync for Path

§

impl Sync for PathError

§

impl Sync for RouterError

§

impl Sync for TimestampError

§

impl Sync for SearchStep

§

impl Sync for ibc_core::channel::types::acknowledgement::Acknowledgement

§

impl Sync for StatusValue

§

impl Sync for ChannelEnd

§

impl Sync for ibc_core::channel::types::channel::Counterparty

§

impl Sync for IdentifiedChannelEnd

§

impl Sync for AcknowledgementCommitment

§

impl Sync for PacketCommitment

§

impl Sync for AcknowledgePacket

§

impl Sync for ChannelClosed

§

impl Sync for CloseConfirm

§

impl Sync for CloseInit

§

impl Sync for ibc_core::channel::types::events::OpenAck

§

impl Sync for ibc_core::channel::types::events::OpenConfirm

§

impl Sync for ibc_core::channel::types::events::OpenInit

§

impl Sync for ibc_core::channel::types::events::OpenTry

§

impl Sync for ReceivePacket

§

impl Sync for SendPacket

§

impl Sync for TimeoutPacket

§

impl Sync for WriteAcknowledgement

§

impl Sync for ibc_core::channel::types::msgs::MsgAcknowledgement

§

impl Sync for ibc_core::channel::types::msgs::MsgChannelCloseConfirm

§

impl Sync for ibc_core::channel::types::msgs::MsgChannelCloseInit

§

impl Sync for ibc_core::channel::types::msgs::MsgChannelOpenAck

§

impl Sync for ibc_core::channel::types::msgs::MsgChannelOpenConfirm

§

impl Sync for ibc_core::channel::types::msgs::MsgChannelOpenInit

§

impl Sync for ibc_core::channel::types::msgs::MsgChannelOpenTry

§

impl Sync for ibc_core::channel::types::msgs::MsgRecvPacket

§

impl Sync for ibc_core::channel::types::msgs::MsgTimeout

§

impl Sync for ibc_core::channel::types::msgs::MsgTimeoutOnClose

§

impl Sync for ibc_core::channel::types::packet::Packet

§

impl Sync for ibc_core::channel::types::packet::PacketState

§

impl Sync for ibc_core::channel::types::proto::v1::Acknowledgement

§

impl Sync for Channel

§

impl Sync for ibc_core::channel::types::proto::v1::Counterparty

§

impl Sync for ErrorReceipt

§

impl Sync for ibc_core::channel::types::proto::v1::GenesisState

§

impl Sync for IdentifiedChannel

§

impl Sync for ibc_core::channel::types::proto::v1::MsgAcknowledgement

§

impl Sync for MsgAcknowledgementResponse

§

impl Sync for ibc_core::channel::types::proto::v1::MsgChannelCloseConfirm

§

impl Sync for MsgChannelCloseConfirmResponse

§

impl Sync for ibc_core::channel::types::proto::v1::MsgChannelCloseInit

§

impl Sync for MsgChannelCloseInitResponse

§

impl Sync for ibc_core::channel::types::proto::v1::MsgChannelOpenAck

§

impl Sync for MsgChannelOpenAckResponse

§

impl Sync for ibc_core::channel::types::proto::v1::MsgChannelOpenConfirm

§

impl Sync for MsgChannelOpenConfirmResponse

§

impl Sync for ibc_core::channel::types::proto::v1::MsgChannelOpenInit

§

impl Sync for MsgChannelOpenInitResponse

§

impl Sync for ibc_core::channel::types::proto::v1::MsgChannelOpenTry

§

impl Sync for MsgChannelOpenTryResponse

§

impl Sync for MsgChannelUpgradeAck

§

impl Sync for MsgChannelUpgradeAckResponse

§

impl Sync for MsgChannelUpgradeCancel

§

impl Sync for MsgChannelUpgradeCancelResponse

§

impl Sync for MsgChannelUpgradeConfirm

§

impl Sync for MsgChannelUpgradeConfirmResponse

§

impl Sync for MsgChannelUpgradeInit

§

impl Sync for MsgChannelUpgradeInitResponse

§

impl Sync for MsgChannelUpgradeOpen

§

impl Sync for MsgChannelUpgradeOpenResponse

§

impl Sync for MsgChannelUpgradeTimeout

§

impl Sync for MsgChannelUpgradeTimeoutResponse

§

impl Sync for MsgChannelUpgradeTry

§

impl Sync for MsgChannelUpgradeTryResponse

§

impl Sync for MsgPruneAcknowledgements

§

impl Sync for MsgPruneAcknowledgementsResponse

§

impl Sync for ibc_core::channel::types::proto::v1::MsgRecvPacket

§

impl Sync for MsgRecvPacketResponse

§

impl Sync for ibc_core::channel::types::proto::v1::MsgTimeout

§

impl Sync for ibc_core::channel::types::proto::v1::MsgTimeoutOnClose

§

impl Sync for MsgTimeoutOnCloseResponse

§

impl Sync for MsgTimeoutResponse

§

impl Sync for ibc_core::channel::types::proto::v1::MsgUpdateParams

§

impl Sync for ibc_core::channel::types::proto::v1::MsgUpdateParamsResponse

§

impl Sync for ibc_core::channel::types::proto::v1::Packet

§

impl Sync for PacketId

§

impl Sync for PacketSequence

§

impl Sync for ibc_core::channel::types::proto::v1::PacketState

§

impl Sync for ibc_core::channel::types::proto::v1::Params

§

impl Sync for QueryChannelClientStateRequest

§

impl Sync for QueryChannelClientStateResponse

§

impl Sync for QueryChannelConsensusStateRequest

§

impl Sync for QueryChannelConsensusStateResponse

§

impl Sync for QueryChannelParamsRequest

§

impl Sync for QueryChannelParamsResponse

§

impl Sync for QueryChannelRequest

§

impl Sync for QueryChannelResponse

§

impl Sync for QueryChannelsRequest

§

impl Sync for QueryChannelsResponse

§

impl Sync for QueryConnectionChannelsRequest

§

impl Sync for QueryConnectionChannelsResponse

§

impl Sync for QueryNextSequenceReceiveRequest

§

impl Sync for QueryNextSequenceReceiveResponse

§

impl Sync for QueryNextSequenceSendRequest

§

impl Sync for QueryNextSequenceSendResponse

§

impl Sync for QueryPacketAcknowledgementRequest

§

impl Sync for QueryPacketAcknowledgementResponse

§

impl Sync for QueryPacketAcknowledgementsRequest

§

impl Sync for QueryPacketAcknowledgementsResponse

§

impl Sync for QueryPacketCommitmentRequest

§

impl Sync for QueryPacketCommitmentResponse

§

impl Sync for QueryPacketCommitmentsRequest

§

impl Sync for QueryPacketCommitmentsResponse

§

impl Sync for QueryPacketReceiptRequest

§

impl Sync for QueryPacketReceiptResponse

§

impl Sync for QueryUnreceivedAcksRequest

§

impl Sync for QueryUnreceivedAcksResponse

§

impl Sync for QueryUnreceivedPacketsRequest

§

impl Sync for QueryUnreceivedPacketsResponse

§

impl Sync for QueryUpgradeErrorRequest

§

impl Sync for QueryUpgradeErrorResponse

§

impl Sync for QueryUpgradeRequest

§

impl Sync for QueryUpgradeResponse

§

impl Sync for Timeout

§

impl Sync for Upgrade

§

impl Sync for UpgradeFields

§

impl Sync for ibc_core::channel::types::Version

§

impl Sync for ClientMisbehaviour

§

impl Sync for CreateClient

§

impl Sync for UpdateClient

§

impl Sync for UpgradeClient

§

impl Sync for ibc_core::client::context::types::msgs::MsgCreateClient

§

impl Sync for ibc_core::client::context::types::msgs::MsgRecoverClient

§

impl Sync for ibc_core::client::context::types::msgs::MsgSubmitMisbehaviour

§

impl Sync for ibc_core::client::context::types::msgs::MsgUpdateClient

§

impl Sync for ibc_core::client::context::types::msgs::MsgUpgradeClient

§

impl Sync for ClientConsensusStates

§

impl Sync for ClientUpdateProposal

§

impl Sync for ConsensusStateWithHeight

§

impl Sync for GenesisMetadata

§

impl Sync for ibc_core::client::context::types::proto::v1::GenesisState

§

impl Sync for ibc_core::client::context::types::proto::v1::Height

§

impl Sync for IdentifiedClientState

§

impl Sync for IdentifiedGenesisMetadata

§

impl Sync for ibc_core::client::context::types::proto::v1::MsgCreateClient

§

impl Sync for MsgCreateClientResponse

§

impl Sync for MsgIbcSoftwareUpgrade

§

impl Sync for MsgIbcSoftwareUpgradeResponse

§

impl Sync for ibc_core::client::context::types::proto::v1::MsgRecoverClient

§

impl Sync for MsgRecoverClientResponse

§

impl Sync for ibc_core::client::context::types::proto::v1::MsgSubmitMisbehaviour

§

impl Sync for MsgSubmitMisbehaviourResponse

§

impl Sync for ibc_core::client::context::types::proto::v1::MsgUpdateClient

§

impl Sync for MsgUpdateClientResponse

§

impl Sync for ibc_core::client::context::types::proto::v1::MsgUpdateParams

§

impl Sync for ibc_core::client::context::types::proto::v1::MsgUpdateParamsResponse

§

impl Sync for ibc_core::client::context::types::proto::v1::MsgUpgradeClient

§

impl Sync for MsgUpgradeClientResponse

§

impl Sync for ibc_core::client::context::types::proto::v1::Params

§

impl Sync for QueryClientParamsRequest

§

impl Sync for QueryClientParamsResponse

§

impl Sync for QueryClientStateRequest

§

impl Sync for QueryClientStateResponse

§

impl Sync for QueryClientStatesRequest

§

impl Sync for QueryClientStatesResponse

§

impl Sync for QueryClientStatusRequest

§

impl Sync for QueryClientStatusResponse

§

impl Sync for QueryConsensusStateHeightsRequest

§

impl Sync for QueryConsensusStateHeightsResponse

§

impl Sync for QueryConsensusStateRequest

§

impl Sync for QueryConsensusStateResponse

§

impl Sync for QueryConsensusStatesRequest

§

impl Sync for QueryConsensusStatesResponse

§

impl Sync for QueryUpgradedClientStateRequest

§

impl Sync for QueryUpgradedClientStateResponse

§

impl Sync for QueryUpgradedConsensusStateRequest

§

impl Sync for QueryUpgradedConsensusStateResponse

§

impl Sync for UpgradeProposal

§

impl Sync for ibc_core::client::types::Height

§

impl Sync for CommitmentPrefix

§

impl Sync for CommitmentProofBytes

§

impl Sync for CommitmentRoot

§

impl Sync for ibc_core::commitment_types::merkle::MerklePath

§

impl Sync for ibc_core::commitment_types::merkle::MerkleProof

§

impl Sync for BatchEntry

§

impl Sync for BatchProof

§

impl Sync for CommitmentProof

§

impl Sync for CompressedBatchEntry

§

impl Sync for CompressedBatchProof

§

impl Sync for CompressedExistenceProof

§

impl Sync for CompressedNonExistenceProof

§

impl Sync for ExistenceProof

§

impl Sync for HostFunctionsManager

§

impl Sync for InnerOp

§

impl Sync for InnerSpec

§

impl Sync for LeafOp

§

impl Sync for NonExistenceProof

§

impl Sync for ProofSpec

§

impl Sync for ibc_core::commitment_types::proto::v1::MerklePath

§

impl Sync for MerklePrefix

§

impl Sync for ibc_core::commitment_types::proto::v1::MerkleProof

§

impl Sync for MerkleRoot

§

impl Sync for ProofSpecs

§

impl Sync for ibc_core::connection::types::events::OpenAck

§

impl Sync for ibc_core::connection::types::events::OpenConfirm

§

impl Sync for ibc_core::connection::types::events::OpenInit

§

impl Sync for ibc_core::connection::types::events::OpenTry

§

impl Sync for ibc_core::connection::types::msgs::MsgConnectionOpenAck

§

impl Sync for ibc_core::connection::types::msgs::MsgConnectionOpenConfirm

§

impl Sync for ibc_core::connection::types::msgs::MsgConnectionOpenInit

§

impl Sync for ibc_core::connection::types::msgs::MsgConnectionOpenTry

§

impl Sync for ClientPaths

§

impl Sync for ibc_core::connection::types::proto::v1::ConnectionEnd

§

impl Sync for ConnectionPaths

§

impl Sync for ibc_core::connection::types::proto::v1::Counterparty

§

impl Sync for ibc_core::connection::types::proto::v1::GenesisState

§

impl Sync for IdentifiedConnection

§

impl Sync for ibc_core::connection::types::proto::v1::MsgConnectionOpenAck

§

impl Sync for MsgConnectionOpenAckResponse

§

impl Sync for ibc_core::connection::types::proto::v1::MsgConnectionOpenConfirm

§

impl Sync for MsgConnectionOpenConfirmResponse

§

impl Sync for ibc_core::connection::types::proto::v1::MsgConnectionOpenInit

§

impl Sync for MsgConnectionOpenInitResponse

§

impl Sync for ibc_core::connection::types::proto::v1::MsgConnectionOpenTry

§

impl Sync for MsgConnectionOpenTryResponse

§

impl Sync for ibc_core::connection::types::proto::v1::MsgUpdateParams

§

impl Sync for ibc_core::connection::types::proto::v1::MsgUpdateParamsResponse

§

impl Sync for ibc_core::connection::types::proto::v1::Params

§

impl Sync for QueryClientConnectionsRequest

§

impl Sync for QueryClientConnectionsResponse

§

impl Sync for QueryConnectionClientStateRequest

§

impl Sync for QueryConnectionClientStateResponse

§

impl Sync for QueryConnectionConsensusStateRequest

§

impl Sync for QueryConnectionConsensusStateResponse

§

impl Sync for QueryConnectionParamsRequest

§

impl Sync for QueryConnectionParamsResponse

§

impl Sync for QueryConnectionRequest

§

impl Sync for QueryConnectionResponse

§

impl Sync for QueryConnectionsRequest

§

impl Sync for QueryConnectionsResponse

§

impl Sync for ibc_core::connection::types::proto::v1::Version

§

impl Sync for ibc_core::connection::types::ConnectionEnd

§

impl Sync for ibc_core::connection::types::Counterparty

§

impl Sync for IdentifiedConnectionEnd

§

impl Sync for ibc_core::connection::types::version::Version

§

impl Sync for ChainId

§

impl Sync for ChannelId

§

impl Sync for ClientId

§

impl Sync for ClientType

§

impl Sync for ConnectionId

§

impl Sync for PortId

§

impl Sync for Sequence

§

impl Sync for AckPath

§

impl Sync for ChannelEndPath

§

impl Sync for ClientConnectionPath

§

impl Sync for ClientConsensusStatePath

§

impl Sync for ClientStatePath

§

impl Sync for ClientUpdateHeightPath

§

impl Sync for ClientUpdateTimePath

§

impl Sync for CommitmentPath

§

impl Sync for ConnectionPath

§

impl Sync for NextChannelSequencePath

§

impl Sync for NextClientSequencePath

§

impl Sync for NextConnectionSequencePath

§

impl Sync for PathBytes

§

impl Sync for PortPath

§

impl Sync for ReceiptPath

§

impl Sync for SeqAckPath

§

impl Sync for SeqRecvPath

§

impl Sync for SeqSendPath

§

impl Sync for UpgradeClientStatePath

§

impl Sync for UpgradeConsensusStatePath

§

impl Sync for ModuleEvent

§

impl Sync for ModuleEventAttribute

§

impl Sync for ModuleExtras

§

impl Sync for ModuleId

§

impl Sync for Any

§

impl Sync for Duration

§

impl Sync for Error

§

impl Sync for ibc_core::primitives::proto::Timestamp

§

impl Sync for Signer

§

impl Sync for ibc_core::primitives::Timestamp

§

impl Sync for ParseBoolError

§

impl Sync for Utf8Error

§

impl Sync for String

§

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

§

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

§

impl<'a> Sync for ibc_core::primitives::prelude::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 EscapeDebug<'a>

§

impl<'a> Sync for EscapeDefault<'a>

§

impl<'a> Sync for EscapeUnicode<'a>

§

impl<'a> Sync for 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 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 CharPredicateSearcher<'a, F>
where F: Sync,

§

impl<'a, I, A> Sync for Splice<'a, I, A>
where I: Sync, <I as Iterator>::Item: Sync, A: 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 RSplit<'a, P>
where <P as Pattern>::Searcher<'a>: Sync,

§

impl<'a, P> Sync for 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 Split<'a, P>
where <P as Pattern>::Searcher<'a>: Sync,

§

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

§

impl<'a, P> Sync for 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 PrettySlice<'a, T>
where T: Sync,

§

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

§

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

§

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

§

impl<T> Sync for Option<T>
where 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, E> Sync for Result<T, E>
where T: Sync, E: Sync,