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 FullDecoded

Source§

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

Source§

impl TrivialClone for AsciiChar

Source§

impl TrivialClone for PrintFmt

1.0.0 (const: unstable) · Source§

impl TrivialClone for std::cmp::Ordering

1.64.0 · Source§

impl TrivialClone for FromBytesWithNulError

1.28.0 · Source§

impl TrivialClone for std::fmt::Alignment

Source§

impl TrivialClone for DebugAsHex

Source§

impl TrivialClone for std::fmt::Sign

1.0.0 · Source§

impl TrivialClone for SeekFrom

1.0.0 · Source§

impl TrivialClone for ErrorKind

1.7.0 · Source§

impl TrivialClone for IpAddr

Source§

impl TrivialClone for Ipv6MulticastScope

1.0.0 · Source§

impl TrivialClone for Shutdown

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 BacktraceStyle

Source§

impl TrivialClone for std::path::State

Source§

impl TrivialClone for SearchStep

1.0.0 · Source§

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

Source§

impl TrivialClone for Selected

1.12.0 · Source§

impl TrivialClone for RecvTimeoutError

1.0.0 · Source§

impl TrivialClone for TryRecvError

Source§

impl TrivialClone for ProgramKind

Source§

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

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.27.0 · Source§

impl TrivialClone for CpuidResult

1.27.0 · Source§

impl TrivialClone for __m128

1.89.0 · Source§

impl TrivialClone for __m128bh

1.27.0 · Source§

impl TrivialClone for __m128d

Source§

impl TrivialClone for __m128h

1.27.0 · Source§

impl TrivialClone for __m128i

1.27.0 · Source§

impl TrivialClone for __m256

1.89.0 · Source§

impl TrivialClone for __m256bh

1.27.0 · Source§

impl TrivialClone for __m256d

Source§

impl TrivialClone for __m256h

1.27.0 · Source§

impl TrivialClone for __m256i

1.72.0 · Source§

impl TrivialClone for __m512

1.89.0 · Source§

impl TrivialClone for __m512bh

1.72.0 · Source§

impl TrivialClone for __m512d

Source§

impl TrivialClone for __m512h

1.72.0 · Source§

impl TrivialClone for __m512i

Source§

impl TrivialClone for bf16

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

Source§

impl TrivialClone for CodePoint

Source§

impl TrivialClone for AllocError

Source§

impl TrivialClone for Global

1.28.0 · Source§

impl TrivialClone for Layout

1.28.0 · Source§

impl TrivialClone for System

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.0.0 · Source§

impl TrivialClone for Error

Source§

impl TrivialClone for FormattingOptions

1.75.0 · Source§

impl TrivialClone for std::fs::FileTimes

1.1.0 · Source§

impl TrivialClone for std::fs::FileType

Source§

impl TrivialClone for ResumeTy

1.0.0 · Source§

impl TrivialClone for Empty

1.0.0 · Source§

impl TrivialClone for Sink

1.33.0 · Source§

impl TrivialClone for PhantomPinned

Source§

impl TrivialClone for Assume

1.0.0 · Source§

impl TrivialClone for Ipv4Addr

1.0.0 · 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

1.0.0 (const: unstable) · Source§

impl TrivialClone for RangeFull

Source§

impl TrivialClone for UCred

Available on Unix only.
1.61.0 · Source§

impl TrivialClone for std::process::ExitCode

1.0.0 · Source§

impl TrivialClone for std::process::ExitStatus

Source§

impl TrivialClone for std::process::ExitStatusError

Source§

impl TrivialClone for std::ptr::Alignment

Source§

impl TrivialClone for DefaultRandomSource

1.0.0 · Source§

impl TrivialClone for Utf8Error

Source§

impl TrivialClone for Operation

1.0.0 · Source§

impl TrivialClone for RecvError

1.5.0 · Source§

impl TrivialClone for WaitTimeoutResult

Source§

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

Source§

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

Source§

impl TrivialClone for Mode

Source§

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

Source§

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

Source§

impl TrivialClone for Timespec

Source§

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

Source§

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

Source§

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

1.36.0 · Source§

impl TrivialClone for RawWakerVTable

1.26.0 · Source§

impl TrivialClone for AccessError

1.19.0 · Source§

impl TrivialClone for ThreadId

1.3.0 · Source§

impl TrivialClone for Duration

1.8.0 · Source§

impl TrivialClone for std::time::Instant

1.8.0 · Source§

impl TrivialClone for std::time::SystemTime

Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

Source§

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

1.0.0 · Source§

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

1.36.0 · Source§

impl<'a> TrivialClone for std::io::IoSlice<'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>

1.28.0 · Source§

impl<'a> TrivialClone for Ancestors<'a>

1.0.0 · Source§

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

Source§

impl<'a> TrivialClone for std::sys::io::io_slice::iovec::IoSlice<'a>

Source§

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

1.63.0 · Source§

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

Available on Unix or HermitCore or target_os=trusty or WASI or target_os=motor only.
1.63.0 · Source§

impl<'handle> TrivialClone for BorrowedHandle<'handle>

Available on Windows only.
1.63.0 · Source§

impl<'socket> TrivialClone for BorrowedSocket<'socket>

Available on Windows only.
Source§

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

Source§

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

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

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 Discriminant<T>

Source§

impl<T> TrivialClone for NonZero<T>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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