pub trait Copy: Clone { }Expand description
⌗
core
Types whose values can be duplicated simply by copying bits. (Derivable)
📍code/marker::Copy re-exported from core::marker
📜
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 valueHowever, 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
Copythemselves. Note that variables captured by shared reference always implementCopy(even if the referent doesn’t), while variables captured by mutable reference never implementCopy.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl Copy for !
impl Copy for Abi
impl Copy for AccessError
impl Copy for Adam7Pass
impl Copy for Adam7Row
impl Copy for Adam7Rows
impl Copy for Adler32
impl Copy for core::mem::alignment::Alignment
impl Copy for devela::all::FmtAlignment
impl Copy for AllocError
impl Copy for AlsaError
alsa only.impl Copy for jiff::tz::ambiguous::AmbiguousOffset
impl Copy for jiff_core::tz::offset::AmbiguousOffset
impl Copy for jiff::tz::ambiguous::AmbiguousTimestamp
impl Copy for jiff_core::tz::offset::AmbiguousTimestamp
impl Copy for AngleDirection
impl Copy for AngleKind
impl Copy for AnsiColor
term only.impl Copy for AnsiColor3
term only.impl Copy for AnsiColor8
term only.impl Copy for AppControl
impl Copy for AppControlSet
impl Copy for ArenaAllocHandleExample
impl Copy for ArenaAllocMarkExample
impl Copy for ArenaBytesAllocHandleExample
impl Copy for ArenaBytesAllocMarkExample
impl Copy for ArenaBytesHandleExample
impl Copy for ArenaBytesMarkExample
impl Copy for ArenaHandleExample
impl Copy for ArenaMarkExample
impl Copy for ArenaStringAllocHandleExample
impl Copy for ArenaStringAllocMarkExample
impl Copy for ArenaStringHandleExample
impl Copy for ArenaStringMarkExample
impl Copy for AsciiChar
impl Copy for AsciiSet
impl Copy for Assume
impl Copy for AudioChannel
audio only.impl Copy for AudioChannels
audio only.impl Copy for AudioDeviceDir
impl Copy for AudioStreamDir
impl Copy for BacktraceStyle
impl Copy for BdfError
font only.impl Copy for BinTag4
impl Copy for BitfieldExample
impl Copy for BoundI8Example
impl Copy for Boundary1d
impl Copy for Boundary2d
impl Copy for Boundary3d
impl Copy for BoundsError
impl Copy for Boxed
alloc only.impl Copy for CacheInfo
impl Copy for CacheInfoType
impl Copy for CacheParameter
impl Copy for CallBindTime
impl Copy for CallContext
impl Copy for CallDispatch
impl Copy for CallOpenness
impl Copy for CallSemantics
impl Copy for CallStorage
impl Copy for CharAscii
impl Copy for CharCase
impl Copy for CharTryFromError
impl Copy for CheckedCastError
impl Copy for CodeLocation
impl Copy for CodeSpan
impl Copy for ColorDepth
impl Copy for CompressionMode
impl Copy for Coverage8
impl Copy for CpuIdReaderNative
impl Copy for CpuIdResult
impl Copy for CpuidResult
impl Copy for CryptoError
impl Copy for DataNotEnough
impl Copy for jiff::civil::date::Date
impl Copy for jiff_core::civil::date::Date
impl Copy for DateArithmetic
impl Copy for DateDifference
impl Copy for jiff::civil::datetime::DateTime
impl Copy for jiff_core::civil::datetime::DateTime
impl Copy for jiff_core::tz::tzif::DateTime
impl Copy for DateTimeArithmetic
impl Copy for DateTimeDifference
impl Copy for DateTimeRound
impl Copy for DateTimeWith
impl Copy for DateWith
impl Copy for Day
impl Copy for DayTime
impl Copy for DebugAsHex
impl Copy for Designator
impl Copy for DeviceId
event only.impl Copy for DiagLevel
impl Copy for Direction
impl Copy for Disambiguation
impl Copy for DistBernoulli
impl Copy for DistBinomial
impl Copy for DistError
impl Copy for jiff::tz::offset::Dst
impl Copy for jiff_core::tz::Dst
impl Copy for Duration
impl Copy for DvbfError
font only.impl Copy for ElementNotFound
impl Copy for Empty
impl Copy for EncodingMode
impl Copy for EnumSetExample
impl Copy for EnumintI8Example
impl Copy for Era
impl Copy for Error
impl Copy for ErrorKind
impl Copy for EventButton
event only.impl Copy for EventButtonState
event only.impl Copy for EventButtons
event only.impl Copy for EventKey
event only.impl Copy for EventKeyFfi
ffi only.impl Copy for EventMouse
event only.impl Copy for EventPointer
event only.impl Copy for EventPointerKind
event only.impl Copy for EventTag
event only.impl Copy for EventTagSet
event only.impl Copy for EventTarget
event only.impl Copy for EventTimestamp
event only.impl Copy for EventTimestampMode
event only.impl Copy for EventWheel
event only.impl Copy for EventWheelUnit
event only.impl Copy for ExitCode
impl Copy for ExitStatus
impl Copy for std::process::ExitStatusError
impl Copy for devela::all::ExitStatusError
impl Copy for FailedErrorConversion
impl Copy for False
impl Copy for FatPtr
unsafe_layout only.impl Copy for FieldId
impl Copy for FileTimes
impl Copy for FileType
impl Copy for memchr::arch::all::packedpair::Finder
impl Copy for memchr::arch::all::twoway::Finder
impl Copy for memchr::arch::x86_64::avx2::packedpair::Finder
impl Copy for memchr::arch::x86_64::sse2::packedpair::Finder
impl Copy for FinderRev
impl Copy for FmtNumConf
impl Copy for FmtNumGroup
impl Copy for FmtNumShape
impl Copy for FmtNumSign
impl Copy for FormattingOptions
impl Copy for FpCategory
impl Copy for FractionalUnit
impl Copy for FromBytesUntilNulError
impl Copy for FromBytesWithNulError
impl Copy for Global
impl Copy for GraphAdjAllocEdgeExample
impl Copy for GraphAdjAllocVertexExample
impl Copy for GraphAdjEdgeExample
impl Copy for GraphAdjVertexExample
impl Copy for GraphCsrAllocEdgeExample
impl Copy for GraphCsrAllocVertexExample
impl Copy for GraphCsrEdgeExample
impl Copy for GraphCsrVertexExample
impl Copy for GraphemeBoundary
grapheme only.impl Copy for GraphemeMachine
grapheme only.impl Copy for GraphemePropCb
grapheme only.impl Copy for GraphemePropInCb
grapheme only.impl Copy for GraphemeProps
grapheme only.impl Copy for HandleExample
impl Copy for HandleGenExample
impl Copy for HandleSpanExample
impl Copy for HitRegion
ui only.impl Copy for HttpError
http only.impl Copy for HttpStatus
http only.impl Copy for HttpStatusClass
http only.impl Copy for HttpVersion
http only.impl Copy for jiff::civil::iso_week_date::ISOWeekDate
impl Copy for jiff_core::civil::date::ISOWeekDate
impl Copy for ImageError
impl Copy for ImageFrameInfo
impl Copy for ImageFrameSpan
impl Copy for ImageInfo
impl Copy for IncompatibleBounds
impl Copy for IndexOutOfBounds
impl Copy for Indicator
impl Copy for Instant
impl Copy for IntError
impl Copy for IntErrorKind
impl Copy for Interlace
impl Copy for InterlaceSet
impl Copy for InternStringAllocSymbolExample
impl Copy for InternStringSymbolExample
impl Copy for InvalidAxisLength
impl Copy for InvalidChar
impl Copy for InvalidText
impl Copy for InvalidUtf8
impl Copy for InvalidValue
impl Copy for IpAddr
impl Copy for Ipv4Addr
impl Copy for Ipv6Addr
impl Copy for Ipv6MulticastScope
impl Copy for JsInstant
js only.impl Copy for JsTextRenderMetrics
js only.impl Copy for JsTextRenderMetricsFull
js only.impl Copy for JsTimeout
js only.impl Copy for Key
event only.impl Copy for KeyAlreadyExists
impl Copy for KeyDead
event only.impl Copy for KeyFfi
ffi only.impl Copy for KeyMedia
event only.impl Copy for KeyMod
event only.impl Copy for KeyMods
event only.impl Copy for KeyPad
event only.impl Copy for KeyState
event only.impl Copy for Layout
impl Copy for Layout1d
ui only.impl Copy for LayoutReceipt
ui only.impl Copy for Lcg16
rand only.impl Copy for LinkExample
impl Copy for LinuxClock
linux and time only.impl Copy for LinuxError
linux only.impl Copy for LinuxFileType
linux only.impl Copy for LinuxOpenOptions
linux only.impl Copy for LinuxPipeFlags
linux only.impl Copy for LinuxRandomMode
linux only.impl Copy for LinuxSeekFrom
linux only.impl Copy for LinuxSigactionFlags
linux only.impl Copy for LinuxSignal
linux only.impl Copy for LinuxSignalSet
linux only.impl Copy for LinuxSigset
linux only.impl Copy for LinuxTermios
linux only.impl Copy for LinuxTermiosCc
linux only.impl Copy for LinuxTermiosCharSize
linux only.impl Copy for LinuxTermiosControlFlags
linux only.impl Copy for LinuxTermiosInputFlags
linux only.impl Copy for LinuxTermiosLocalFlags
linux only.impl Copy for LinuxTermiosOutputFlags
linux only.impl Copy for LinuxTimespec
linux and time only.impl Copy for LocalTimeType
impl Copy for Locality
impl Copy for Lunit
ui only.impl Copy for Md5
impl Copy for MemHedgeError
impl Copy for MemHedgeState
impl Copy for MemReplicaError
impl Copy for Meridiem
impl Copy for MismatchedBounds
impl Copy for MismatchedCapacity
impl Copy for MismatchedDimensions
impl Copy for MismatchedIndices
impl Copy for MismatchedSizes
impl Copy for Month
time only.impl Copy for NicheValueError
impl Copy for NoInverse
impl Copy for NodeEmpty
impl Copy for NodeLinkNotSet
impl Copy for NodeLinkNotUnique
impl Copy for NonNegativeRequired
impl Copy for NonZeroRequired
impl Copy for NotAvailable
impl Copy for NotEnoughElements
impl Copy for NotEnoughSpace
impl Copy for NotImplemented
impl Copy for NotSupported
impl Copy for NumError
impl Copy for jiff::tz::offset::Offset
impl Copy for jiff_core::tz::offset::Offset
impl Copy for OffsetArithmetic
impl Copy for OffsetConflict
impl Copy for OffsetRound
impl Copy for memchr::arch::all::memchr::One
impl Copy for memchr::arch::x86_64::avx2::memchr::One
impl Copy for memchr::arch::x86_64::sse2::memchr::One
impl Copy for devela::all::Ordering
impl Copy for devela::all::AtomicOrdering
impl Copy for Otp
impl Copy for Overflow
impl Copy for Pair
impl Copy for PartialSpace
impl Copy for PartiallyAdded
impl Copy for Pcg32
impl Copy for PcmLayout
audio only.impl Copy for PcmRawError
audio only.impl Copy for PcmSample
audio only.impl Copy for PcmSpec
audio only.impl Copy for PcmWavError
audio only.impl Copy for PcmWavFmt
audio only.impl Copy for PermissionError
impl Copy for PermissionState
impl Copy for PhantomPinned
impl Copy for Phase
impl Copy for PhaseAccum
impl Copy for PhaseStep
impl Copy for PiecesNumericOffset
impl Copy for PiecesOffset
impl Copy for PodCastError
impl Copy for PointSegmentRelation
impl Copy for PoolAllocHandleExample
impl Copy for PoolHandleExample
impl Copy for PoolSeqHandleExample
impl Copy for PositiveRequired
impl Copy for PrefilterConfig
impl Copy for Probability
impl Copy for RandQualities
impl Copy for RangeError
impl Copy for RangeFull
impl Copy for RasterElement
impl Copy for RasterFormat
impl Copy for RasterGrid
impl Copy for RasterLayout
impl Copy for RawWakerVTable
impl Copy for RecvError
impl Copy for RecvTimeoutError
impl Copy for ReprMode
impl Copy for RiffError
impl Copy for RoundMode
impl Copy for RouteActive
ui only.impl Copy for RouteAnchor
impl Copy for RouteCapture
ui only.impl Copy for RouteFocus
ui only.impl Copy for RouteHot
ui only.impl Copy for Rule
impl Copy for RunCap
impl Copy for RunCapAudio
impl Copy for RunCapColor
impl Copy for RunCapImage
impl Copy for RunCapInput
impl Copy for RunCapSystem
impl Copy for RunCapText
impl Copy for RunCapWindow
impl Copy for RunControl
impl Copy for RunCycle
impl Copy for RunPhase
impl Copy for RuntimeTick
impl Copy for ScriptCall
impl Copy for ScriptCallId
impl Copy for SearchStep
impl Copy for SeekFrom
impl Copy for Sha1
impl Copy for Sha256
impl Copy for Sha512
impl Copy for ShellQuote
shell only.impl Copy for ShellWordError
shell only.impl Copy for Shutdown
impl Copy for core::fmt::Sign
impl Copy for jiff_core::bounds::Sign
impl Copy for devela::all::Sign
impl Copy for SignedDuration
impl Copy for SignedDurationRound
impl Copy for Sink
impl Copy for SixelChar
term only.impl Copy for SixelColor
term only.impl Copy for SocketAddr
impl Copy for SocketAddrV4
impl Copy for SocketAddrV6
impl Copy for Spacing
impl Copy for Span
impl Copy for SpanFieldwise
impl Copy for SparseSetError
impl Copy for SplitMix64
impl Copy for StatsMoment
impl Copy for StdRand
std only.impl Copy for StridedBlocks
impl Copy for System
impl Copy for SystemRng
impl Copy for SystemTime
impl Copy for SystemTimeError
std and time only.impl Copy for TableCoord
impl Copy for TableLayout
impl Copy for TableShape
impl Copy for TermCap
term only.impl Copy for TermCaps
term only.impl Copy for TermCellUi
term and ui only.impl Copy for TermColor
term only.impl Copy for TermColorKind
term only.impl Copy for TermColorMode
term only.impl Copy for TermColors
term only.impl Copy for TermGridError
term only.impl Copy for TermLineMode
term only.impl Copy for TermMode
term only.impl Copy for TermPollPolicy
term only.impl Copy for TermSize
term only.impl Copy for TermStyle
term only.impl Copy for TermStyleExt
term only.impl Copy for TermelMeta
term only.impl Copy for TermelOccupancy
term only.impl Copy for TextBreakKind
impl Copy for TextBreakMode
impl Copy for TextCohesion
impl Copy for TextCursor
impl Copy for TextElideMode
impl Copy for TextError
impl Copy for TextFit
impl Copy for TextIndex
impl Copy for TextInputAction
ui only.impl Copy for TextInputConfig
ui only.impl Copy for TextInputKeymap
event and ui only.impl Copy for TextInputKeymapPreset
event and ui only.impl Copy for TextInputOutcome
ui only.impl Copy for TextInputReject
ui only.impl Copy for TextLayout
impl Copy for TextLayoutSpan
impl Copy for TextLayoutStep
impl Copy for TextLine
impl Copy for TextParseError
impl Copy for TextParseErrorKind
impl Copy for TextRange
impl Copy for TextSegment
impl Copy for TextSegmentKind
impl Copy for TextSymbol
impl Copy for TextSymbolConfig
impl Copy for TextelWidth
impl Copy for TextelWidthMode
impl Copy for ThreadId
impl Copy for memchr::arch::all::memchr::Three
impl Copy for memchr::arch::x86_64::avx2::memchr::Three
impl Copy for memchr::arch::x86_64::sse2::memchr::Three
impl Copy for jiff::civil::time::Time
impl Copy for jiff_core::civil::time::Time
impl Copy for TimeArithmetic
impl Copy for TimeDelta
time only.impl Copy for TimeDifference
impl Copy for TimeError
std and time only.impl Copy for TimeNanosecond
impl Copy for TimeRound
impl Copy for TimeScale
time only.impl Copy for TimeSecond
impl Copy for TimeUnixI64
time only.impl Copy for TimeUnixU32
time only.impl Copy for TimeWith
impl Copy for Timeout
time only.impl Copy for jiff::timestamp::Timestamp
impl Copy for jiff_core::timestamp::Timestamp
impl Copy for jiff_core::tz::tzif::Timestamp
impl Copy for TimestampArithmetic
impl Copy for TimestampDifference
impl Copy for TimestampDisplayWithOffset
impl Copy for TimestampRound
impl Copy for TransitionCivilTime
impl Copy for TransitionInfo
impl Copy for TransitionKind
impl Copy for True
impl Copy for TryFromCharError
impl Copy for TryFromIntError
impl Copy for TryFromSliceError
impl Copy for TryRecvError
impl Copy for Turn
impl Copy for memchr::arch::all::memchr::Two
impl Copy for memchr::arch::x86_64::avx2::memchr::Two
impl Copy for memchr::arch::x86_64::sse2::memchr::Two
impl Copy for TypeId
impl Copy for UCred
impl Copy for UiActions
ui only.impl Copy for UiCellMetric
ui only.impl Copy for UiDensity
ui only.impl Copy for UiEntry
ui only.impl Copy for UiFlags
ui only.impl Copy for UiFrame
ui only.impl Copy for UiId
ui only.impl Copy for UiKey
ui only.impl Copy for UiLayer
ui only.impl Copy for UiPhase
ui only.impl Copy for UiResponse
widget only.impl Copy for UiResponseFlags
widget only.impl Copy for UiRole
ui only.impl Copy for UiRound
ui only.impl Copy for UiScope
ui only.impl Copy for UiStack
ui only.impl Copy for UiView
ui only.impl Copy for UiViewFlags
ui only.impl Copy for UiViewForm
ui only.impl Copy for UnexpectedEof
impl Copy for Unit
impl Copy for UnitBi
unit only.impl Copy for UnitSi
unit only.impl Copy for UnixEpochDay
impl Copy for core::str::error::Utf8Error
impl Copy for simdutf8::basic::Utf8Error
impl Copy for simdutf8::compat::Utf8Error
impl Copy for Uuid
impl Copy for UuidNonNil
impl Copy for UuidVariant
impl Copy for UuidVersion
impl Copy for Value8
impl Copy for Value16
impl Copy for Value32
impl Copy for Value64
impl Copy for Value128
impl Copy for ValueKind
impl Copy for ValueKind4
impl Copy for VariantId
impl Copy for Version
impl Copy for WaitTimeoutResult
impl Copy for WaveletUnitRole
wave only.impl Copy for Web
web only.impl Copy for WebDocument
web only.impl Copy for WebEventKey
event and web only.impl Copy for WebEventKind
event and web only.impl Copy for WebEventMouse
event and web only.impl Copy for WebEventPointer
event and web only.impl Copy for WebEventWheel
event and web only.impl Copy for WebKeyLocation
event and web only.impl Copy for WebPermission
web only.impl Copy for WebPermissionSet
web only.impl Copy for WebPermissionSnapshot
web only.impl Copy for WebWindow
web only.impl Copy for WebWindowState
web only.impl Copy for WebWorker
web only.impl Copy for WebWorkerError
web only.impl Copy for WebWorkerJob
web only.impl Copy for jiff::civil::weekday::Weekday
impl Copy for jiff_core::civil::weekday::Weekday
impl Copy for devela::all::Weekday
time only.impl Copy for WindowId
event only.impl Copy for XImageMode
x11 only.impl Copy for XRasterRenderer
x11 only.impl Copy for XSurfaceUi
font and crate feature ui and crate feature x11 only.impl Copy for Xabc
rand only.impl Copy for XorShift128
rand only.impl Copy for XorShift128p
rand only.impl Copy for Xoroshiro128pp
rand only.impl Copy for Xyza8a
rand only.impl Copy for Xyza8b
rand only.impl Copy for ZonedArithmetic
impl Copy for ZonedRound
impl Copy for __m128
impl Copy for __m256
impl Copy for __m512
impl Copy for __m128bh
impl Copy for __m128d
impl Copy for __m128h
impl Copy for __m128i
impl Copy for __m256bh
impl Copy for __m256d
impl Copy for __m256h
impl Copy for __m256i
impl Copy for __m512bh
impl Copy for __m512d
impl Copy for __m512h
impl Copy for __m512i
impl Copy for __tile1024i
impl Copy for bf16
impl Copy for bool
impl Copy for char
impl Copy for char7
impl Copy for char8
impl Copy for char16
impl Copy for charu
impl Copy for charu_niche
impl Copy for f16
impl Copy for f32
impl Copy for f64
impl Copy for f32bits
impl Copy for f32bits_niche
impl Copy for f32x4
impl Copy for f32x8
impl Copy for f32x16
impl Copy for f64bits
impl Copy for f64bits_niche
impl Copy for f64x2
impl Copy for f64x4
impl Copy for f64x8
impl Copy for f128
impl Copy for g_bvec2
glsl only.impl Copy for g_bvec3
glsl only.impl Copy for g_bvec4
glsl only.impl Copy for g_dmat2
glsl only.impl Copy for g_dmat3
glsl only.impl Copy for g_dmat4
glsl only.impl Copy for g_dvec2
glsl only.impl Copy for g_dvec3
glsl only.impl Copy for g_dvec4
glsl only.impl Copy for g_ivec2
glsl only.impl Copy for g_ivec3
glsl only.impl Copy for g_ivec4
glsl only.impl Copy for g_mat2
glsl only.impl Copy for g_mat3
glsl only.impl Copy for g_mat4
glsl only.impl Copy for g_mat2x3
glsl only.impl Copy for g_mat2x4
glsl only.impl Copy for g_mat3x2
glsl only.impl Copy for g_mat3x4
glsl only.impl Copy for g_mat4x2
glsl only.impl Copy for g_mat4x3
glsl only.impl Copy for g_uvec2
glsl only.impl Copy for g_uvec3
glsl only.impl Copy for g_uvec4
glsl only.impl Copy for g_vec2
glsl only.impl Copy for g_vec3
glsl only.impl Copy for g_vec4
glsl only.impl Copy for g_vertex2
glsl only.impl Copy for g_vertex3
glsl only.impl Copy for i8
impl Copy for i8x16
impl Copy for i8x32
impl Copy for i8x64
impl Copy for i16
impl Copy for i32
impl Copy for i64
impl Copy for i16x8
impl Copy for i16x16
impl Copy for i16x32
impl Copy for i32x4
impl Copy for i32x8
impl Copy for i32x16
impl Copy for i64x2
impl Copy for i64x4
impl Copy for i64x8
impl Copy for i128
impl Copy for isize
impl Copy for m128
impl Copy for m256
impl Copy for m512
impl Copy for m128d
impl Copy for m128i
impl Copy for m256d
impl Copy for m256i
impl Copy for m512d
impl Copy for m512i
impl Copy for u8
impl Copy for u8x16
impl Copy for u8x32
impl Copy for u8x64
impl Copy for u16
impl Copy for u32
impl Copy for u64
impl Copy for u16x8
impl Copy for u16x16
impl Copy for u16x32
impl Copy for u32x4
impl Copy for u32x8
impl Copy for u32x16
impl Copy for u64x2
impl Copy for u64x4
impl Copy for u64x8
impl Copy for u128
impl Copy for usize
impl<'a, 's, T: Copy, const N: usize> Copy for MemHedgeRead<'a, 's, T, N>
impl<'a, E: Copy, C: Copy> Copy for RunFrame<'a, E, C>
impl<'a, E: Copy> Copy for RunStep<'a, E>
impl<'a, S: Copy, T: Copy> Copy for UiOutputView<'a, S, T>
ui only.impl<'a, T: Copy + 'a> Copy for ConstList<'a, T>
impl<'a, T: Copy, S: Copy> Copy for BufferLinearViewExample<'a, T, S>
impl<'a, T: Copy, const D: usize, const V: usize> Copy for SimplexFacetView<'a, T, D, V>
impl<'a, T: Copy> Copy for ConstListIter<'a, T>
impl<'a, const N: usize> Copy for AnsiOsc<'a, N>
term only.impl<'a> Copy for Ancestors<'a>
impl<'a> Copy for AnsiLink<'a>
term only.impl<'a> Copy for Arguments<'a>
impl<'a> Copy for AudioDevice<'a>
impl<'a> Copy for Component<'a>
impl<'a> Copy for DistCategorical<'a>
impl<'a> Copy for FontBitmapView<'a>
font only.impl<'a> Copy for GlyphBitmapView<'a>
font only.impl<'a> Copy for HttpMethod<'a>
http only.impl<'a> Copy for HttpRequestLine<'a>
http only.impl<'a> Copy for HttpResponseHead<'a>
http only.impl<'a> Copy for IoSlice<'a>
impl<'a> Copy for Location<'a>
impl<'a> Copy for MarkovKernel<'a>
impl<'a> Copy for PhantomContravariantLifetime<'a>
impl<'a> Copy for PhantomCovariantLifetime<'a>
impl<'a> Copy for PhantomInvariantLifetime<'a>
impl<'a> Copy for Prefix<'a>
impl<'a> Copy for PrefixComponent<'a>
impl<'a> Copy for RiffChunk<'a>
impl<'a> Copy for Route<'a>
impl<'a> Copy for RouteName<'a>
impl<'a> Copy for RouteSeg<'a>
impl<'a> Copy for SpanArithmetic<'a>
impl<'a> Copy for SpanCompare<'a>
impl<'a> Copy for SpanRelativeTo<'a>
impl<'a> Copy for SpanRound<'a>
impl<'a> Copy for SpanTotal<'a>
impl<'a> Copy for TextInputView<'a>
ui only.impl<'a> Copy for TextLineIter<'a>
impl<'a> Copy for TextWrapIter<'a>
impl<'a> Copy for TimeFakeRef<'a>
target_has_atomic=64 and crate feature time only.impl<'a> Copy for UiButton<'a>
widget only.impl<'a> Copy for UiText<'a>
ui only.impl<'a> Copy for Utf8Pattern<'a>
impl<'a> Copy for VersionFull<'a>
impl<'a> Copy for WebCanvasUi<'a>
ui and web only.impl<'a> Copy for ZonedDifference<'a>
impl<'fd> Copy for BorrowedFd<'fd>
impl<A: Copy, B: Copy, F: Copy> Copy for SignalZip<A, B, F>
impl<B, C> Copy for ControlFlow<B, C>
impl<B: Copy> Copy for PcmRawBuf<B>
audio only.impl<B: Copy> Copy for PcmWavBuf<B>
audio only.impl<B: Copy> Copy for RasterByteSlice<B>
impl<B> Copy for RawBoundsError<B>
impl<BE: Copy, AE: Copy, RE: Copy, PE: Copy> Copy for RunDriverFrameError<BE, AE, RE, PE>
impl<BE: Copy, AE: Copy> Copy for RunDriverError<BE, AE>
impl<D: Copy, const RANK: usize> Copy for Array<D, RANK>
impl<D: Copy> Copy for Table<D>
impl<Dyn> Copy for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<E: Copy, S: Copy> Copy for TermGrid<E, S>
term only.impl<E: Copy> Copy for ScriptError<E>
impl<F: Copy> Copy for SignalFn<F>
impl<F> Copy for RepeatWith<F>where
F: Copy,
impl<G: Copy, C: Copy> Copy for GcdReturn<G, C>
impl<I: Copy> Copy for SeqNext<I>
impl<I: Copy> Copy for SeqPrevNext<I>
impl<Idx> Copy for Range<Idx>where
Idx: Copy,
impl<Idx> Copy for RangeFrom<Idx>where
Idx: Copy,
impl<Idx> Copy for RangeInclusive<Idx>where
Idx: Copy,
impl<Idx> Copy for RangeTo<Idx>where
Idx: Copy,
impl<Idx> Copy for core::ops::range::RangeToInclusive<Idx>where
Idx: Copy,
impl<Idx> Copy for devela::all::RangeToInclusive<Idx>where
Idx: Copy,
impl<K: Copy + Copy, V: Copy, const N: usize> Copy for MapFixedConstU8Example<K, V, N>
impl<K: Copy + Copy, V: Copy, const N: usize> Copy for MapFixedTypeIdExample<K, V, N>
impl<K: Copy + Copy, V: Copy, const N: usize> Copy for MapFixedU8Example<K, V, N>
impl<K: Copy, P: Copy> Copy for Cue<K, P>
impl<L: Copy, N: Copy> Copy for SeqNode<L, N>
impl<L: Copy, R: Copy> Copy for Concat<L, R>
impl<L: Copy, V: Copy, D: Copy> Copy for UiOutput<L, V, D>
ui only.impl<N: Copy, D: Copy> Copy for Ratio<N, D>
impl<N: Copy, H: Copy> Copy for Mismatch<N, H>
impl<P: Copy, E: Copy, const D: usize> Copy for Region<P, E, D>
impl<P: Copy, E: Copy, const D: usize> Copy for RegionStrided<P, E, D>
impl<P> Copy for MaybeDangling<P>
impl<Ptr> Copy for Pin<Ptr>where
Ptr: Copy,
impl<R: Copy> Copy for Runtime<R>
impl<R: Copy> Copy for ScriptOp<R>
impl<R: Copy> Copy for ScriptOutcome<R>
impl<R: Copy> Copy for ScriptValue<R>
impl<R> Copy for CacheParametersIter<R>where
R: Copy + CpuIdReader,
impl<R> Copy for CpuId<R>where
R: Copy + CpuIdReader,
impl<R> Copy for UnwrapErr<R>
impl<S: Copy, C: Copy> Copy for TermPen<S, C>
term only.impl<S: Copy, F: Copy> Copy for SignalMap<S, F>
impl<S: Copy, K: Copy> Copy for SignalScale<S, K>
impl<S: Copy, P: Copy, O: Copy> Copy for Relation<S, P, O>
impl<S: Copy, T: Copy, B: Copy> Copy for UiDrawList<S, T, B>
ui only.impl<S: Copy, T: Copy> Copy for SignalClamp<S, T>
impl<S: Copy, T: Copy> Copy for UiDraw<S, T>
ui only.impl<S: Copy, T: Copy> Copy for UiDrawKind<S, T>
ui only.impl<S: Copy> Copy for ByteCursor<S>
impl<T, E> Copy for Result<T, E>
impl<T, F: Copy> Copy for OptionFmtOrElse<'_, T, F>
impl<T, U: Copy> Copy for OptionFmtOr<'_, T, U>
impl<T, const N: usize> Copy for Mask<T, N>where
T: MaskElement,
impl<T, const N: usize> Copy for Simd<T, N>where
T: SimdElement,
impl<T, const N: usize> Copy for [T; N]where
T: Copy,
impl<T, const VARIANT: u32, const FIELD: u32> Copy for FieldRepresentingType<T, VARIANT, FIELD>where
T: ?Sized,
impl<T: Copy + Copy> Copy for Digits<T>
impl<T: Copy + Copy> Copy for MaybeNiche<T>
impl<T: Copy + Copy> Copy for NonNiche<T>
impl<T: Copy + TimeSpan> Copy for RunPacer<T>
time only.impl<T: Copy, B: Copy> Copy for PcmBuf<T, B>
audio only.impl<T: Copy, B: Copy> Copy for RasterSlice<T, B>
impl<T: Copy, E: Copy> Copy for CoroWorker<T, E>
impl<T: Copy, M: Copy> Copy for Textel<T, M>
impl<T: Copy, N: Copy> Copy for CycleCount<T, N>
impl<T: Copy, S: Copy, C: Copy, M: Copy> Copy for Termel<T, S, C, M>
term only.impl<T: Copy, S: Copy> Copy for BufferLinearAllocExample<T, S>
impl<T: Copy, S: Copy> Copy for BufferLinearStaticExample<T, S>
impl<T: Copy, S: Copy> Copy for BufferRingStaticExample<T, S>
impl<T: Copy, S: Copy> Copy for BufferRingU8<T, S>
impl<T: Copy, const D: usize, const V: usize> Copy for Simplex<T, D, V>
impl<T: Copy, const D: usize> Copy for Distance<T, D>
impl<T: Copy, const D: usize> Copy for Extent<T, D>
impl<T: Copy, const D: usize> Copy for Orientation<T, D>
impl<T: Copy, const D: usize> Copy for Point<T, D>
impl<T: Copy, const D: usize> Copy for Position<T, D>
impl<T: Copy, const D: usize> Copy for Stride<T, D>
impl<T: Copy, const D: usize> Copy for Vector<T, D>
alg only.impl<T: Copy, const LINEAR: bool, const LIGHTNESS: bool> Copy for Lum<T, LINEAR, LIGHTNESS>
color only.impl<T: Copy, const LINEAR: bool, const PREMUL: bool> Copy for Rgba<T, LINEAR, PREMUL>
color only.impl<T: Copy, const LINEAR: bool> Copy for Rgb<T, LINEAR>
color only.impl<T: Copy, const R: usize, const C: usize, const LEN: usize> Copy for Matrix<T, R, C, LEN>
alg only.impl<T: Copy> Copy for Angle<T>
impl<T: Copy> Copy for BareBox<T>
impl<T: Copy> Copy for BitSpan<T>
impl<T: Copy> Copy for Bitwise<T>
impl<T: Copy> Copy for CacheAlign<T>
impl<T: Copy> Copy for Cast<T>
impl<T: Copy> Copy for Char<T>
impl<T: Copy> Copy for Cmp<T>
impl<T: Copy> Copy for Crc<T>
impl<T: Copy> Copy for CurveRamp<T>
impl<T: Copy> Copy for Cycle<T>
impl<T: Copy> Copy for DivisorExample<T>
impl<T: Copy> Copy for Float<T>
impl<T: Copy> Copy for FmtNum<T>
impl<T: Copy> Copy for Frac<T>
int only.impl<T: Copy> Copy for Gamma<T>
color only.impl<T: Copy> Copy for HasherFnv<T>
hash only.impl<T: Copy> Copy for HasherFx<T>
impl<T: Copy> Copy for Int<T>
int only.impl<T: Copy> Copy for Interval<T>
impl<T: Copy> Copy for Lane4_i32Example<T>
impl<T: Copy> Copy for RunDriver<T>
impl<T: Copy> Copy for Scale<T>
impl<T: Copy> Copy for SignalConst<T>
impl<T> Copy for &Twhere
T: ?Sized,
Shared references can be copied, but mutable references cannot!
impl<T> Copy for *const Twhere
T: ?Sized,
impl<T> Copy for *mut Twhere
T: ?Sized,
impl<T> Copy for Bound<T>where
T: Copy,
impl<T> Copy for Complex<T>where
T: Copy,
impl<T> Copy for Discriminant<T>
impl<T> Copy for ManuallyDrop<T>
impl<T> Copy for MaybeUninit<T>where
T: Copy,
impl<T> Copy for NonNull<T>where
T: ?Sized,
impl<T> Copy for NonZero<T>where
T: ZeroablePrimitive,
impl<T> Copy for Option<T>where
T: Copy,
impl<T> Copy for OptionFmt<'_, T>
impl<T> Copy for PhantomContravariant<T>where
T: ?Sized,
impl<T> Copy for PhantomCovariant<T>where
T: ?Sized,
impl<T> Copy for PhantomData<T>where
T: ?Sized,
impl<T> Copy for PhantomInvariant<T>where
T: ?Sized,
impl<T> Copy for Poll<T>where
T: Copy,
impl<T> Copy for Reverse<T>where
T: Copy,
impl<T> Copy for Saturating<T>where
T: Copy,
impl<T> Copy for SendError<T>where
T: Copy,
impl<T> Copy for SendTimeoutError<T>where
T: Copy,
impl<T> Copy for SyncView<T>
impl<T> Copy for TrySendError<T>where
T: Copy,
impl<T> Copy for TypeResource<T>
impl<T> Copy for Wrapping<T>where
T: Copy,
impl<V: Copy, Q: Copy> Copy for ValueQuant<V, Q>
impl<V: Copy, T: Copy> Copy for Timed<V, T>
impl<V: Copy> Copy for DerivedFrom<V>
impl<V: Copy> Copy for RevisionOf<V>
impl<Y, R> Copy for CoroutineState<Y, R>
impl<Y: Copy, MO: Copy, D: Copy, H: Copy, M: Copy, S: Copy, MS: Copy, US: Copy, NS: Copy> Copy for TimeSplit<Y, MO, D, H, M, S, MS, US, NS>
time only.impl<_0: Copy, _1: Copy, _2: Copy, _3: Copy, _4: Copy, _5: Copy, _6: Copy, _7: Copy, _8: Copy, _9: Copy, _10: Copy, _11: Copy> Copy for TupleElement<_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11>
_tuple only.impl<const A: usize, const B: usize, const C: usize> Copy for XorShift8<A, B, C>
rand only.impl<const BASE: u8> Copy for Radix<BASE>
impl<const BASIS: usize, const A: usize, const B: usize, const C: usize> Copy for XorShift16<BASIS, A, B, C>
rand only.impl<const BASIS: usize, const A: usize, const B: usize, const C: usize> Copy for XorShift32<BASIS, A, B, C>
rand only.impl<const BASIS: usize, const A: usize, const B: usize, const C: usize> Copy for XorShift64<BASIS, A, B, C>
rand only.impl<const CAP: usize> Copy for GraphemeU8<CAP>
grapheme only.impl<const CAP: usize> Copy for StringNonNul<CAP>
impl<const CAP: usize> Copy for StringU8<CAP>
impl<const LEN: usize, _0: Copy, _1: Copy, _2: Copy, _3: Copy, _4: Copy, _5: Copy, _6: Copy, _7: Copy, _8: Copy, _9: Copy, _10: Copy, _11: Copy> Copy for Oneof<LEN, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11>
impl<const N: usize, const PANIC: bool> Copy for RandFake<N, PANIC>
rand only.