Trait frame_support::dispatch::marker::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, which isn’t always desired.

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` may not 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.

Implementors§

source§

impl Copy for __c_anonymous_ptrace_syscall_info_entry

source§

impl Copy for input_keymap_entry

Shared references can be copied, but mutable references cannot!

impl Copy for Error

impl<'a> Copy for DerObject<'a>

impl<'a> Copy for Boolean<'a>

impl<'a> Copy for Integer<'a>

impl<'a> Copy for Null<'a>

impl<'a> Copy for OctetString<'a>

impl<'a> Copy for Sequence<'a>

impl<'a> Copy for Utf8String<'a>

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

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

impl Copy for RecvError

impl Copy for TaskId

impl Copy for AccessError

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

impl<T: Copy> Copy for Round<T>

impl Copy for Runtime

impl<L: Copy, R: Copy> Copy for Overwritten<L, R>

impl Copy for Hash

impl Copy for Hash

impl Copy for Hash

impl Copy for Alphabet

impl Copy for Error

impl Copy for Error

impl Copy for Error

impl Copy for Func

impl Copy for HasAtomic

impl Copy for Endian

impl<const S: usize> Copy for Cid<S>

impl Copy for Version

impl Copy for AppSettings

impl Copy for ArgSettings

impl Copy for ValueHint

impl Copy for ContextKind

impl Copy for ErrorKind

impl Copy for ValueSource

impl Copy for ColorChoice

impl Copy for Duration

impl Copy for Instant

impl Copy for Width

impl Copy for ProxyType

impl Copy for PopError

impl<T: Copy> Copy for PushError<T>

impl Copy for Case

impl Copy for ErrorKind

impl Copy for SeekFrom

impl Copy for Ctr32BE

impl Copy for Ctr64BE

impl Copy for ConfigData

impl Copy for DecodeKind

impl Copy for DecodeError

impl Copy for BitOrder

impl Copy for Type

impl Copy for QueryType

impl Copy for Class

impl Copy for QueryClass

impl Copy for Opcode

impl<'a> Copy for Name<'a>

impl Copy for Header

impl Copy for Record

impl Copy for Record

impl Copy for Record

impl Copy for Record

impl<'a> Copy for Record<'a>

impl Copy for Record

impl Copy for Record

impl Copy for Record

impl Copy for Record

impl Copy for Record

impl Copy for Record

impl Copy for Record

impl Copy for Record

impl<'a> Copy for Record<'a>

impl<'a> Copy for Record<'a>

impl Copy for Record

impl Copy for Record

impl<'a> Copy for Record<'a>

impl<'a> Copy for Record<'a>

impl<'a> Copy for Record<'a>

impl Copy for Record

impl Copy for PublicKey

impl<T: Copy + BitFlag> Copy for FromBitsError<T>where
    T::Numeric: Copy,

impl<T: Copy, N: Copy> Copy for BitFlags<T, N>

impl Copy for Phase

impl<F: Copy> Copy for Unwrapped<F>

impl<F: Copy> Copy for Wrapping<F>

impl<Frac> Copy for FixedU8<Frac>

impl<Frac> Copy for FixedU16<Frac>

impl<Frac> Copy for FixedU32<Frac>

impl<Frac> Copy for FixedU64<Frac>

impl<Frac> Copy for FixedU128<Frac>

impl<Frac> Copy for FixedI8<Frac>

impl<Frac> Copy for FixedI16<Frac>

impl<Frac> Copy for FixedI32<Frac>

impl<Frac> Copy for FixedI64<Frac>

impl<Frac> Copy for FixedI128<Frac>

impl Copy for F128Bits

impl Copy for Status

impl Copy for Compression

impl<'a> Copy for Parse<'a>

impl<T: Copy> Copy for AssertAsync<T>

impl Copy for Reason

impl Copy for StreamId

impl Copy for bf16

impl Copy for f16

impl Copy for StatusCode

impl Copy for Version

impl<D> Copy for Empty<D>

impl<D: Copy> Copy for Full<D>

impl<B: Copy> Copy for Limited<B>

impl<B: Copy, F: Copy> Copy for MapData<B, F>

impl<B: Copy, F: Copy> Copy for MapErr<B, F>

impl Copy for Error

impl<T: Copy> Copy for Status<T>

impl<'a> Copy for Header<'a>

impl Copy for HttpDate

impl<Balance: Copy> Copy for BalanceUpdate<Balance>

impl<Balance: Copy> Copy for I129<Balance>

impl Copy for Ratio

impl Copy for Rounding

impl<AssetId: Copy> Copy for PoolType<AssetId>

impl<Balance: Copy> Copy for Liquidity<Balance>

impl<AccountId: Copy, AssetId: Copy, AssetPair: Copy, Balance: Copy> Copy for AMMTransfer<AccountId, AssetId, AssetPair, Balance>

impl Copy for Config

impl Copy for IfEvent

impl Copy for IpNetwork

impl Copy for Ipv4Network

impl Copy for Ipv6Network

impl Copy for IpAddrRange

impl Copy for IpNet

impl Copy for Ipv4Net

impl Copy for Ipv6Net

impl Copy for IpSubnets

impl Copy for Ipv4Subnets

impl Copy for Ipv6Subnets

impl Copy for Mode

impl Copy for MethodKind

impl Copy for IdKind

impl Copy for ErrorCode

impl Copy for ProxyType

impl Copy for Runtime

impl Copy for ProbeId

impl Copy for PeerId

impl Copy for Endpoint

impl<A: Copy, B: Copy> Copy for EitherError<A, B>

impl<A: Copy, B: Copy> Copy for EitherOutput<A, B>

impl<A: Copy + StreamMuxer, B: Copy + StreamMuxer> Copy for EitherOutbound<A, B>where
    A::OutboundSubstream: Copy,
    B::OutboundSubstream: Copy,

impl<A: Copy, B: Copy> Copy for EitherFuture<A, B>

impl<A: Copy, B: Copy> Copy for EitherFuture2<A, B>

impl<A: Copy, B: Copy> Copy for OrTransport<A, B>

impl<T: Copy, F: Copy> Copy for Map<T, F>

impl<T: Copy, F: Copy> Copy for MapErr<T, F>

impl<InnerTrans: Copy> Copy for TransportTimeout<InnerTrans>

impl<T: Copy, U: Copy> Copy for Upgrade<T, U>

impl<T: Copy> Copy for OptionalTransport<T>

impl Copy for ListenerId

impl Copy for NodeStatus

impl Copy for Distance

impl Copy for Quorum

impl Copy for QueryId

impl Copy for Fingerprint

impl Copy for PnetConfig

impl Copy for CircuitId

impl Copy for RequestId

impl Copy for ErrorCode

impl Copy for RequestId

impl<TUpgrade: Copy, TInfo: Copy> Copy for SubstreamProtocol<TUpgrade, TInfo>

impl<TConnectionUpgrade: Copy, TOutboundOpenInfo: Copy, TCustom: Copy, TErr: Copy> Copy for ConnectionHandlerEvent<TConnectionUpgrade, TOutboundOpenInfo, TCustom, TErr>

impl Copy for KeepAlive

impl Copy for Tcp

impl Copy for __fsid_t

impl Copy for rocksdb_t

impl Copy for gz_header

impl Copy for z_stream

impl<Storage: Copy> Copy for __BindgenBitfieldUnit<Storage>

impl<T> Copy for __BindgenUnionField<T>

impl Copy for f_owner_ex

impl Copy for flock

impl Copy for flock64

impl Copy for open_how

impl Copy for epoll_event

impl Copy for fscrypt_key

impl Copy for mount_attr

impl Copy for fsxattr

impl Copy for futex_waitv

impl Copy for robust_list

impl Copy for in_addr

impl Copy for ip_mreq

impl Copy for ip_mreqn

impl Copy for group_req

impl Copy for in_pktinfo

impl Copy for sockaddr_in

impl Copy for iphdr

impl Copy for ip_comp_hdr

impl Copy for in6_addr

impl Copy for ipv6_mreq

impl Copy for in6_pktinfo

impl Copy for ip6_mtuinfo

impl Copy for in6_ifreq

impl Copy for ipv6_rt_hdr

impl Copy for rt2_hdr

impl Copy for ipv6hdr

impl Copy for pollfd

impl Copy for timespec

impl Copy for timeval

impl Copy for itimerspec

impl Copy for itimerval

impl Copy for timezone

impl Copy for rusage

impl Copy for rlimit

impl Copy for rlimit64

impl Copy for clone_args

impl Copy for sigaction

impl Copy for sigaltstack

impl Copy for sigval

impl Copy for __sifields

impl Copy for siginfo

impl Copy for sigevent

impl Copy for statx

impl Copy for tcphdr

impl Copy for tcp_info

impl Copy for tcp_md5sig

impl Copy for termios

impl Copy for termios2

impl Copy for ktermios

impl Copy for winsize

impl Copy for termio

impl Copy for iovec

impl Copy for sockaddr_un

impl Copy for old_utsname

impl Copy for new_utsname

impl Copy for uffd_msg

impl Copy for uffdio_api

impl Copy for uffdio_copy

impl Copy for sockaddr

impl Copy for linger

impl Copy for stat

impl Copy for statfs

impl Copy for statfs64

impl Copy for user_desc

impl Copy for msghdr

impl Copy for cmsghdr

impl Copy for ucred

impl Copy for mmsghdr

impl Copy for Advice

impl Copy for Interest

impl Copy for Token

impl Copy for Base

impl<const S: usize> Copy for Multihash<S>

impl Copy for Code

impl Copy for Version

impl<T: Copy + Scalar> Copy for X<T>

impl<T: Copy + Scalar> Copy for XY<T>

impl<T: Copy + Scalar> Copy for XYZ<T>

impl<T: Copy + Scalar> Copy for XYZW<T>

impl<T: Copy + Scalar> Copy for XYZWA<T>

impl<T: Copy + Scalar> Copy for XYZWAB<T>

impl<T: Copy + Scalar> Copy for IJKW<T>

impl<T: Copy + Scalar> Copy for M2x2<T>

impl<T: Copy + Scalar> Copy for M2x3<T>

impl<T: Copy + Scalar> Copy for M2x4<T>

impl<T: Copy + Scalar> Copy for M2x5<T>

impl<T: Copy + Scalar> Copy for M2x6<T>

impl<T: Copy + Scalar> Copy for M3x2<T>

impl<T: Copy + Scalar> Copy for M3x3<T>

impl<T: Copy + Scalar> Copy for M3x4<T>

impl<T: Copy + Scalar> Copy for M3x5<T>

impl<T: Copy + Scalar> Copy for M3x6<T>

impl<T: Copy + Scalar> Copy for M4x2<T>

impl<T: Copy + Scalar> Copy for M4x3<T>

impl<T: Copy + Scalar> Copy for M4x4<T>

impl<T: Copy + Scalar> Copy for M4x5<T>

impl<T: Copy + Scalar> Copy for M4x6<T>

impl<T: Copy + Scalar> Copy for M5x2<T>

impl<T: Copy + Scalar> Copy for M5x3<T>

impl<T: Copy + Scalar> Copy for M5x4<T>

impl<T: Copy + Scalar> Copy for M5x5<T>

impl<T: Copy + Scalar> Copy for M5x6<T>

impl<T: Copy + Scalar> Copy for M6x2<T>

impl<T: Copy + Scalar> Copy for M6x3<T>

impl<T: Copy + Scalar> Copy for M6x4<T>

impl<T: Copy + Scalar> Copy for M6x5<T>

impl<T: Copy + Scalar> Copy for M6x6<T>

impl Copy for Dynamic

impl<const R: usize> Copy for Const<R>

impl<T: Copy, const R: usize, const C: usize> Copy for ArrayStorage<T, R, C>

impl<T: Copy, R: Copy, C: Copy, S: Copy> Copy for Matrix<T, R, C, S>

impl<'a, T: Scalar, R: Dim, C: Dim, RStride: Dim, CStride: Dim> Copy for SliceStorage<'a, T, R, C, RStride, CStride>

impl<T: Copy> Copy for Unit<T>

impl<T: Scalar + Copy, const D: usize> Copy for Point<T, D>

impl<T: Scalar + Copy, const D: usize> Copy for Rotation<T, D>where
    <DefaultAllocator as Allocator<T, Const<D>, Const<D>>>::Buffer: Copy,

impl<T: Copy> Copy for Quaternion<T>

impl<T: Copy + Scalar> Copy for DualQuaternion<T>

impl<T: Scalar + Copy, const D: usize> Copy for Translation<T, D>where
    Owned<T, Const<D>>: Copy,

impl<T: Scalar + Copy, R: Copy, const D: usize> Copy for Isometry<T, R, D>where
    Owned<T, Const<D>>: Copy,

impl<T: Scalar + Copy + Zero, R: AbstractRotation<T, D> + Copy, const D: usize> Copy for Similarity<T, R, D>where
    Owned<T, Const<D>>: Copy,

impl Copy for TGeneral

impl Copy for TProjective

impl Copy for TAffine

impl<T: RealField, C: TCategory, const D: usize> Copy for Transform<T, C, D>where
    Const<D>: DimNameAdd<U1>,
    DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
    Owned<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>: Copy,

impl<T: RealField> Copy for Orthographic3<T>

impl<T: RealField> Copy for Perspective3<T>

impl<T: ComplexField, R: DimMin<C>, C: Dim> Copy for Bidiagonal<T, R, C>where
    DimMinimum<R, C>: DimSub<U1>,
    DefaultAllocator: Allocator<T, R, C> + Allocator<T, DimMinimum<R, C>> + Allocator<T, DimDiff<DimMinimum<R, C>, U1>>,
    OMatrix<T, R, C>: Copy,
    OVector<T, DimMinimum<R, C>>: Copy,
    OVector<T, DimDiff<DimMinimum<R, C>, U1>>: Copy,

impl<T: SimdComplexField, D: Dim> Copy for Cholesky<T, D>where
    DefaultAllocator: Allocator<T, D, D>,
    OMatrix<T, D, D>: Copy,

impl<T: ComplexField, R: DimMin<C>, C: Dim> Copy for ColPivQR<T, R, C>where
    DefaultAllocator: Allocator<T, R, C> + Allocator<T, DimMinimum<R, C>> + Allocator<(usize, usize), DimMinimum<R, C>>,
    OMatrix<T, R, C>: Copy,
    PermutationSequence<DimMinimum<R, C>>: Copy,
    OVector<T, DimMinimum<R, C>>: Copy,

impl<T: ComplexField, R: DimMin<C>, C: Dim> Copy for FullPivLU<T, R, C>where
    DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
    OMatrix<T, R, C>: Copy,
    PermutationSequence<DimMinimum<R, C>>: Copy,

impl<T: Copy + ComplexField> Copy for GivensRotation<T>where
    T::RealField: Copy,

impl<T: ComplexField, D: DimSub<U1>> Copy for Hessenberg<T, D>where
    DefaultAllocator: Allocator<T, D, D> + Allocator<T, DimDiff<D, U1>>,
    OMatrix<T, D, D>: Copy,
    OVector<T, DimDiff<D, U1>>: Copy,

impl<T: ComplexField, R: DimMin<C>, C: Dim> Copy for LU<T, R, C>where
    DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
    OMatrix<T, R, C>: Copy,
    PermutationSequence<DimMinimum<R, C>>: Copy,

impl<D: Dim> Copy for PermutationSequence<D>where
    DefaultAllocator: Allocator<(usize, usize), D>,
    OVector<(usize, usize), D>: Copy,

impl<T: ComplexField, R: DimMin<C>, C: Dim> Copy for QR<T, R, C>where
    DefaultAllocator: Allocator<T, R, C> + Allocator<T, DimMinimum<R, C>>,
    OMatrix<T, R, C>: Copy,
    OVector<T, DimMinimum<R, C>>: Copy,

impl<T: ComplexField, D: Dim> Copy for Schur<T, D>where
    DefaultAllocator: Allocator<T, D, D>,
    OMatrix<T, D, D>: Copy,

impl<T: ComplexField, R: DimMin<C>, C: Dim> Copy for SVD<T, R, C>where
    DefaultAllocator: Allocator<T, DimMinimum<R, C>, C> + Allocator<T, R, DimMinimum<R, C>> + Allocator<T::RealField, DimMinimum<R, C>>,
    OMatrix<T, R, DimMinimum<R, C>>: Copy,
    OMatrix<T, DimMinimum<R, C>, C>: Copy,
    OVector<T::RealField, DimMinimum<R, C>>: Copy,

impl<T: ComplexField, D: Dim> Copy for SymmetricEigen<T, D>where
    DefaultAllocator: Allocator<T, D, D> + Allocator<T::RealField, D>,
    OMatrix<T, D, D>: Copy,
    OVector<T::RealField, D>: Copy,

impl<T: ComplexField, D: DimSub<U1>> Copy for SymmetricTridiagonal<T, D>where
    DefaultAllocator: Allocator<T, D, D> + Allocator<T, DimDiff<D, U1>>,
    OMatrix<T, D, D>: Copy,
    OVector<T, DimDiff<D, U1>>: Copy,

impl<T: RealField, D: Dim> Copy for UDU<T, D>where
    DefaultAllocator: Allocator<T, D> + Allocator<T, D, D>,
    OVector<T, D>: Copy,
    OMatrix<T, D, D>: Copy,

impl<T: Copy> Copy for AddressMessageBuffer<T>

impl Copy for CacheInfo

impl<T: Copy> Copy for CacheInfoBuffer<T>

impl<T: Copy> Copy for LinkMessageBuffer<T>

impl<T: Copy> Copy for InetDevConfBuffer<T>

impl Copy for InetDevConf

impl<T: Copy> Copy for Inet6CacheInfoBuffer<T>

impl<T: Copy> Copy for Inet6DevConfBuffer<T>

impl Copy for Icmp6Stats

impl<T: Copy> Copy for Icmp6StatsBuffer<T>

impl<T: Copy> Copy for Inet6StatsBuffer<T>

impl Copy for Inet6Stats

impl<T: Copy> Copy for MapBuffer<T>

impl Copy for Map

impl Copy for Stats

impl<T: Copy> Copy for StatsBuffer<T>

impl<T: Copy> Copy for Stats64Buffer<T>

impl Copy for Stats64

impl Copy for State

impl Copy for CacheInfo

impl<T: Copy> Copy for CacheInfoBuffer<T>

impl Copy for Config

impl<T: Copy> Copy for ConfigBuffer<T>

impl Copy for Stats

impl<T: Copy> Copy for StatsBuffer<T>

impl<T: Copy> Copy for NsidMessageBuffer<T>

impl<T: Copy> Copy for RouteMessageBuffer<T>

impl Copy for RouteFlags

impl Copy for CacheInfo

impl<T: Copy> Copy for CacheInfoBuffer<T>

impl Copy for MfcStats

impl<T: Copy> Copy for MfcStatsBuffer<T>

impl<T: Copy> Copy for NextHopBuffer<T>

impl<T: Copy> Copy for RuleMessageBuffer<T>

impl Copy for RuleFlags

impl<T: Copy> Copy for TcMessageBuffer<T>

impl Copy for Stats

impl<T: Copy> Copy for StatsBuffer<T>

impl Copy for StatsQueue

impl<T: Copy> Copy for StatsQueueBuffer<T>

impl Copy for StatsBasic

impl<T: Copy> Copy for StatsBasicBuffer<T>

impl<T: Copy> Copy for SelBuffer<T>

impl<T: Copy> Copy for KeyBuffer<T>

impl<T: Copy> Copy for TcMirredBuffer<T>

impl<T: Copy> Copy for TcGenBuffer<T>

impl<T: Copy> Copy for RtnlMessageBuffer<T>

impl<T: Copy + AsRef<[u8]>> Copy for NlaBuffer<T>

impl<T: Copy> Copy for NlasIterator<T>

impl Copy for SocketAddr

impl Copy for Errno

impl Copy for AtFlags

impl Copy for OFlag

impl Copy for RenameFlags

impl Copy for SealFlag

impl Copy for FdFlag

impl Copy for FlockArg

impl Copy for MsFlags

impl Copy for MntFlags

impl Copy for CloneFlags

impl Copy for CpuSet

impl Copy for Signal

impl Copy for SaFlags

impl Copy for SigmaskHow

impl Copy for SigSet

impl Copy for SigHandler

impl Copy for SigAction

impl Copy for SigevNotify

impl Copy for SigEvent

impl Copy for SfdFlags

impl Copy for SFlag

impl Copy for Mode

impl Copy for Statfs

impl Copy for FsType

impl Copy for FsFlags

impl Copy for Statvfs

impl Copy for SysInfo

impl Copy for TimeSpec

impl Copy for TimeVal

impl Copy for RemoteIoVec

impl<T: Copy> Copy for IoVec<T>

impl Copy for WaitPidFlag

impl Copy for WaitStatus

impl Copy for Id

impl Copy for Pid

impl Copy for ForkResult

impl Copy for Whence

impl Copy for LinkatFlags

impl Copy for AccessFlags

impl<T: Copy> Copy for Complex<T>

impl<T: Copy + Float> Copy for OrderedFloat<T>

impl<T: Copy + Float> Copy for NotNan<T>

impl Copy for FloatIsNan

impl<E: Copy> Copy for ParseNotNanError<E>

impl<Value: Copy + Ord + PartialOrd, Moment: Copy> Copy for TimestampedValue<Value, Moment>

impl<AssetId: Copy> Copy for AssetType<AssetId>

impl Copy for Reasons

impl Copy for Conviction

impl<Balance: Copy> Copy for Delegations<Balance>

impl Copy for Vote

impl<Balance: Copy> Copy for AccountVote<Balance>

impl<Bn: Copy> Copy for Phase<Bn>

impl Copy for OracleError

impl<Balance: Copy + Encode + Decode + MaxEncodedLen + Copy + Clone + Debug + Eq + PartialEq> Copy for Judgement<Balance>

impl<AccountId: Copy, Balance: Copy, BlockNumber: Copy> Copy for Offer<AccountId, Balance, BlockNumber>

impl<BlockNumber: Copy> Copy for Timepoint<BlockNumber>

impl<BoundedVec: Copy> Copy for ItemInfo<BoundedVec>

impl<Balance: Copy> Copy for BondExtra<Balance>

impl Copy for PoolState

impl Copy for PriceEntry

impl Copy for PriceInfo

impl Copy for BucketQueue

impl<AccountId: Copy, ProxyType: Copy, BlockNumber: Copy> Copy for ProxyDefinition<AccountId, ProxyType, BlockNumber>

impl<AccountId: Copy, Hash: Copy, BlockNumber: Copy> Copy for Announcement<AccountId, Hash, BlockNumber>

impl<AssetId: Copy> Copy for Trade<AssetId>

impl Copy for Vote

impl Copy for Judgement

impl<Balance: Copy, BlockNumber: Copy> Copy for Payout<Balance, BlockNumber>

impl<AccountId: Copy, Balance: Copy> Copy for Bid<AccountId, Balance>

impl<AccountId: Copy, Balance: Copy> Copy for BidKind<AccountId, Balance>

impl<AccountId: Copy> Copy for RewardDestination<AccountId>

impl Copy for Forcing

impl<Balance: Copy, BlockNumber: Copy> Copy for VestingInfo<Balance, BlockNumber>

impl Copy for Lookahead

impl Copy for Atomicity

impl Copy for MatchDir

impl<'i> Copy for Position<'i>

impl Copy for Assoc

impl Copy for Assoc

impl<'i> Copy for Span<'i>

impl Copy for RuleType

impl Copy for Rule

impl Copy for Time

impl<N: Copy> Copy for DfsEvent<N>

impl<B: Copy> Copy for Control<B>

impl<G: Copy, F: Copy> Copy for NodeFiltered<G, F>

impl<G: Copy, F: Copy> Copy for EdgeFiltered<G, F>

impl<G: Copy> Copy for Reversed<G>

impl<Ix> Copy for EdgeIndex<Ix>where
    Ix: IndexType + Copy,

impl<'a, E, Ix: IndexType> Copy for EdgeReference<'a, E, Ix>

impl<'a, E, Ty, Ix: Copy> Copy for EdgeReference<'a, E, Ty, Ix>

impl<Ix: Copy> Copy for NodeIndex<Ix>

impl<Ix: Copy> Copy for EdgeIndex<Ix>

impl<'a, E, Ix: IndexType> Copy for EdgeReference<'a, E, Ix>

impl<'a, E, Ix: IndexType> Copy for EdgeReference<'a, E, Ix>

impl<'b, T> Copy for Ptr<'b, T>

impl Copy for Direction

impl Copy for Directed

impl Copy for Undirected

impl Copy for Config

impl Copy for Config

impl Copy for Priority

impl Copy for Stage

impl Copy for PeerSet

impl Copy for IsAuthority

impl Copy for Protocol

impl Copy for Id

impl Copy for Sibling

impl Copy for CoreIndex

impl Copy for GroupIndex

impl Copy for ProxyType

impl Copy for Runtime

impl<BlockNumber: Copy> Copy for LastContribution<BlockNumber>

impl Copy for SlotRange

impl Copy for FreedReason

impl Copy for Event

impl Copy for AssetPair

impl Copy for Reason

impl Copy for LineColumn

impl Copy for Span

impl Copy for Delimiter

impl Copy for Spacing

impl Copy for SpanRange

impl Copy for MetricType

impl Copy for MetricType

impl Copy for EncodeError

impl Copy for Binomial

impl Copy for Error

impl<F> Copy for Cauchy<F>where
    F: Float + FloatConst + Copy,
    Standard: Distribution<F>,

impl Copy for Error

impl Copy for Exp1

impl<F> Copy for Exp<F>where
    F: Float + Copy,
    Exp1: Distribution<F>,

impl Copy for Error

impl<F> Copy for Frechet<F>where
    F: Float + Copy,
    OpenClosed01: Distribution<F>,

impl Copy for Error

impl<F> Copy for Gamma<F>where
    F: Float + Copy,
    StandardNormal: Distribution<F>,
    Exp1: Distribution<F>,
    Open01: Distribution<F>,

impl Copy for Error

impl<F> Copy for ChiSquared<F>where
    F: Float + Copy,
    StandardNormal: Distribution<F>,
    Exp1: Distribution<F>,
    Open01: Distribution<F>,

impl<F> Copy for FisherF<F>where
    F: Float + Copy,
    StandardNormal: Distribution<F>,
    Exp1: Distribution<F>,
    Open01: Distribution<F>,

impl<F> Copy for StudentT<F>where
    F: Float + Copy,
    StandardNormal: Distribution<F>,
    Exp1: Distribution<F>,
    Open01: Distribution<F>,

impl<F> Copy for Beta<F>where
    F: Float + Copy,
    Open01: Distribution<F>,

impl Copy for BetaError

impl Copy for Geometric

impl Copy for Error

impl<F> Copy for Gumbel<F>where
    F: Float + Copy,
    OpenClosed01: Distribution<F>,

impl Copy for Error

impl Copy for Error

impl Copy for Error

impl<F> Copy for InverseGaussian<F>where
    F: Float + Copy,
    StandardNormal: Distribution<F>,
    Standard: Distribution<F>,

impl<F> Copy for Normal<F>where
    F: Float + Copy,
    StandardNormal: Distribution<F>,

impl Copy for Error

impl<F> Copy for LogNormal<F>where
    F: Float + Copy,
    StandardNormal: Distribution<F>,

impl Copy for Error

impl<F> Copy for NormalInverseGaussian<F>where
    F: Float + Copy,
    StandardNormal: Distribution<F>,
    Standard: Distribution<F>,

impl<F> Copy for Pareto<F>where
    F: Float + Copy,
    OpenClosed01: Distribution<F>,

impl Copy for Error

impl<F> Copy for Pert<F>where
    F: Float + Copy,
    StandardNormal: Distribution<F>,
    Exp1: Distribution<F>,
    Open01: Distribution<F>,

impl Copy for PertError

impl<F> Copy for Poisson<F>where
    F: Float + FloatConst + Copy,
    Standard: Distribution<F>,

impl Copy for Error

impl<F> Copy for SkewNormal<F>where
    F: Float + Copy,
    StandardNormal: Distribution<F>,

impl Copy for Error

impl<F> Copy for Triangular<F>where
    F: Float + Copy,
    Standard: Distribution<F>,

impl Copy for UnitBall

impl Copy for UnitCircle

impl Copy for UnitDisc

impl Copy for UnitSphere

impl<F> Copy for Weibull<F>where
    F: Float + Copy,
    OpenClosed01: Distribution<F>,

impl Copy for Error

impl<F> Copy for Zeta<F>where
    F: Float + Copy,
    Standard: Distribution<F>,
    OpenClosed01: Distribution<F>,

impl Copy for ZetaError

impl<F> Copy for Zipf<F>where
    F: Float + Copy,
    Standard: Distribution<F>,

impl Copy for ZipfError

impl Copy for Additive

impl Copy for Multiplier

impl Copy for Additive

impl Copy for Multiplier

impl Copy for CodeParams

impl<B> Copy for UnparsedPublicKey<B>where
    B: AsRef<[u8]> + Copy,

impl<'a> Copy for Positive<'a>

impl Copy for Digest

impl Copy for Unspecified

impl Copy for KeyRejected

impl Copy for Algorithm

impl Copy for Algorithm

impl Copy for Tag

impl Copy for Algorithm

impl<B> Copy for RsaPublicKeyComponents<B>where
    B: AsRef<[u8]> + Debug + Copy,

impl Copy for Signature

impl<B> Copy for UnparsedPublicKey<B>where
    B: AsRef<[u8]> + Copy,

impl Copy for LogLevel

impl Copy for PerfMetric

impl Copy for Runtime

impl Copy for ProxyType

impl Copy for u24

impl Copy for Compression

impl Copy for ContentType

impl Copy for AlertLevel

impl Copy for NamedCurve

impl Copy for NamedGroup

impl Copy for ECCurveType

impl Copy for Random

impl Copy for SessionID

impl Copy for CipherSuite

impl Copy for RecordProof

impl Copy for NodeKeyType

impl Copy for OutputType

impl Copy for RpcMethods

impl Copy for Database

impl Copy for SyncMode

impl Copy for MemorySize

impl Copy for SyncMode

impl Copy for Direction

impl Copy for BlockState

impl<B: Copy + BlockT> Copy for PeerSyncState<B>where
    B::Hash: Copy,

impl<B: Copy + BlockT> Copy for AncestorSearchState<B>

impl Copy for SetId

impl Copy for DenyUnsafe

impl Copy for BlockStats

impl Copy for RpcMethods

impl Copy for SeqID

impl Copy for Error

impl Copy for SignalOnly

impl Copy for SigId

impl<N: Copy> Copy for AutoSimd<N>

impl<N: Copy> Copy for AutoBoolSimd<N>

impl Copy for KeyData

impl Copy for DefaultKey

impl Copy for BaseChoice

impl Copy for DHChoice

impl Copy for HashChoice

impl Copy for Domain

impl Copy for Type

impl Copy for Protocol

impl Copy for RecvFlags

impl Copy for OpCode

impl Copy for Mode

impl<'a> Copy for RequestHeaders<'a>

impl Copy for BlockStatus

impl Copy for BlockOrigin

impl Copy for NoNetwork

impl Copy for Slot

impl Copy for Keyring

impl Copy for Keyring

impl Copy for NumberOrHex

impl Copy for Timestamp

impl Copy for Bernoulli

impl Copy for Beta

impl Copy for Binomial

impl Copy for Cauchy

impl Copy for Chi

impl Copy for ChiSquared

impl Copy for Dirac

impl Copy for Erlang

impl Copy for Exp

impl Copy for Gamma

impl Copy for Geometric

impl Copy for Laplace

impl Copy for LogNormal

impl Copy for Normal

impl Copy for Pareto

impl Copy for Poisson

impl Copy for StudentsT

impl Copy for Triangular

impl Copy for Uniform

impl Copy for Weibull

impl Copy for ParseError

impl Copy for AddBounds

impl Copy for BindStyle

impl<'a> Copy for VariantAst<'a>

impl Copy for Runtime

impl Copy for LineEnding

impl<'a> Copy for Word<'a>

impl<'a> Copy for SeparatorPolicy<'a>

impl Copy for TType

impl Copy for Interest

impl Copy for Ready

impl Copy for UCred

impl Copy for SignalKind

impl Copy for Error

impl Copy for Instant

impl Copy for BytesCodec

impl Copy for Builder

impl<T: Copy> Copy for Compat<T>

impl Copy for Unspecified

impl Copy for Header

impl Copy for MessageType

impl Copy for Flags

impl Copy for OpCode

impl Copy for DNSClass

impl Copy for UserUsage

impl Copy for AppUsage

impl Copy for CacheUsage

impl Copy for AuthUsage

impl Copy for OpUsage

impl Copy for EdnsCode

impl Copy for Algorithm

impl Copy for SvcParamKey

impl Copy for CertUsage

impl Copy for Selector

impl Copy for Matching

impl Copy for RecordType

impl Copy for DecodeError

impl Copy for EncodeMode

impl<T: Copy> Copy for Restrict<T>

impl Copy for Protocol

impl<'a> Copy for TrieSetSlice<'a>

impl<S: Copy> Copy for UniCase<S>

impl<S: Copy> Copy for Ascii<S>

impl Copy for Level

impl Copy for BidiClass

impl Copy for Error

impl<'a> Copy for Input<'a>

impl Copy for EndOfInput

impl Copy for ParseError

impl Copy for Position

impl<'a> Copy for ParseOptions<'a>

impl Copy for Void

impl<T: Copy> Copy for Clamped<T>

impl Copy for TypeKind

impl Copy for Error

impl<'a> Copy for DnsNameRef<'a>

impl Copy for Time

impl Copy for ProxyType

impl Copy for Runtime

impl Copy for PublicKey

impl Copy for OriginKind

impl Copy for Parent

impl Copy for Ancestor

impl Copy for Error

impl Copy for StreamId

impl Copy for Mode