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§
impl TrivialClone for FullDecoded
impl TrivialClone for core::num::flt2dec::Sign
impl TrivialClone for AsciiChar
impl TrivialClone for PrintFmt
impl TrivialClone for std::cmp::Ordering
impl TrivialClone for FromBytesWithNulError
impl TrivialClone for std::fmt::Alignment
impl TrivialClone for DebugAsHex
impl TrivialClone for std::fmt::Sign
impl TrivialClone for SeekFrom
impl TrivialClone for ErrorKind
impl TrivialClone for IpAddr
impl TrivialClone for Ipv6MulticastScope
impl TrivialClone for Shutdown
impl TrivialClone for SocketAddr
impl TrivialClone for FpCategory
impl TrivialClone for IntErrorKind
impl TrivialClone for BacktraceStyle
impl TrivialClone for std::path::State
impl TrivialClone for SearchStep
impl TrivialClone for std::sync::atomic::Ordering
impl TrivialClone for Selected
impl TrivialClone for RecvTimeoutError
impl TrivialClone for TryRecvError
impl TrivialClone for ProgramKind
impl TrivialClone for std::sys::thread_local::native::eager::State
impl TrivialClone for bool
impl TrivialClone for char
impl TrivialClone for f16
impl TrivialClone for f32
impl TrivialClone for f64
impl TrivialClone for f128
impl TrivialClone for i8
impl TrivialClone for i16
impl TrivialClone for i32
impl TrivialClone for i64
impl TrivialClone for i128
impl TrivialClone for isize
impl TrivialClone for !
impl TrivialClone for u8
impl TrivialClone for u16
impl TrivialClone for u32
impl TrivialClone for u64
impl TrivialClone for u128
impl TrivialClone for usize
impl TrivialClone for CpuidResult
impl TrivialClone for __m128
impl TrivialClone for __m128bh
impl TrivialClone for __m128d
impl TrivialClone for __m128h
impl TrivialClone for __m128i
impl TrivialClone for __m256
impl TrivialClone for __m256bh
impl TrivialClone for __m256d
impl TrivialClone for __m256h
impl TrivialClone for __m256i
impl TrivialClone for __m512
impl TrivialClone for __m512bh
impl TrivialClone for __m512d
impl TrivialClone for __m512h
impl TrivialClone for __m512i
impl TrivialClone for bf16
impl TrivialClone for Decimal
impl TrivialClone for Fp
impl TrivialClone for Decoded
impl TrivialClone for CodePointInner
impl TrivialClone for I32NotAllOnes
impl TrivialClone for I64NotAllOnes
impl TrivialClone for Nanoseconds
impl TrivialClone for NonZeroCharInner
impl TrivialClone for NonZeroI8Inner
impl TrivialClone for NonZeroI16Inner
impl TrivialClone for NonZeroI32Inner
impl TrivialClone for NonZeroI64Inner
impl TrivialClone for NonZeroI128Inner
impl TrivialClone for NonZeroIsizeInner
impl TrivialClone for NonZeroU8Inner
impl TrivialClone for NonZeroU16Inner
impl TrivialClone for NonZeroU32Inner
impl TrivialClone for NonZeroU64Inner
impl TrivialClone for NonZeroU128Inner
impl TrivialClone for NonZeroUsizeInner
impl TrivialClone for U32NotAllOnes
impl TrivialClone for U64NotAllOnes
impl TrivialClone for UsizeNoHighBit
impl TrivialClone for CodePoint
impl TrivialClone for AllocError
impl TrivialClone for Global
impl TrivialClone for Layout
impl TrivialClone for System
impl TrivialClone for TypeId
impl TrivialClone for TryFromSliceError
impl TrivialClone for CharTryFromError
impl TrivialClone for TryFromCharError
impl TrivialClone for Error
impl TrivialClone for FormattingOptions
impl TrivialClone for std::fs::FileTimes
impl TrivialClone for std::fs::FileType
impl TrivialClone for ResumeTy
impl TrivialClone for Empty
impl TrivialClone for Sink
impl TrivialClone for PhantomPinned
impl TrivialClone for Assume
impl TrivialClone for Ipv4Addr
impl TrivialClone for Ipv6Addr
impl TrivialClone for SocketAddrV4
impl TrivialClone for SocketAddrV6
impl TrivialClone for TryFromIntError
impl TrivialClone for RangeFull
impl TrivialClone for UCred
Available on Unix only.
impl TrivialClone for std::process::ExitCode
impl TrivialClone for std::process::ExitStatus
impl TrivialClone for std::process::ExitStatusError
impl TrivialClone for std::ptr::Alignment
impl TrivialClone for DefaultRandomSource
impl TrivialClone for Utf8Error
impl TrivialClone for Operation
impl TrivialClone for RecvError
impl TrivialClone for WaitTimeoutResult
impl TrivialClone for std::sys::fs::unix::FileTimes
impl TrivialClone for std::sys::fs::unix::FileType
impl TrivialClone for Mode
impl TrivialClone for std::sys::pal::unix::time::Instant
impl TrivialClone for std::sys::pal::unix::time::SystemTime
impl TrivialClone for Timespec
impl TrivialClone for std::sys::process::unix::common::ExitCode
impl TrivialClone for std::sys::process::unix::unix::ExitStatus
impl TrivialClone for std::sys::process::unix::unix::ExitStatusError
impl TrivialClone for RawWakerVTable
impl TrivialClone for AccessError
impl TrivialClone for ThreadId
impl TrivialClone for Duration
impl TrivialClone for std::time::Instant
impl TrivialClone for std::time::SystemTime
impl<'a> TrivialClone for Part<'a>
impl<'a> TrivialClone for Component<'a>
impl<'a> TrivialClone for Prefix<'a>
impl<'a> TrivialClone for Utf8Pattern<'a>
impl<'a> TrivialClone for Arguments<'a>
impl<'a> TrivialClone for std::io::IoSlice<'a>
impl<'a> TrivialClone for PhantomContravariantLifetime<'a>
impl<'a> TrivialClone for PhantomCovariantLifetime<'a>
impl<'a> TrivialClone for PhantomInvariantLifetime<'a>
impl<'a> TrivialClone for Location<'a>
impl<'a> TrivialClone for Ancestors<'a>
impl<'a> TrivialClone for PrefixComponent<'a>
impl<'a> TrivialClone for std::sys::io::io_slice::iovec::IoSlice<'a>
impl<'a> TrivialClone for EHContext<'a>
impl<'fd> TrivialClone for BorrowedFd<'fd>
Available on Unix or HermitCore or
target_os=trusty or WASI or target_os=motor only.impl<'handle> TrivialClone for BorrowedHandle<'handle>
Available on Windows only.
impl<'socket> TrivialClone for BorrowedSocket<'socket>
Available on Windows only.