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".

Implementors§

Source§

impl TrivialClone for !

1.26.0 · Source§

impl TrivialClone for AccessError

Source§

impl TrivialClone for std::mem::Alignment

1.28.0 · Source§

impl TrivialClone for std::fmt::Alignment

Source§

impl TrivialClone for AllocError

Source§

impl TrivialClone for AsciiChar

Source§

impl TrivialClone for Assume

Source§

impl TrivialClone for BacktraceStyle

Source§

impl TrivialClone for CharCase

1.34.0 · Source§

impl TrivialClone for CharTryFromError

Source§

impl TrivialClone for CodePoint

Source§

impl TrivialClone for CodePointInner

1.27.0 · Source§

impl TrivialClone for CpuidResult

Source§

impl TrivialClone for DebugAsHex

Source§

impl TrivialClone for Decimal

Source§

impl TrivialClone for Decoded

1.3.0 · Source§

impl TrivialClone for Duration

1.0.0 · Source§

impl TrivialClone for Empty

1.0.0 · Source§

impl TrivialClone for Error

1.0.0 · Source§

impl TrivialClone for ErrorKind

1.61.0 · Source§

impl TrivialClone for std::process::ExitCode

Source§

impl TrivialClone for std::sys::process::unix::common::ExitCode

1.0.0 · Source§

impl TrivialClone for std::process::ExitStatus

Source§

impl TrivialClone for std::sys::process::unix::unix::ExitStatus

Source§

impl TrivialClone for std::process::ExitStatusError

Source§

impl TrivialClone for std::sys::process::unix::unix::ExitStatusError

Source§

impl TrivialClone for FieldId

1.75.0 · Source§

impl TrivialClone for std::fs::FileTimes

Source§

impl TrivialClone for std::sys::fs::unix::FileTimes

1.1.0 · Source§

impl TrivialClone for std::fs::FileType

Source§

impl TrivialClone for std::sys::fs::unix::FileType

Source§

impl TrivialClone for FormattingOptions

Source§

impl TrivialClone for Fp

1.0.0 · Source§

impl TrivialClone for FpCategory

1.69.0 · Source§

impl TrivialClone for FromBytesUntilNulError

1.64.0 · Source§

impl TrivialClone for FromBytesWithNulError

Source§

impl TrivialClone for FullDecoded

Source§

impl TrivialClone for Global

Source§

impl TrivialClone for I32NotAllOnes

Source§

impl TrivialClone for I64NotAllOnes

1.8.0 · Source§

impl TrivialClone for std::time::Instant

Source§

impl TrivialClone for std::sys::time::unix::Instant

1.55.0 · Source§

impl TrivialClone for IntErrorKind

1.7.0 · Source§

impl TrivialClone for IpAddr

1.0.0 (const: unstable) · Source§

impl TrivialClone for Ipv4Addr

1.0.0 (const: unstable) · Source§

impl TrivialClone for Ipv6Addr

Source§

impl TrivialClone for Ipv6MulticastScope

1.28.0 · Source§

impl TrivialClone for Layout

Source§

impl TrivialClone for Locality

Source§

impl TrivialClone for Mode

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 Operation

1.0.0 (const: unstable) · Source§

impl TrivialClone for std::cmp::Ordering

1.0.0 · Source§

impl TrivialClone for std::sync::atomic::Ordering

1.33.0 · Source§

impl TrivialClone for PhantomPinned

Source§

impl TrivialClone for PrintFmt

Source§

impl TrivialClone for ProgramKind

1.0.0 (const: unstable) · Source§

impl TrivialClone for RangeFull

1.36.0 · Source§

impl TrivialClone for RawWakerVTable

1.0.0 · Source§

impl TrivialClone for RecvError

1.12.0 · Source§

impl TrivialClone for RecvTimeoutError

Source§

impl TrivialClone for ResumeTy

Source§

impl TrivialClone for SearchStep

1.0.0 · Source§

impl TrivialClone for SeekFrom

Source§

impl TrivialClone for Selected

1.0.0 · Source§

impl TrivialClone for Shutdown

Source§

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

Source§

impl TrivialClone for std::fmt::Sign

1.0.0 · Source§

impl TrivialClone for Sink

1.0.0 · Source§

impl TrivialClone for SocketAddr

1.0.0 · Source§

impl TrivialClone for SocketAddrV4

1.0.0 · Source§

impl TrivialClone for SocketAddrV6

Source§

impl TrivialClone for std::path::State

Source§

impl TrivialClone for std::sys::thread_local::native::eager::State

1.28.0 · Source§

impl TrivialClone for System

Source§

impl TrivialClone for SystemRng

1.8.0 · Source§

impl TrivialClone for std::time::SystemTime

Source§

impl TrivialClone for std::sys::time::unix::SystemTime

1.19.0 · Source§

impl TrivialClone for ThreadId

Source§

impl TrivialClone for Timespec

1.59.0 · Source§

impl TrivialClone for TryFromCharError

1.34.0 · Source§

impl TrivialClone for TryFromIntError

1.34.0 · Source§

impl TrivialClone for TryFromSliceError

1.0.0 · Source§

impl TrivialClone for TryRecvError

1.0.0 (const: unstable) · Source§

impl TrivialClone for TypeId

Source§

impl TrivialClone for U32NotAllOnes

Source§

impl TrivialClone for U64NotAllOnes

Source§

impl TrivialClone for UCred

Available on Android or Apple or Cygwin or DragonFly BSD or FreeBSD or Linux or NetBSD or OpenBSD or QNX SDP 7.x or QNX SDP 8.0+ only.
Source§

impl TrivialClone for UsizeNoHighBit

1.0.0 · Source§

impl TrivialClone for Utf8Error

1.5.0 · Source§

impl TrivialClone for WaitTimeoutResult

1.27.0 · Source§

impl TrivialClone for __m128

1.27.0 · Source§

impl TrivialClone for __m256

1.72.0 · Source§

impl TrivialClone for __m512

1.89.0 · Source§

impl TrivialClone for __m128bh

1.27.0 · Source§

impl TrivialClone for __m128d

1.94.0 · Source§

impl TrivialClone for __m128h

1.27.0 · Source§

impl TrivialClone for __m128i

1.89.0 · Source§

impl TrivialClone for __m256bh

1.27.0 · Source§

impl TrivialClone for __m256d

1.94.0 · Source§

impl TrivialClone for __m256h

1.27.0 · Source§

impl TrivialClone for __m256i

1.89.0 · Source§

impl TrivialClone for __m512bh

1.72.0 · Source§

impl TrivialClone for __m512d

1.94.0 · Source§

impl TrivialClone for __m512h

1.72.0 · Source§

impl TrivialClone for __m512i

Source§

impl TrivialClone for __tile1024i

Source§

impl TrivialClone for bf16

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 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<'a> TrivialClone for Ancestors<'a>

1.0.0 · Source§

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

1.0.0 · Source§

impl<'a> TrivialClone for Component<'a>

Source§

impl<'a> TrivialClone for EHContext<'a>

1.36.0 · Source§

impl<'a> TrivialClone for IoSlice<'a>

1.10.0 · Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

1.0.0 · Source§

impl<'a> TrivialClone for Prefix<'a>

1.0.0 · Source§

impl<'a> TrivialClone for PrefixComponent<'a>

Source§

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

1.63.0 · Source§

impl<'fd> TrivialClone for BorrowedFd<'fd>

Available on Hermit or Motor OS or Trusty or Unix or WASI only.
Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<T> TrivialClone for Discriminant<T>

Source§

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

Source§

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

Source§

impl<T> TrivialClone for NonZero<T>

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 PhantomData<T>
where T: ?Sized,

Source§

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

Source§

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

Source§

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