Skip to main content

TrivialClone

Trait TrivialClone 

Source
pub unsafe trait TrivialClone: Clone { }
🔬This is a nightly-only experimental API. (trivial_clone)
Expand description

Indicates that the Clone implementation is identical to copying the value.

This is used for some optimizations in the standard library, which specializes on this trait to select faster implementations of functions such as clone_from_slice. It is automatically implemented when using #[derive(Clone, Copy)].

Note that this trait does not imply that the type is Copy, because e.g. core::ops::Range<i32> could soundly implement this trait.

§Safety

Clone::clone must be equivalent to copying the value, otherwise calling functions such as slice::clone_from_slice can have undefined behaviour.

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 TrivialClone for AsciiChar

Source§

impl TrivialClone for CharErrorKind

Source§

impl TrivialClone for CharCase

1.0.0 (const: unstable) · Source§

impl TrivialClone for core::cmp::Ordering

1.64.0 · Source§

impl TrivialClone for FromBytesWithNulError

1.28.0 · Source§

impl TrivialClone for core::fmt::Alignment

Source§

impl TrivialClone for DebugAsHex

Source§

impl TrivialClone for core::fmt::Sign

Source§

impl TrivialClone for Locality

Source§

impl TrivialClone for AlignmentEnum

1.7.0 · Source§

impl TrivialClone for IpAddr

Source§

impl TrivialClone for Ipv6MulticastScope

1.0.0 · Source§

impl TrivialClone for SocketAddr

1.0.0 · Source§

impl TrivialClone for FpCategory

1.55.0 · Source§

impl TrivialClone for IntErrorKind

Source§

impl TrivialClone for FullDecoded

Source§

impl TrivialClone for core::num::imp::flt2dec::Sign

Source§

impl TrivialClone for SearchStep

1.0.0 · Source§

impl TrivialClone for core::sync::atomic::Ordering

Source§

impl TrivialClone for bool

Source§

impl TrivialClone for char

Source§

impl TrivialClone for f16

Source§

impl TrivialClone for f32

Source§

impl TrivialClone for f64

Source§

impl TrivialClone for f128

Source§

impl TrivialClone for i8

Source§

impl TrivialClone for i16

Source§

impl TrivialClone for i32

Source§

impl TrivialClone for i64

Source§

impl TrivialClone for i128

Source§

impl TrivialClone for isize

Source§

impl TrivialClone for !

Source§

impl TrivialClone for u8

Source§

impl TrivialClone for u16

Source§

impl TrivialClone for u32

Source§

impl TrivialClone for u64

Source§

impl TrivialClone for u128

Source§

impl TrivialClone for usize

1.28.0 · Source§

impl TrivialClone for Layout

Source§

impl TrivialClone for AllocError

1.0.0 (const: unstable) · Source§

impl TrivialClone for TypeId

1.34.0 · Source§

impl TrivialClone for TryFromSliceError

1.34.0 · Source§

impl TrivialClone for CharTryFromError

1.59.0 · Source§

impl TrivialClone for TryFromCharError

1.27.0 · Source§

impl TrivialClone for CpuidResult

Available on x86 or x86-64 only.
1.27.0 · Source§

impl TrivialClone for __m128

Available on x86 or x86-64 only.
1.89.0 · Source§

impl TrivialClone for __m128bh

Available on x86 or x86-64 only.
1.27.0 · Source§

impl TrivialClone for __m128d

Available on x86 or x86-64 only.
1.94.0 · Source§

impl TrivialClone for __m128h

Available on x86 or x86-64 only.
1.27.0 · Source§

impl TrivialClone for __m128i

Available on x86 or x86-64 only.
1.27.0 · Source§

impl TrivialClone for __m256

Available on x86 or x86-64 only.
1.89.0 · Source§

impl TrivialClone for __m256bh

Available on x86 or x86-64 only.
1.27.0 · Source§

impl TrivialClone for __m256d

Available on x86 or x86-64 only.
1.94.0 · Source§

impl TrivialClone for __m256h

Available on x86 or x86-64 only.
1.27.0 · Source§

impl TrivialClone for __m256i

Available on x86 or x86-64 only.
1.72.0 · Source§

impl TrivialClone for __m512

Available on x86 or x86-64 only.
1.89.0 · Source§

impl TrivialClone for __m512bh

Available on x86 or x86-64 only.
1.72.0 · Source§

impl TrivialClone for __m512d

Available on x86 or x86-64 only.
1.94.0 · Source§

impl TrivialClone for __m512h

Available on x86 or x86-64 only.
1.72.0 · Source§

impl TrivialClone for __m512i

Available on x86 or x86-64 only.
Source§

impl TrivialClone for bf16

Available on x86 or x86-64 only.
Source§

impl TrivialClone for AlwaysEscaped

Source§

impl TrivialClone for MaybeEscaped

Source§

impl TrivialClone for VaListInner

1.0.0 · Source§

impl TrivialClone for Error

Source§

impl TrivialClone for FormattingOptions

Source§

impl TrivialClone for ResumeTy

Source§

impl TrivialClone for State

1.33.0 · Source§

impl TrivialClone for PhantomPinned

Source§

impl TrivialClone for core::mem::alignment::Alignment

Source§

impl TrivialClone for Assume

1.0.0 (const: unstable) · Source§

impl TrivialClone for Ipv4Addr

1.0.0 (const: unstable) · Source§

impl TrivialClone for Ipv6Addr

1.0.0 · Source§

impl TrivialClone for SocketAddrV4

1.0.0 · Source§

impl TrivialClone for SocketAddrV6

1.34.0 · Source§

impl TrivialClone for TryFromIntError

Source§

impl TrivialClone for BiasedFp

Source§

impl TrivialClone for Decimal

Source§

impl TrivialClone for Fp

Source§

impl TrivialClone for Decoded

Source§

impl TrivialClone for CodePointInner

Source§

impl TrivialClone for I32NotAllOnes

Source§

impl TrivialClone for I64NotAllOnes

Source§

impl TrivialClone for Nanoseconds

Source§

impl TrivialClone for NonZeroCharInner

Source§

impl TrivialClone for NonZeroI8Inner

Source§

impl TrivialClone for NonZeroI16Inner

Source§

impl TrivialClone for NonZeroI32Inner

Source§

impl TrivialClone for NonZeroI64Inner

Source§

impl TrivialClone for NonZeroI128Inner

Source§

impl TrivialClone for NonZeroIsizeInner

Source§

impl TrivialClone for NonZeroU8Inner

Source§

impl TrivialClone for NonZeroU16Inner

Source§

impl TrivialClone for NonZeroU32Inner

Source§

impl TrivialClone for NonZeroU64Inner

Source§

impl TrivialClone for NonZeroU128Inner

Source§

impl TrivialClone for NonZeroUsizeInner

Source§

impl TrivialClone for U32NotAllOnes

Source§

impl TrivialClone for U64NotAllOnes

Source§

impl TrivialClone for UsizeNoHighBit

1.0.0 (const: unstable) · Source§

impl TrivialClone for RangeFull

Source§

impl TrivialClone for DriftsortRun

Available on neither crate feature optimize_for_size.
1.0.0 · Source§

impl TrivialClone for Utf8Error

1.36.0 · Source§

impl TrivialClone for RawWakerVTable

1.3.0 · Source§

impl TrivialClone for Duration

Source§

impl TrivialClone for Range

Source§

impl TrivialClone for CodePoint

Source§

impl TrivialClone for Span

Source§

impl<'a> TrivialClone for ArgumentType<'a>

Source§

impl<'a> TrivialClone for Part<'a>

Source§

impl<'a> TrivialClone for Utf8Pattern<'a>

Source§

impl<'a> TrivialClone for Argument<'a>

1.0.0 · Source§

impl<'a> TrivialClone for Arguments<'a>

Source§

impl<'a> TrivialClone for PhantomContravariantLifetime<'a>

Source§

impl<'a> TrivialClone for PhantomCovariantLifetime<'a>

Source§

impl<'a> TrivialClone for PhantomInvariantLifetime<'a>

1.10.0 · Source§

impl<'a> TrivialClone for Location<'a>

Source§

impl<Dyn: PointeeSized> TrivialClone for DynMetadata<Dyn>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<T> TrivialClone for Discriminant<T>

Source§

impl<T> TrivialClone for NonZero<T>

Source§

impl<T> TrivialClone for SyncView<T>
where T: Sync + TrivialClone,

Source§

impl<T> TrivialClone for MaybeUninit<T>
where MaybeUninit<T>: Clone,

Source§

impl<T: PointeeSized> TrivialClone for *const T

Source§

impl<T: PointeeSized> TrivialClone for *mut T

Source§

impl<T: PointeeSized> TrivialClone for &T

Source§

impl<T: PointeeSized> TrivialClone for PhantomData<T>

Source§

impl<T: PointeeSized> TrivialClone for NonNull<T>

Source§

impl<T: PointeeSized> TrivialClone for Unique<T>

Source§

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

Source§

impl<const N: usize> TrivialClone for MaybeEscapedCharacter<N>