Trait Copy

1.0.0 · Source
pub trait Copy: Clone { }
Expand description

Types whose values can be duplicated simply by copying bits.

By default, variable bindings have ‘move semantics.’ In other words:

#[derive(Debug)]
struct Foo;

let x = Foo;

let y = x;

// `x` has moved into `y`, and so cannot be used

// println!("{x:?}"); // error: use of moved value

However, if a type implements Copy, it instead has ‘copy semantics’:

// We can derive a `Copy` implementation. `Clone` is also required, as it's
// a supertrait of `Copy`.
#[derive(Debug, Copy, Clone)]
struct Foo;

let x = Foo;

let y = x;

// `y` is a copy of `x`

println!("{x:?}"); // A-OK!

It’s important to note that in these two examples, the only difference is whether you are allowed to access x after the assignment. Under the hood, both a copy and a move can result in bits being copied in memory, although this is sometimes optimized away.

§How can I implement Copy?

There are two ways to implement Copy on your type. The simplest is to use derive:

#[derive(Copy, Clone)]
struct MyStruct;

You can also implement Copy and Clone manually:

struct MyStruct;

impl Copy for MyStruct { }

impl Clone for MyStruct {
    fn clone(&self) -> MyStruct {
        *self
    }
}

There is a small difference between the two. The derive strategy will also place a Copy bound on type parameters:

#[derive(Clone)]
struct MyStruct<T>(T);

impl<T: Copy> Copy for MyStruct<T> { }

This isn’t always desired. For example, shared references (&T) can be copied regardless of whether T is Copy. Likewise, a generic struct containing markers such as PhantomData could potentially be duplicated with a bit-wise copy.

§What’s the difference between Copy and Clone?

Copies happen implicitly, for example as part of an assignment y = x. The behavior of Copy is not overloadable; it is always a simple bit-wise copy.

Cloning is an explicit action, x.clone(). The implementation of Clone can provide any type-specific behavior necessary to duplicate values safely. For example, the implementation of Clone for String needs to copy the pointed-to string buffer in the heap. A simple bitwise copy of String values would merely copy the pointer, leading to a double free down the line. For this reason, String is Clone but not Copy.

Clone is a supertrait of Copy, so everything which is Copy must also implement Clone. If a type is Copy then its Clone implementation only needs to return *self (see the example above).

§When can my type be Copy?

A type can implement Copy if all of its components implement Copy. For example, this struct can be Copy:

#[derive(Copy, Clone)]
struct Point {
   x: i32,
   y: i32,
}

A struct can be Copy, and i32 is Copy, therefore Point is eligible to be Copy. By contrast, consider

struct PointList {
    points: Vec<Point>,
}

The struct PointList cannot implement Copy, because Vec<T> is not Copy. If we attempt to derive a Copy implementation, we’ll get an error:

the trait `Copy` cannot be implemented for this type; field `points` does not implement `Copy`

Shared references (&T) are also Copy, so a type can be Copy, even when it holds shared references of types T that are not Copy. Consider the following struct, which can implement Copy, because it only holds a shared reference to our non-Copy type PointList from above:

#[derive(Copy, Clone)]
struct PointListWrapper<'a> {
    point_list_ref: &'a PointList,
}

§When can’t my type be Copy?

Some types can’t be copied safely. For example, copying &mut T would create an aliased mutable reference. Copying String would duplicate responsibility for managing the String’s buffer, leading to a double free.

Generalizing the latter case, any type implementing Drop can’t be Copy, because it’s managing some resource besides its own size_of::<T> bytes.

If you try to implement Copy on a struct or enum containing non-Copy data, you will get the error E0204.

§When should my type be Copy?

Generally speaking, if your type can implement Copy, it should. Keep in mind, though, that implementing Copy is part of the public API of your type. If the type might become non-Copy in the future, it could be prudent to omit the Copy implementation now, to avoid a breaking API change.

§Additional implementors

In addition to the implementors listed below, the following types also implement Copy:

  • Function item types (i.e., the distinct types defined for each function)
  • Function pointer types (e.g., fn() -> i32)
  • Closure types, if they capture no value from the environment or if all such captured values implement Copy themselves. Note that variables captured by shared reference always implement Copy (even if the referent doesn’t), while variables captured by mutable reference never implement Copy.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl Copy for ibc_core::channel::types::channel::Order

Source§

impl Copy for ibc_core::channel::types::channel::State

Source§

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

Source§

impl Copy for ResponseResultType

Source§

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

Source§

impl Copy for TimeoutHeight

Source§

impl Copy for TimeoutTimestamp

Source§

impl Copy for Status

Source§

impl Copy for HashOp

Source§

impl Copy for LengthOp

Source§

impl Copy for ibc_core::connection::types::State

Source§

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

Source§

impl Copy for AsciiChar

1.0.0 · Source§

impl Copy for core::cmp::Ordering

1.34.0 · Source§

impl Copy for Infallible

1.64.0 · Source§

impl Copy for FromBytesWithNulError

1.28.0 · Source§

impl Copy for core::fmt::Alignment

Source§

impl Copy for DebugAsHex

Source§

impl Copy for Sign

1.7.0 · Source§

impl Copy for IpAddr

Source§

impl Copy for Ipv6MulticastScope

1.0.0 · Source§

impl Copy for SocketAddr

1.0.0 · Source§

impl Copy for FpCategory

1.0.0 · Source§

impl Copy for core::sync::atomic::Ordering

1.0.0 · Source§

impl Copy for SeekFrom

1.0.0 · Source§

impl Copy for std::io::error::ErrorKind

1.0.0 · Source§

impl Copy for Shutdown

Source§

impl Copy for BacktraceStyle

1.12.0 · Source§

impl Copy for RecvTimeoutError

1.0.0 · Source§

impl Copy for TryRecvError

Source§

impl Copy for arbitrary::error::Error

Source§

impl Copy for base64::engine::DecodePaddingMode

Source§

impl Copy for base64::engine::DecodePaddingMode

Source§

impl Copy for borsh::nostd_io::ErrorKind

Source§

impl Copy for Case

Source§

impl Copy for cosmos_sdk_proto::cosmos::gov::v1::ProposalStatus

Source§

impl Copy for cosmos_sdk_proto::cosmos::gov::v1::VoteOption

Source§

impl Copy for cosmos_sdk_proto::cosmos::gov::v1beta1::ProposalStatus

Source§

impl Copy for cosmos_sdk_proto::cosmos::gov::v1beta1::VoteOption

Source§

impl Copy for AuthorizationType

Source§

impl Copy for BondStatus

Source§

impl Copy for Infraction

Source§

impl Copy for SignMode

Source§

impl Copy for BroadcastMode

Source§

impl Copy for OrderBy

Source§

impl Copy for TruncSide

Source§

impl Copy for ibc_proto::ibc::applications::interchain_accounts::v1::Type

Source§

impl Copy for ConsumerPhase

Source§

impl Copy for ConsumerPacketDataType

Source§

impl Copy for InfractionType

Source§

impl Copy for PrefilterConfig

Source§

impl Copy for MetaForm

Source§

impl Copy for PortableForm

Source§

impl Copy for InstanceType

Source§

impl Copy for Category

Source§

impl Copy for tendermint_proto::tendermint::v0_34::abci::CheckTxType

Source§

impl Copy for EvidenceType

Source§

impl Copy for tendermint_proto::tendermint::v0_34::abci::response_apply_snapshot_chunk::Result

Source§

impl Copy for tendermint_proto::tendermint::v0_34::abci::response_offer_snapshot::Result

Source§

impl Copy for tendermint_proto::tendermint::v0_34::privval::Errors

Source§

impl Copy for tendermint_proto::tendermint::v0_34::types::BlockIdFlag

Source§

impl Copy for tendermint_proto::tendermint::v0_34::types::SignedMsgType

Source§

impl Copy for tendermint_proto::tendermint::v0_37::abci::CheckTxType

Source§

impl Copy for tendermint_proto::tendermint::v0_37::abci::MisbehaviorType

Source§

impl Copy for tendermint_proto::tendermint::v0_37::abci::response_apply_snapshot_chunk::Result

Source§

impl Copy for tendermint_proto::tendermint::v0_37::abci::response_offer_snapshot::Result

Source§

impl Copy for tendermint_proto::tendermint::v0_37::abci::response_process_proposal::ProposalStatus

Source§

impl Copy for tendermint_proto::tendermint::v0_37::privval::Errors

Source§

impl Copy for tendermint_proto::tendermint::v0_37::types::BlockIdFlag

Source§

impl Copy for tendermint_proto::tendermint::v0_37::types::SignedMsgType

Source§

impl Copy for tendermint_proto::tendermint::v0_38::abci::CheckTxType

Source§

impl Copy for tendermint_proto::tendermint::v0_38::abci::MisbehaviorType

Source§

impl Copy for tendermint_proto::tendermint::v0_38::abci::response_apply_snapshot_chunk::Result

Source§

impl Copy for tendermint_proto::tendermint::v0_38::abci::response_offer_snapshot::Result

Source§

impl Copy for tendermint_proto::tendermint::v0_38::abci::response_process_proposal::ProposalStatus

Source§

impl Copy for VerifyStatus

Source§

impl Copy for tendermint_proto::tendermint::v0_38::privval::Errors

Source§

impl Copy for tendermint_proto::tendermint::v0_38::types::BlockIdFlag

Source§

impl Copy for tendermint_proto::tendermint::v0_38::types::SignedMsgType

Source§

impl Copy for Code

Source§

impl Copy for CheckTxKind

Source§

impl Copy for ApplySnapshotChunkResult

Source§

impl Copy for OfferSnapshot

Source§

impl Copy for ProcessProposal

Source§

impl Copy for VerifyVoteExtension

Source§

impl Copy for BlockSignatureInfo

Source§

impl Copy for MisbehaviorKind

Source§

impl Copy for tendermint::block::block_id_flag::BlockIdFlag

Source§

impl Copy for tendermint::hash::Algorithm

Source§

impl Copy for tendermint::hash::Hash

Source§

impl Copy for TxIndexStatus

Source§

impl Copy for tendermint::proposal::msg_type::Type

Source§

impl Copy for tendermint::public_key::Algorithm

Source§

impl Copy for PublicKey

Source§

impl Copy for TendermintKey

Source§

impl Copy for tendermint::vote::Type

Source§

impl Copy for Parse

Source§

impl Copy for ParseFromDescription

Source§

impl Copy for TryFromParsed

Source§

impl Copy for time::format_description::component::Component

Source§

impl Copy for MonthRepr

Source§

impl Copy for Padding

Source§

impl Copy for SubsecondDigits

Source§

impl Copy for UnixTimestampPrecision

Source§

impl Copy for WeekNumberRepr

Source§

impl Copy for WeekdayRepr

Source§

impl Copy for YearRepr

Source§

impl Copy for DateKind

Source§

impl Copy for FormattedComponents

Source§

impl Copy for OffsetPrecision

Source§

impl Copy for TimePrecision

Source§

impl Copy for time::month::Month

Source§

impl Copy for time::weekday::Weekday

Source§

impl Copy for SearchStep

1.0.0 · Source§

impl Copy for bool

1.0.0 · Source§

impl Copy for char

1.0.0 · Source§

impl Copy for f16

1.0.0 · Source§

impl Copy for f32

1.0.0 · Source§

impl Copy for f64

1.0.0 · Source§

impl Copy for f128

1.0.0 · Source§

impl Copy for i8

1.0.0 · Source§

impl Copy for i16

1.0.0 · Source§

impl Copy for i32

1.0.0 · Source§

impl Copy for i64

1.0.0 · Source§

impl Copy for i128

1.0.0 · Source§

impl Copy for isize

Source§

impl Copy for !

1.0.0 · Source§

impl Copy for u8

1.0.0 · Source§

impl Copy for u16

1.0.0 · Source§

impl Copy for u32

1.0.0 · Source§

impl Copy for u64

1.0.0 · Source§

impl Copy for u128

1.0.0 · Source§

impl Copy for usize

Source§

impl Copy for MsgAcknowledgementResponse

Source§

impl Copy for MsgChannelCloseConfirmResponse

Source§

impl Copy for MsgChannelCloseInitResponse

Source§

impl Copy for MsgChannelOpenAckResponse

Source§

impl Copy for MsgChannelOpenConfirmResponse

Source§

impl Copy for MsgChannelUpgradeAckResponse

Source§

impl Copy for MsgChannelUpgradeCancelResponse

Source§

impl Copy for MsgChannelUpgradeConfirmResponse

Source§

impl Copy for MsgChannelUpgradeOpenResponse

Source§

impl Copy for MsgChannelUpgradeTimeoutResponse

Source§

impl Copy for MsgPruneAcknowledgementsResponse

Source§

impl Copy for MsgRecvPacketResponse

Source§

impl Copy for MsgTimeoutOnCloseResponse

Source§

impl Copy for MsgTimeoutResponse

Source§

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

Source§

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

Source§

impl Copy for QueryChannelParamsRequest

Source§

impl Copy for QueryChannelParamsResponse

Source§

impl Copy for ibc_core::channel::types::proto::v1::Timeout

Source§

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

Source§

impl Copy for MsgCreateClientResponse

Source§

impl Copy for MsgIbcSoftwareUpgradeResponse

Source§

impl Copy for MsgRecoverClientResponse

Source§

impl Copy for MsgSubmitMisbehaviourResponse

Source§

impl Copy for MsgUpdateClientResponse

Source§

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

Source§

impl Copy for MsgUpgradeClientResponse

Source§

impl Copy for QueryClientParamsRequest

Source§

impl Copy for QueryUpgradedClientStateRequest

Source§

impl Copy for QueryUpgradedConsensusStateRequest

Source§

impl Copy for ibc_core::client::types::Height

Source§

impl Copy for MsgConnectionOpenAckResponse

Source§

impl Copy for MsgConnectionOpenConfirmResponse

Source§

impl Copy for MsgConnectionOpenInitResponse

Source§

impl Copy for MsgConnectionOpenTryResponse

Source§

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

Source§

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

Source§

impl Copy for QueryConnectionParamsRequest

Source§

impl Copy for QueryConnectionParamsResponse

Source§

impl Copy for Sequence

Source§

impl Copy for ibc_core::primitives::proto::Duration

Source§

impl Copy for ibc_core::primitives::proto::Timestamp

Source§

impl Copy for ibc_core::primitives::Timestamp

Source§

impl Copy for Global

1.28.0 · Source§

impl Copy for Layout

Source§

impl Copy for AllocError

1.0.0 · Source§

impl Copy for TypeId

1.34.0 · Source§

impl Copy for TryFromSliceError

1.34.0 · Source§

impl Copy for CharTryFromError

1.59.0 · Source§

impl Copy for TryFromCharError

1.27.0 · Source§

impl Copy for CpuidResult

1.27.0 · Source§

impl Copy for __m128

Source§

impl Copy for __m128bh

1.27.0 · Source§

impl Copy for __m128d

Source§

impl Copy for __m128h

1.27.0 · Source§

impl Copy for __m128i

1.27.0 · Source§

impl Copy for __m256

Source§

impl Copy for __m256bh

1.27.0 · Source§

impl Copy for __m256d

Source§

impl Copy for __m256h

1.27.0 · Source§

impl Copy for __m256i

1.72.0 · Source§

impl Copy for __m512

Source§

impl Copy for __m512bh

1.72.0 · Source§

impl Copy for __m512d

Source§

impl Copy for __m512h

1.72.0 · Source§

impl Copy for __m512i

Source§

impl Copy for bf16

1.0.0 · Source§

impl Copy for core::fmt::Error

Source§

impl Copy for FormattingOptions

1.33.0 · Source§

impl Copy for PhantomPinned

Source§

impl Copy for Assume

1.0.0 · Source§

impl Copy for Ipv4Addr

1.0.0 · Source§

impl Copy for Ipv6Addr

1.0.0 · Source§

impl Copy for SocketAddrV4

1.0.0 · Source§

impl Copy for SocketAddrV6

1.34.0 · Source§

impl Copy for core::num::error::TryFromIntError

1.0.0 · Source§

impl Copy for RangeFull

Source§

impl Copy for core::ptr::alignment::Alignment

1.36.0 · Source§

impl Copy for RawWakerVTable

1.3.0 · Source§

impl Copy for core::time::Duration

1.28.0 · Source§

impl Copy for System

1.75.0 · Source§

impl Copy for FileTimes

1.1.0 · Source§

impl Copy for FileType

1.0.0 · Source§

impl Copy for Empty

1.0.0 · Source§

impl Copy for Sink

Source§

impl Copy for UCred

1.61.0 · Source§

impl Copy for ExitCode

1.0.0 · Source§

impl Copy for ExitStatus

Source§

impl Copy for ExitStatusError

Source§

impl Copy for DefaultRandomSource

1.0.0 · Source§

impl Copy for RecvError

1.5.0 · Source§

impl Copy for WaitTimeoutResult

1.26.0 · Source§

impl Copy for AccessError

1.19.0 · Source§

impl Copy for ThreadId

1.8.0 · Source§

impl Copy for Instant

1.8.0 · Source§

impl Copy for SystemTime

Source§

impl Copy for base64::engine::general_purpose::GeneralPurposeConfig

Source§

impl Copy for base64::engine::general_purpose::GeneralPurposeConfig

Source§

impl Copy for blake3::Hash

Source§

impl Copy for Eager

Source§

impl Copy for block_buffer::Error

Source§

impl Copy for Lazy

Source§

impl Copy for SplicedStr

Source§

impl Copy for InvalidLength

Source§

impl Copy for deranged::TryFromIntError

Source§

impl Copy for MacError

Source§

impl Copy for InvalidBufferSize

Source§

impl Copy for InvalidOutputSize

Source§

impl Copy for Signature

Source§

impl Copy for MsgPayPacketFeeAsyncResponse

Source§

impl Copy for MsgPayPacketFeeResponse

Source§

impl Copy for MsgRegisterCounterpartyPayeeResponse

Source§

impl Copy for MsgRegisterPayeeResponse

Source§

impl Copy for QueryFeeEnabledChannelResponse

Source§

impl Copy for MsgSendTxResponse

Source§

impl Copy for ibc_proto::ibc::applications::interchain_accounts::controller::v1::MsgUpdateParamsResponse

Source§

impl Copy for ibc_proto::ibc::applications::interchain_accounts::controller::v1::Params

Source§

impl Copy for ibc_proto::ibc::applications::interchain_accounts::controller::v1::QueryParamsRequest

Source§

impl Copy for ibc_proto::ibc::applications::interchain_accounts::controller::v1::QueryParamsResponse

Source§

impl Copy for ibc_proto::ibc::applications::interchain_accounts::host::v1::MsgUpdateParamsResponse

Source§

impl Copy for ibc_proto::ibc::applications::interchain_accounts::host::v1::QueryParamsRequest

Source§

impl Copy for ibc_proto::ibc::applications::nft_transfer::v1::MsgTransferResponse

Source§

impl Copy for ibc_proto::ibc::applications::nft_transfer::v1::MsgUpdateParamsResponse

Source§

impl Copy for ibc_proto::ibc::applications::nft_transfer::v1::Params

Source§

impl Copy for ibc_proto::ibc::applications::nft_transfer::v1::QueryParamsRequest

Source§

impl Copy for ibc_proto::ibc::applications::nft_transfer::v1::QueryParamsResponse

Source§

impl Copy for ibc_proto::ibc::applications::transfer::v1::MsgTransferResponse

Source§

impl Copy for ibc_proto::ibc::applications::transfer::v1::MsgUpdateParamsResponse

Source§

impl Copy for ibc_proto::ibc::applications::transfer::v1::Params

Source§

impl Copy for ibc_proto::ibc::applications::transfer::v1::QueryParamsRequest

Source§

impl Copy for ibc_proto::ibc::applications::transfer::v1::QueryParamsResponse

Source§

impl Copy for ibc_proto::ibc::lightclients::localhost::v2::ClientState

Source§

impl Copy for Fraction

Source§

impl Copy for MsgMigrateContractResponse

Source§

impl Copy for MsgRemoveChecksumResponse

Source§

impl Copy for ibc_proto::ibc::mock::ClientState

Source§

impl Copy for ConsensusState

Source§

impl Copy for ibc_proto::ibc::mock::Header

Source§

impl Copy for HeightToValsetUpdateId

Source§

impl Copy for LastTransmissionBlockHeight

Source§

impl Copy for MaturingVscPacket

Source§

impl Copy for ibc_proto::interchain_security::ccv::consumer::v1::MsgUpdateParamsResponse

Source§

impl Copy for QueryNextFeeDistributionEstimateRequest

Source§

impl Copy for ibc_proto::interchain_security::ccv::consumer::v1::QueryParamsRequest

Source§

impl Copy for QueryProviderInfoRequest

Source§

impl Copy for ibc_proto::interchain_security::ccv::consumer::v1::QueryThrottleStateRequest

Source§

impl Copy for SlashRecord

Source§

impl Copy for MsgAssignConsumerKeyResponse

Source§

impl Copy for MsgChangeRewardDenomsResponse

Source§

impl Copy for MsgConsumerModificationResponse

Source§

impl Copy for MsgOptInResponse

Source§

impl Copy for MsgOptOutResponse

Source§

impl Copy for MsgRemoveConsumerResponse

Source§

impl Copy for MsgSetConsumerCommissionRateResponse

Source§

impl Copy for MsgSubmitConsumerDoubleVotingResponse

Source§

impl Copy for MsgSubmitConsumerMisbehaviourResponse

Source§

impl Copy for MsgUpdateConsumerResponse

Source§

impl Copy for ibc_proto::interchain_security::ccv::provider::v1::MsgUpdateParamsResponse

Source§

impl Copy for QueryBlocksUntilNextEpochRequest

Source§

impl Copy for QueryBlocksUntilNextEpochResponse

Source§

impl Copy for ibc_proto::interchain_security::ccv::provider::v1::QueryParamsRequest

Source§

impl Copy for QueryRegisteredConsumerRewardDenomsRequest

Source§

impl Copy for ibc_proto::interchain_security::ccv::provider::v1::QueryThrottleStateRequest

Source§

impl Copy for QueryThrottleStateResponse

Source§

impl Copy for ValsetUpdateIdToHeight

Source§

impl Copy for VscMaturedPacketData

Source§

impl Copy for MsgSubmitQueryResponseResponse

Source§

impl Copy for itoa::Buffer

Source§

impl Copy for memchr::arch::all::memchr::One

Source§

impl Copy for memchr::arch::all::memchr::Three

Source§

impl Copy for memchr::arch::all::memchr::Two

Source§

impl Copy for memchr::arch::all::packedpair::Finder

Source§

impl Copy for Pair

Source§

impl Copy for memchr::arch::all::twoway::Finder

Source§

impl Copy for FinderRev

Source§

impl Copy for memchr::arch::x86_64::avx2::memchr::One

Source§

impl Copy for memchr::arch::x86_64::avx2::memchr::Three

Source§

impl Copy for memchr::arch::x86_64::avx2::memchr::Two

Source§

impl Copy for memchr::arch::x86_64::avx2::packedpair::Finder

Source§

impl Copy for memchr::arch::x86_64::sse2::memchr::One

Source§

impl Copy for memchr::arch::x86_64::sse2::memchr::Three

Source§

impl Copy for memchr::arch::x86_64::sse2::memchr::Two

Source§

impl Copy for memchr::arch::x86_64::sse2::packedpair::Finder

Source§

impl Copy for OptionBool

Source§

impl Copy for FormatterOptions

Source§

impl Copy for EncodeError

Source§

impl Copy for UnknownEnumValue

Source§

impl Copy for ryu::buffer::Buffer

Source§

impl Copy for MetaType

Source§

impl Copy for IgnoredAny

Source§

impl Copy for Base64

Source§

impl Copy for Hex

Source§

impl Copy for Identity

Source§

impl Copy for Choice

Source§

impl Copy for tendermint_proto::tendermint::v0_34::abci::BlockParams

Source§

impl Copy for tendermint_proto::tendermint::v0_34::abci::RequestCommit

Source§

impl Copy for tendermint_proto::tendermint::v0_34::abci::RequestEndBlock

Source§

impl Copy for tendermint_proto::tendermint::v0_34::abci::RequestFlush

Source§

impl Copy for tendermint_proto::tendermint::v0_34::abci::RequestListSnapshots

Source§

impl Copy for tendermint_proto::tendermint::v0_34::abci::RequestLoadSnapshotChunk

Source§

impl Copy for tendermint_proto::tendermint::v0_34::abci::ResponseFlush

Source§

impl Copy for tendermint_proto::tendermint::v0_34::abci::ResponseOfferSnapshot

Source§

impl Copy for tendermint_proto::tendermint::v0_34::blockchain::BlockRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_34::blockchain::NoBlockResponse

Source§

impl Copy for tendermint_proto::tendermint::v0_34::blockchain::StatusRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_34::blockchain::StatusResponse

Source§

impl Copy for tendermint_proto::tendermint::v0_34::consensus::EndHeight

Source§

impl Copy for tendermint_proto::tendermint::v0_34::consensus::HasVote

Source§

impl Copy for tendermint_proto::tendermint::v0_34::consensus::NewRoundStep

Source§

impl Copy for tendermint_proto::tendermint::v0_34::consensus::TimeoutInfo

Source§

impl Copy for tendermint_proto::tendermint::v0_34::p2p::PacketPing

Source§

impl Copy for tendermint_proto::tendermint::v0_34::p2p::PacketPong

Source§

impl Copy for tendermint_proto::tendermint::v0_34::p2p::PexRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_34::p2p::ProtocolVersion

Source§

impl Copy for tendermint_proto::tendermint::v0_34::privval::PingRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_34::privval::PingResponse

Source§

impl Copy for tendermint_proto::tendermint::v0_34::rpc::grpc::RequestPing

Source§

impl Copy for tendermint_proto::tendermint::v0_34::rpc::grpc::ResponsePing

Source§

impl Copy for tendermint_proto::tendermint::v0_34::statesync::ChunkRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_34::statesync::SnapshotsRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_34::store::BlockStoreState

Source§

impl Copy for tendermint_proto::tendermint::v0_34::types::BlockParams

Source§

impl Copy for tendermint_proto::tendermint::v0_34::types::EvidenceParams

Source§

impl Copy for tendermint_proto::tendermint::v0_34::types::HashedParams

Source§

impl Copy for tendermint_proto::tendermint::v0_34::types::VersionParams

Source§

impl Copy for tendermint_proto::tendermint::v0_34::version::Consensus

Source§

impl Copy for tendermint_proto::tendermint::v0_37::abci::RequestCommit

Source§

impl Copy for tendermint_proto::tendermint::v0_37::abci::RequestEndBlock

Source§

impl Copy for tendermint_proto::tendermint::v0_37::abci::RequestFlush

Source§

impl Copy for tendermint_proto::tendermint::v0_37::abci::RequestListSnapshots

Source§

impl Copy for tendermint_proto::tendermint::v0_37::abci::RequestLoadSnapshotChunk

Source§

impl Copy for tendermint_proto::tendermint::v0_37::abci::ResponseFlush

Source§

impl Copy for tendermint_proto::tendermint::v0_37::abci::ResponseOfferSnapshot

Source§

impl Copy for tendermint_proto::tendermint::v0_37::abci::ResponseProcessProposal

Source§

impl Copy for tendermint_proto::tendermint::v0_37::blocksync::BlockRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_37::blocksync::NoBlockResponse

Source§

impl Copy for tendermint_proto::tendermint::v0_37::blocksync::StatusRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_37::blocksync::StatusResponse

Source§

impl Copy for tendermint_proto::tendermint::v0_37::consensus::EndHeight

Source§

impl Copy for tendermint_proto::tendermint::v0_37::consensus::HasVote

Source§

impl Copy for tendermint_proto::tendermint::v0_37::consensus::NewRoundStep

Source§

impl Copy for tendermint_proto::tendermint::v0_37::consensus::TimeoutInfo

Source§

impl Copy for tendermint_proto::tendermint::v0_37::p2p::PacketPing

Source§

impl Copy for tendermint_proto::tendermint::v0_37::p2p::PacketPong

Source§

impl Copy for tendermint_proto::tendermint::v0_37::p2p::PexRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_37::p2p::ProtocolVersion

Source§

impl Copy for tendermint_proto::tendermint::v0_37::privval::PingRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_37::privval::PingResponse

Source§

impl Copy for tendermint_proto::tendermint::v0_37::rpc::grpc::RequestPing

Source§

impl Copy for tendermint_proto::tendermint::v0_37::rpc::grpc::ResponsePing

Source§

impl Copy for tendermint_proto::tendermint::v0_37::statesync::ChunkRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_37::statesync::SnapshotsRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_37::store::BlockStoreState

Source§

impl Copy for tendermint_proto::tendermint::v0_37::types::BlockParams

Source§

impl Copy for tendermint_proto::tendermint::v0_37::types::EvidenceParams

Source§

impl Copy for tendermint_proto::tendermint::v0_37::types::HashedParams

Source§

impl Copy for tendermint_proto::tendermint::v0_37::types::VersionParams

Source§

impl Copy for tendermint_proto::tendermint::v0_37::version::Consensus

Source§

impl Copy for tendermint_proto::tendermint::v0_38::abci::RequestCommit

Source§

impl Copy for tendermint_proto::tendermint::v0_38::abci::RequestFlush

Source§

impl Copy for tendermint_proto::tendermint::v0_38::abci::RequestListSnapshots

Source§

impl Copy for tendermint_proto::tendermint::v0_38::abci::RequestLoadSnapshotChunk

Source§

impl Copy for ResponseCommit

Source§

impl Copy for tendermint_proto::tendermint::v0_38::abci::ResponseFlush

Source§

impl Copy for tendermint_proto::tendermint::v0_38::abci::ResponseOfferSnapshot

Source§

impl Copy for tendermint_proto::tendermint::v0_38::abci::ResponseProcessProposal

Source§

impl Copy for ResponseVerifyVoteExtension

Source§

impl Copy for tendermint_proto::tendermint::v0_38::blocksync::BlockRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_38::blocksync::NoBlockResponse

Source§

impl Copy for tendermint_proto::tendermint::v0_38::blocksync::StatusRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_38::blocksync::StatusResponse

Source§

impl Copy for tendermint_proto::tendermint::v0_38::consensus::EndHeight

Source§

impl Copy for tendermint_proto::tendermint::v0_38::consensus::HasVote

Source§

impl Copy for tendermint_proto::tendermint::v0_38::consensus::NewRoundStep

Source§

impl Copy for tendermint_proto::tendermint::v0_38::consensus::TimeoutInfo

Source§

impl Copy for tendermint_proto::tendermint::v0_38::p2p::PacketPing

Source§

impl Copy for tendermint_proto::tendermint::v0_38::p2p::PacketPong

Source§

impl Copy for tendermint_proto::tendermint::v0_38::p2p::PexRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_38::p2p::ProtocolVersion

Source§

impl Copy for tendermint_proto::tendermint::v0_38::privval::PingRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_38::privval::PingResponse

Source§

impl Copy for tendermint_proto::tendermint::v0_38::rpc::grpc::RequestPing

Source§

impl Copy for tendermint_proto::tendermint::v0_38::rpc::grpc::ResponsePing

Source§

impl Copy for tendermint_proto::tendermint::v0_38::statesync::ChunkRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_38::statesync::SnapshotsRequest

Source§

impl Copy for tendermint_proto::tendermint::v0_38::store::BlockStoreState

Source§

impl Copy for AbciParams

Source§

impl Copy for tendermint_proto::tendermint::v0_38::types::BlockParams

Source§

impl Copy for tendermint_proto::tendermint::v0_38::types::EvidenceParams

Source§

impl Copy for tendermint_proto::tendermint::v0_38::types::HashedParams

Source§

impl Copy for tendermint_proto::tendermint::v0_38::types::VersionParams

Source§

impl Copy for tendermint_proto::tendermint::v0_38::version::Consensus

Source§

impl Copy for tendermint::account::Id

Source§

impl Copy for Version

Source§

impl Copy for tendermint::block::height::Height

Source§

impl Copy for tendermint::block::id::Id

Source§

impl Copy for tendermint::block::parts::Header

Source§

impl Copy for Round

Source§

impl Copy for tendermint::channel::id::Id

Source§

impl Copy for VerificationKey

Source§

impl Copy for tendermint::evidence::Duration

Source§

impl Copy for tendermint::node::id::Id

Source§

impl Copy for tendermint::time::Time

Source§

impl Copy for tendermint::timeout::Timeout

Source§

impl Copy for TrustThresholdFraction

Source§

impl Copy for ProposerPriority

Source§

impl Copy for Power

Source§

impl Copy for ValidatorIndex

Source§

impl Copy for time_core::convert::Day

Source§

impl Copy for time_core::convert::Hour

Source§

impl Copy for Microsecond

Source§

impl Copy for Millisecond

Source§

impl Copy for time_core::convert::Minute

Source§

impl Copy for Nanosecond

Source§

impl Copy for time_core::convert::Second

Source§

impl Copy for Week

Source§

impl Copy for Date

Source§

impl Copy for time::duration::Duration

Source§

impl Copy for ComponentRange

Source§

impl Copy for ConversionRange

Source§

impl Copy for DifferentVariant

Source§

impl Copy for InvalidVariant

Source§

impl Copy for time::format_description::modifier::Day

Source§

impl Copy for End

Source§

impl Copy for time::format_description::modifier::Hour

Source§

impl Copy for Ignore

Source§

impl Copy for time::format_description::modifier::Minute

Source§

impl Copy for time::format_description::modifier::Month

Source§

impl Copy for OffsetHour

Source§

impl Copy for OffsetMinute

Source§

impl Copy for OffsetSecond

Source§

impl Copy for Ordinal

Source§

impl Copy for Period

Source§

impl Copy for time::format_description::modifier::Second

Source§

impl Copy for Subsecond

Source§

impl Copy for UnixTimestamp

Source§

impl Copy for WeekNumber

Source§

impl Copy for time::format_description::modifier::Weekday

Source§

impl Copy for Year

Source§

impl Copy for Rfc2822

Source§

impl Copy for Rfc3339

Source§

impl Copy for OffsetDateTime

Source§

impl Copy for Parsed

Source§

impl Copy for PrimitiveDateTime

Source§

impl Copy for time::time::Time

Source§

impl Copy for UtcOffset

Source§

impl Copy for ATerm

Source§

impl Copy for B0

Source§

impl Copy for B1

Source§

impl Copy for Z0

Source§

impl Copy for Equal

Source§

impl Copy for Greater

Source§

impl Copy for Less

Source§

impl Copy for UTerm

1.0.0 · Source§

impl Copy for Utf8Error

1.0.0 · Source§

impl<'a> Copy for std::path::Component<'a>

1.0.0 · Source§

impl<'a> Copy for Prefix<'a>

Source§

impl<'a> Copy for Mode<'a>

Source§

impl<'a> Copy for Unexpected<'a>

Source§

impl<'a> Copy for Utf8Pattern<'a>

1.0.0 · Source§

impl<'a> Copy for Arguments<'a>

Source§

impl<'a> Copy for PhantomContravariantLifetime<'a>

Source§

impl<'a> Copy for PhantomCovariantLifetime<'a>

Source§

impl<'a> Copy for PhantomInvariantLifetime<'a>

1.10.0 · Source§

impl<'a> Copy for Location<'a>

1.36.0 · Source§

impl<'a> Copy for IoSlice<'a>

1.28.0 · Source§

impl<'a> Copy for Ancestors<'a>

1.0.0 · Source§

impl<'a> Copy for PrefixComponent<'a>

Source§

impl<'a, E> Copy for BytesDeserializer<'a, E>

Source§

impl<'a, T> Copy for CompactRef<'a, T>
where T: Copy,

Source§

impl<'a, T> Copy for Symbol<'a, T>
where T: Copy + 'a,

Source§

impl<'a, T, const N: usize> Copy for ArrayWindows<'a, T, N>
where T: Copy + 'a,

Source§

impl<'de, E> Copy for BorrowedBytesDeserializer<'de, E>

Source§

impl<'de, E> Copy for BorrowedStrDeserializer<'de, E>

Source§

impl<'de, E> Copy for StrDeserializer<'de, E>

1.63.0 · Source§

impl<'fd> Copy for BorrowedFd<'fd>

1.55.0 · Source§

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

Source§

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

Source§

impl<E> Copy for BoolDeserializer<E>

Source§

impl<E> Copy for CharDeserializer<E>

Source§

impl<E> Copy for F32Deserializer<E>

Source§

impl<E> Copy for F64Deserializer<E>

Source§

impl<E> Copy for I8Deserializer<E>

Source§

impl<E> Copy for I16Deserializer<E>

Source§

impl<E> Copy for I32Deserializer<E>

Source§

impl<E> Copy for I64Deserializer<E>

Source§

impl<E> Copy for I128Deserializer<E>

Source§

impl<E> Copy for IsizeDeserializer<E>

Source§

impl<E> Copy for U8Deserializer<E>

Source§

impl<E> Copy for U16Deserializer<E>

Source§

impl<E> Copy for U32Deserializer<E>

Source§

impl<E> Copy for U64Deserializer<E>

Source§

impl<E> Copy for U128Deserializer<E>

Source§

impl<E> Copy for UnitDeserializer<E>

Source§

impl<E> Copy for UsizeDeserializer<E>

1.28.0 · Source§

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

1.0.0 · Source§

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

1.26.0 · Source§

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

Source§

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

Source§

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

Source§

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

1.33.0 · Source§

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

1.0.0 · Source§

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

1.17.0 · Source§

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

1.36.0 · Source§

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

Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

impl<T> Copy for &T
where T: ?Sized,

Shared references can be copied, but mutable references cannot!

1.19.0 · Source§

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

1.0.0 · Source§

impl<T> Copy for PhantomData<T>
where T: ?Sized,

Source§

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

Source§

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

Source§

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

1.20.0 · Source§

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

1.21.0 · Source§

impl<T> Copy for Discriminant<T>

1.28.0 · Source§

impl<T> Copy for NonZero<T>

1.74.0 · Source§

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

1.0.0 · Source§

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

Source§

impl<T> Copy for UnsafePinned<T>
where T: Copy,

The type is Copy when T is to avoid people assuming that Copy implies there is no UnsafePinned anywhere. (This is an issue with UnsafeCell: people use Copy bounds to mean Freeze.) Given that there is no unsafe impl Copy for ..., this is also the option that leaves the user more choices (as they can always wrap this in a !Copy type).

1.25.0 · Source§

impl<T> Copy for NonNull<T>
where T: ?Sized,

1.0.0 · Source§

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

Source§

impl<T> Copy for CapacityError<T>
where T: Copy,

Source§

impl<T> Copy for PWrapper<T>
where T: Copy,

Source§

impl<T> Copy for TryIntoError<T>
where T: Copy,

Source§

impl<T> Copy for Compact<T>
where T: Copy,

Source§

impl<T> Copy for Metadata<'_, T>

Source§

impl<T> Copy for UntrackedSymbol<T>
where T: Copy,

Source§

impl<T> Copy for BlackBox<T>
where T: Copy,

Source§

impl<T> Copy for CtOption<T>
where T: Copy,

1.36.0 · Source§

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

1.0.0 · Source§

impl<T, E> Copy for ibc_core::primitives::prelude::Result<T, E>
where T: Copy, E: Copy,

Source§

impl<T, N> Copy for GenericArray<T, N>
where T: Copy, N: ArrayLength<T>, <N as ArrayLength<T>>::ArrayType: Copy,

1.58.0 · Source§

impl<T, const N: usize> Copy for [T; N]
where T: Copy,

Source§

impl<T, const N: usize> Copy for Mask<T, N>

Source§

impl<T, const N: usize> Copy for Simd<T, N>

Source§

impl<U> Copy for NInt<U>
where U: Copy + Unsigned + NonZero,

Source§

impl<U> Copy for PInt<U>
where U: Copy + Unsigned + NonZero,

Source§

impl<U, B> Copy for UInt<U, B>
where U: Copy, B: Copy,

Source§

impl<V, A> Copy for TArr<V, A>
where V: Copy, A: Copy,

Source§

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

Source§

impl<const CAP: usize> Copy for ArrayString<CAP>

Source§

impl<const CONFIG: u128> Copy for Iso8601<CONFIG>

Source§

impl<const MIN: i8, const MAX: i8> Copy for OptionRangedI8<MIN, MAX>

Source§

impl<const MIN: i8, const MAX: i8> Copy for RangedI8<MIN, MAX>

Source§

impl<const MIN: i16, const MAX: i16> Copy for OptionRangedI16<MIN, MAX>

Source§

impl<const MIN: i16, const MAX: i16> Copy for RangedI16<MIN, MAX>

Source§

impl<const MIN: i32, const MAX: i32> Copy for OptionRangedI32<MIN, MAX>

Source§

impl<const MIN: i32, const MAX: i32> Copy for RangedI32<MIN, MAX>

Source§

impl<const MIN: i64, const MAX: i64> Copy for OptionRangedI64<MIN, MAX>

Source§

impl<const MIN: i64, const MAX: i64> Copy for RangedI64<MIN, MAX>

Source§

impl<const MIN: i128, const MAX: i128> Copy for OptionRangedI128<MIN, MAX>

Source§

impl<const MIN: i128, const MAX: i128> Copy for RangedI128<MIN, MAX>

Source§

impl<const MIN: isize, const MAX: isize> Copy for OptionRangedIsize<MIN, MAX>

Source§

impl<const MIN: isize, const MAX: isize> Copy for RangedIsize<MIN, MAX>

Source§

impl<const MIN: u8, const MAX: u8> Copy for OptionRangedU8<MIN, MAX>

Source§

impl<const MIN: u8, const MAX: u8> Copy for RangedU8<MIN, MAX>

Source§

impl<const MIN: u16, const MAX: u16> Copy for OptionRangedU16<MIN, MAX>

Source§

impl<const MIN: u16, const MAX: u16> Copy for RangedU16<MIN, MAX>

Source§

impl<const MIN: u32, const MAX: u32> Copy for OptionRangedU32<MIN, MAX>

Source§

impl<const MIN: u32, const MAX: u32> Copy for RangedU32<MIN, MAX>

Source§

impl<const MIN: u64, const MAX: u64> Copy for OptionRangedU64<MIN, MAX>

Source§

impl<const MIN: u64, const MAX: u64> Copy for RangedU64<MIN, MAX>

Source§

impl<const MIN: u128, const MAX: u128> Copy for OptionRangedU128<MIN, MAX>

Source§

impl<const MIN: u128, const MAX: u128> Copy for RangedU128<MIN, MAX>

Source§

impl<const MIN: usize, const MAX: usize> Copy for OptionRangedUsize<MIN, MAX>

Source§

impl<const MIN: usize, const MAX: usize> Copy for RangedUsize<MIN, MAX>