1.0.0[][src]Trait std::clone::Clone

#[lang = "clone"]pub trait Clone {
#[must_use =
  "cloning is often expensive and is not expected to have side effects"]    fn clone(&self) -> Self;

    fn clone_from(&mut self, source: &Self) { ... }
}

A common trait for the ability to explicitly duplicate an object.

Differs from Copy in that Copy is implicit and extremely inexpensive, while Clone is always explicit and may or may not be expensive. In order to enforce these characteristics, Rust does not allow you to reimplement Copy, but you may reimplement Clone and run arbitrary code.

Since Clone is more general than Copy, you can automatically make anything Copy be Clone as well.

Derivable

This trait can be used with #[derive] if all fields are Clone. The derived implementation of clone calls clone on each field.

For a generic struct, #[derive] implements Clone conditionally by adding bound Clone on generic parameters.

// `derive` implements Clone for Reading<T> when T is Clone.
#[derive(Clone)]
struct Reading<T> {
    frequency: T,
}
Run

How can I implement Clone?

Types that are Copy should have a trivial implementation of Clone. More formally: if T: Copy, x: T, and y: &T, then let x = y.clone(); is equivalent to let x = *y;. Manual implementations should be careful to uphold this invariant; however, unsafe code must not rely on it to ensure memory safety.

An example is a generic struct holding a function pointer. In this case, the implementation of Clone cannot be derived, but can be implemented as:

struct Generate<T>(fn() -> T);

impl<T> Copy for Generate<T> {}

impl<T> Clone for Generate<T> {
    fn clone(&self) -> Self {
        *self
    }
}
Run

Additional implementors

In addition to the implementors listed below, the following types also implement Clone:

Required methods

#[must_use = "cloning is often expensive and is not expected to have side effects"]fn clone(&self) -> Self

Returns a copy of the value.

Examples

let hello = "Hello"; // &str implements Clone

assert_eq!("Hello", hello.clone());
Run
Loading content...

Provided methods

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source.

a.clone_from(&b) is equivalent to a = b.clone() in functionality, but can be overridden to reuse the resources of a to avoid unnecessary allocations.

Loading content...

Implementations on Foreign Types

impl Clone for __m256i[src]

impl Clone for __m128d[src]

impl Clone for __m256[src]

impl Clone for __m256d[src]

impl Clone for __m512d[src]

impl<'_, T, P> Clone for SplitInclusive<'_, T, P> where
    P: Clone + FnMut(&T) -> bool
[src]

impl<'a, P> Clone for SplitInclusive<'a, P> where
    P: Pattern<'a>,
    <P as Pattern<'a>>::Searcher: Clone
[src]

impl Clone for __m64[src]

impl Clone for CpuidResult[src]

impl Clone for __m512[src]

impl Clone for __m128i[src]

impl Clone for __m512i[src]

impl Clone for __m128[src]

impl<'_, T, S> Clone for Union<'_, T, S>

impl<'_, T, S> Clone for SymmetricDifference<'_, T, S>

impl<'_, T, S> Clone for Difference<'_, T, S>

impl<'_, T, S> Clone for Intersection<'_, T, S>

impl<'_, K, V> Clone for Keys<'_, K, V>

impl<T, S> Clone for HashSet<T, S> where
    S: Clone,
    T: Clone

impl<K, V, S> Clone for HashMap<K, V, S> where
    K: Clone,
    S: Clone,
    V: Clone

impl<'_, K> Clone for Iter<'_, K>

impl<'_, K, V> Clone for Iter<'_, K, V>

impl Clone for TryReserveError

impl<'_, K, V> Clone for Values<'_, K, V>

impl Clone for TryDemangleError

impl Clone for DwAte

impl Clone for DwEhPe

impl Clone for DwDefaulted

impl<'bases, Section, R> Clone for CfiEntriesIter<'bases, Section, R> where
    R: Clone + Reader,
    Section: Clone + UnwindSection<R>, 

impl<R, Offset> Clone for FileEntry<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl<R> Clone for DebugAbbrev<R> where
    R: Clone

impl<T> Clone for RawRngListEntry<T> where
    T: Clone

impl<'abbrev, 'unit, R> Clone for EntriesTree<'abbrev, 'unit, R> where
    R: Clone + Reader, 

impl<R> Clone for PubTypesEntryIter<R> where
    R: Reader + Clone

impl<R, Offset> Clone for LineInstruction<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl Clone for Augmentation

impl Clone for Range

impl<R> Clone for DebugAranges<R> where
    R: Reader + Clone

impl Clone for Format

impl Clone for DwAccess

impl<R> Clone for UninitializedUnwindContext<R> where
    R: Reader + Clone

impl<'a, R> Clone for CallFrameInstructionIter<'a, R> where
    R: Reader + Clone

impl<R> Clone for PubTypesEntry<R> where
    R: Reader + Clone,
    <R as Reader>::Offset: Clone

impl<T> Clone for DebugFrameOffset<T> where
    T: Clone

impl<T> Clone for DebugLocListsBase<T> where
    T: Clone

impl<R, Offset> Clone for Piece<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl Clone for DwInl

impl<R> Clone for RangeLists<R> where
    R: Clone

impl<R> Clone for LocationLists<R> where
    R: Clone

impl<R> Clone for LocationListEntry<R> where
    R: Reader + Clone

impl<R> Clone for DebugAddr<R> where
    R: Clone

impl<R> Clone for LineInstructions<R> where
    R: Reader + Clone

impl<R> Clone for LineSequence<R> where
    R: Reader + Clone

impl Clone for ColumnType

impl Clone for LittleEndian

impl<R> Clone for DebugStr<R> where
    R: Clone

impl<R, Program, Offset> Clone for LineRows<R, Program, Offset> where
    Offset: Clone + ReaderOffset,
    Program: Clone + LineProgram<R, Offset>,
    R: Clone + Reader<Offset = Offset>, 

impl<R> Clone for PubNamesEntry<R> where
    R: Reader + Clone,
    <R as Reader>::Offset: Clone

impl Clone for DwId

impl<R> Clone for DebugLine<R> where
    R: Clone

impl<R> Clone for DebugPubTypes<R> where
    R: Reader + Clone

impl Clone for FileEntryFormat

impl<R> Clone for DebugRngLists<R> where
    R: Clone

impl Clone for DwDs

impl<T> Clone for DebugLineStrOffset<T> where
    T: Clone

impl<R> Clone for DebugFrame<R> where
    R: Reader + Clone

impl Clone for Abbreviations

impl Clone for DwRle

impl<T> Clone for DebugAddrBase<T> where
    T: Clone

impl<R, Offset> Clone for Location<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl<R> Clone for CallFrameInstruction<R> where
    R: Reader + Clone

impl Clone for DwLne

impl<R, Offset> Clone for FrameDescriptionEntry<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl<R> Clone for PubNamesEntryIter<R> where
    R: Reader + Clone

impl Clone for Value

impl<'abbrev, 'entry, 'unit, R> Clone for AttrsIter<'abbrev, 'entry, 'unit, R> where
    R: Reader + Clone

impl Clone for Encoding

impl<T> Clone for DebugLineOffset<T> where
    T: Clone

impl Clone for DwVis

impl Clone for DwCc

impl Clone for DwUt

impl<R> Clone for DebugLoc<R> where
    R: Clone

impl<R> Clone for DebugLineStr<R> where
    R: Clone

impl<T> Clone for DebugLocListsIndex<T> where
    T: Clone

impl Clone for Error

impl Clone for DwOp

impl Clone for LineRow

impl Clone for DwVirtuality

impl<R, Offset> Clone for Operation<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl Clone for DwForm

impl Clone for DwAt

impl Clone for SectionBaseAddresses

impl<T> Clone for DebugRngListsBase<T> where
    T: Clone

impl<R, Offset> Clone for UnitHeader<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl<T> Clone for DebugMacroOffset<T> where
    T: Clone

impl<'abbrev, 'unit, R> Clone for EntriesRaw<'abbrev, 'unit, R> where
    R: Clone + Reader, 

impl Clone for DwDsc

impl<'a, R> Clone for EhHdrTable<'a, R> where
    R: Reader + Clone

impl<R> Clone for CfaRule<R> where
    R: Reader + Clone

impl Clone for X86_64

impl Clone for BigEndian

impl<T> Clone for DebugAbbrevOffset<T> where
    T: Clone

impl<R> Clone for EhFrame<R> where
    R: Reader + Clone

impl Clone for RunTimeEndian

impl<T> Clone for ArangeEntry<T> where
    T: Clone + Copy

impl<T> Clone for RangeListsOffset<T> where
    T: Clone

impl Clone for DwChildren

impl<R> Clone for DebugRanges<R> where
    R: Clone

impl Clone for DwIdx

impl<R> Clone for DebugInfo<R> where
    R: Clone

impl Clone for SectionId

impl Clone for DwOrd

impl<T> Clone for DebugInfoOffset<T> where
    T: Clone

impl<R, Offset> Clone for LineProgramHeader<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl<R, Offset> Clone for AttributeValue<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl<R> Clone for DebugTypes<R> where
    R: Clone

impl Clone for DwTag

impl Clone for DwLang

impl<T> Clone for LocationListsOffset<T> where
    T: Clone

impl<R, Offset> Clone for TypeUnitHeader<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl<R> Clone for ArangeEntryIter<R> where
    R: Reader + Clone

impl<R> Clone for ParsedEhFrameHdr<R> where
    R: Reader + Clone

impl<R> Clone for DebugStrOffsets<R> where
    R: Clone

impl Clone for DwLle

impl<R> Clone for DebugLocLists<R> where
    R: Clone

impl Clone for AttributeSpecification

impl<R> Clone for DebugPubNames<R> where
    R: Reader + Clone

impl Clone for DwLnct

impl<R> Clone for EhFrameHdr<R> where
    R: Reader + Clone

impl Clone for Abbreviation

impl<T> Clone for DebugStrOffsetsBase<T> where
    T: Clone

impl<T> Clone for DebugRngListsIndex<T> where
    T: Clone

impl Clone for X86

impl Clone for DebugTypeSignature

impl<'bases, Section, R> Clone for PartialFrameDescriptionEntry<'bases, Section, R> where
    R: Clone + Reader,
    Section: Clone + UnwindSection<R>,
    <R as Reader>::Offset: Clone,
    <Section as UnwindSection<R>>::Offset: Clone

impl<T> Clone for DebugStrOffset<T> where
    T: Clone

impl<T> Clone for UnitSectionOffset<T> where
    T: Clone

impl<R> Clone for TypeUnitHeadersIter<R> where
    R: Reader + Clone,
    <R as Reader>::Offset: Clone

impl Clone for Arm

impl<T> Clone for DebugStrOffsetsIndex<T> where
    T: Clone

impl<'abbrev, 'unit, R> Clone for EntriesCursor<'abbrev, 'unit, R> where
    R: Clone + Reader, 

impl<R, Offset> Clone for CompleteLineProgram<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl<'input, Endian> Clone for EndianSlice<'input, Endian> where
    Endian: Clone + Endianity, 

impl Clone for ValueType

impl<'bases, Section, R> Clone for CieOrFde<'bases, Section, R> where
    R: Clone + Reader,
    Section: Clone + UnwindSection<R>, 

impl<R> Clone for OperationIter<R> where
    R: Reader + Clone

impl<R> Clone for Attribute<R> where
    R: Reader + Clone

impl Clone for Pointer

impl<R> Clone for Expression<R> where
    R: Reader + Clone

impl<R> Clone for RawLocListEntry<R> where
    R: Reader + Clone,
    <R as Reader>::Offset: Clone

impl Clone for DwLns

impl<R> Clone for RegisterRule<R> where
    R: Reader + Clone

impl Clone for ReaderOffsetId

impl<R, Offset> Clone for IncompleteLineProgram<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl<'abbrev, 'unit, R, Offset> Clone for DebuggingInformationEntry<'abbrev, 'unit, R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl<T> Clone for DebugMacinfoOffset<T> where
    T: Clone

impl Clone for LineEncoding

impl Clone for BaseAddresses

impl Clone for DwMacro

impl<T> Clone for DebugAddrIndex<T> where
    T: Clone

impl<R, Offset> Clone for CompilationUnitHeader<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl Clone for Register

impl Clone for DwEnd

impl Clone for DwAddr

impl<T> Clone for DebugTypesOffset<T> where
    T: Clone

impl<T> Clone for DieReference<T> where
    T: Clone

impl<R> Clone for UnwindTableRow<R> where
    R: Reader + Clone

impl<R, Offset> Clone for CommonInformationEntry<R, Offset> where
    Offset: Clone + ReaderOffset,
    R: Clone + Reader<Offset = Offset>, 

impl<T> Clone for EhFrameOffset<T> where
    T: Clone

impl Clone for DwCfa

impl<R> Clone for CompilationUnitHeadersIter<R> where
    R: Reader + Clone,
    <R as Reader>::Offset: Clone

impl<'iter, R> Clone for RegisterRuleIter<'iter, R> where
    R: Clone + Reader, 

impl<T> Clone for UnitOffset<T> where
    T: Clone

impl<R> Clone for UnwindContext<R> where
    R: Reader + Clone

impl<E> Clone for Rel32<E> where
    E: Endian + Clone

impl Clone for ImageEnclaveConfig32

impl Clone for ImageCoffSymbolsHeader

impl<E> Clone for IdentCommand<E> where
    E: Endian + Clone

impl Clone for ImageRelocation

impl Clone for AddressSize

impl<E> Clone for RoutinesCommand_64<E> where
    E: Endian + Clone

impl Clone for ImageLoadConfigDirectory32

impl Clone for ImageLinenumber

impl Clone for ImageArmRuntimeFunctionEntry

impl Clone for ImageFileHeader

impl<E> Clone for U64Bytes<E> where
    E: Endian + Clone

impl<E> Clone for BuildToolVersion<E> where
    E: Endian + Clone

impl Clone for BinaryFormat

impl Clone for Error

impl<E> Clone for I16Bytes<E> where
    E: Endian + Clone

impl<E> Clone for Nlist32<E> where
    E: Endian + Clone

impl<E> Clone for Fvmlib<E> where
    E: Endian + Clone

impl<E> Clone for Rela64<E> where
    E: Endian + Clone

impl<E> Clone for PreboundDylibCommand<E> where
    E: Endian + Clone

impl<E> Clone for U32<E> where
    E: Endian + Clone

impl<E> Clone for TwolevelHint<E> where
    E: Endian + Clone

impl Clone for AnonObjectHeaderV2

impl<E> Clone for SubLibraryCommand<E> where
    E: Endian + Clone

impl Clone for ImageAuxSymbolWeak

impl<E> Clone for I64<E> where
    E: Endian + Clone

impl Clone for ImageAlpha64RuntimeFunctionEntry

impl<E> Clone for EncryptionInfoCommand<E> where
    E: Endian + Clone

impl<E> Clone for FileHeader32<E> where
    E: Endian + Clone

impl<E> Clone for SectionHeader64<E> where
    E: Endian + Clone

impl<E> Clone for Section32<E> where
    E: Endian + Clone

impl Clone for ImageDosHeader

impl<E> Clone for U32Bytes<E> where
    E: Endian + Clone

impl Clone for ImageImportByName

impl<E> Clone for Section64<E> where
    E: Endian + Clone

impl<E> Clone for I64Bytes<E> where
    E: Endian + Clone

impl Clone for ImageSymbolExBytes

impl<E> Clone for BuildVersionCommand<E> where
    E: Endian + Clone

impl Clone for ImageHotPatchHashes

impl Clone for ImageArm64RuntimeFunctionEntry

impl<E> Clone for NoteHeader64<E> where
    E: Endian + Clone

impl Clone for ImageLoadConfigCodeIntegrity

impl Clone for ImageDynamicRelocation32

impl Clone for Ident

impl Clone for ImageDebugMisc

impl Clone for ImageHotPatchInfo

impl Clone for ImageHotPatchBase

impl<'data> Clone for SectionTable<'data>

impl Clone for ImageDynamicRelocation32V2

impl Clone for ImageEnclaveImport

impl<E> Clone for Rel64<E> where
    E: Endian + Clone

impl<E> Clone for NoteCommand<E> where
    E: Endian + Clone

impl Clone for ImageDataDirectory

impl Clone for FatArch64

impl<E> Clone for Sym32<E> where
    E: Endian + Clone

impl Clone for Guid

impl<E> Clone for Sym64<E> where
    E: Endian + Clone

impl Clone for RelocationKind

impl Clone for ImageOptionalHeader64

impl Clone for ImageAuxSymbolFunctionBeginEnd

impl Clone for BigEndian

impl<E> Clone for DylibReference<E> where
    E: Endian + Clone

impl Clone for ImageAuxSymbolFunction

impl Clone for ImageTlsDirectory64

impl<E> Clone for RpathCommand<E> where
    E: Endian + Clone

impl<E> Clone for I16<E> where
    E: Endian + Clone

impl Clone for ImageEnclaveConfig64

impl Clone for ImageAuxSymbolTokenDef

impl<E> Clone for Dyn32<E> where
    E: Endian + Clone

impl Clone for ImageAlphaRuntimeFunctionEntry

impl<E> Clone for SegmentCommand32<E> where
    E: Endian + Clone

impl Clone for ImageResourceDirStringU

impl<E> Clone for LinkerOptionCommand<E> where
    E: Endian + Clone

impl<E> Clone for DylinkerCommand<E> where
    E: Endian + Clone

impl<E> Clone for U16Bytes<E> where
    E: Endian + Clone

impl Clone for ImageAuxSymbolSection

impl Clone for SectionIndex

impl Clone for FatArch32

impl<E> Clone for Dylib<E> where
    E: Endian + Clone

impl<Section> Clone for SymbolFlags<Section> where
    Section: Clone

impl<E> Clone for SymSegCommand<E> where
    E: Endian + Clone

impl<E> Clone for DataInCodeEntry<E> where
    E: Endian + Clone

impl Clone for AnonObjectHeader

impl<'data, Mach> Clone for SymbolTable<'data, Mach> where
    Mach: MachHeader + Clone,
    <Mach as MachHeader>::Nlist: Clone

impl<E> Clone for DylibCommand<E> where
    E: Endian + Clone

impl Clone for SymbolKind

impl Clone for ImageNtHeaders32

impl<E> Clone for ProgramHeader64<E> where
    E: Endian + Clone

impl Clone for LittleEndian

impl<E> Clone for RoutinesCommand<E> where
    E: Endian + Clone

impl Clone for ImageResourceDirectoryEntry

impl<E> Clone for I32Bytes<E> where
    E: Endian + Clone

impl<E> Clone for PrebindCksumCommand<E> where
    E: Endian + Clone

impl<E> Clone for SourceVersionCommand<E> where
    E: Endian + Clone

impl Clone for ImageResourceDirectoryString

impl<E> Clone for DyldInfoCommand<E> where
    E: Endian + Clone

impl<E> Clone for SegmentCommand64<E> where
    E: Endian + Clone

impl Clone for ImageDebugDirectory

impl Clone for RelocationTarget

impl<E> Clone for NoteHeader32<E> where
    E: Endian + Clone

impl<E> Clone for CompressionHeader64<E> where
    E: Endian + Clone

impl Clone for CompressionFormat

impl<E> Clone for MachHeader64<E> where
    E: Endian + Clone

impl<'data, Elf> Clone for SymbolTable<'data, Elf> where
    Elf: FileHeader + Clone,
    <Elf as FileHeader>::Sym: Clone

impl<E> Clone for U16<E> where
    E: Endian + Clone

impl Clone for ImageImportDescriptor

impl<E> Clone for LinkeditDataCommand<E> where
    E: Endian + Clone

impl<E> Clone for FvmlibCommand<E> where
    E: Endian + Clone

impl Clone for ImageRomHeaders

impl<E> Clone for EntryPointCommand<E> where
    E: Endian + Clone

impl<E> Clone for Nlist64<E> where
    E: Endian + Clone

impl Clone for ImageFunctionEntry

impl Clone for ImageTlsDirectory32

impl<E> Clone for CompressionHeader32<E> where
    E: Endian + Clone

impl Clone for ScatteredRelocationInfo

impl Clone for ImageExportDirectory

impl Clone for ImageSymbolBytes

impl Clone for SectionKind

impl Clone for FatHeader

impl<E> Clone for DylibTableOfContents<E> where
    E: Endian + Clone

impl Clone for NonPagedDebugInfo

impl Clone for ImageOs2Header

impl<'data, Elf> Clone for SectionTable<'data, Elf> where
    Elf: FileHeader + Clone,
    <Elf as FileHeader>::SectionHeader: Clone

impl<'data> Clone for StringTable<'data>

impl Clone for ImageDelayloadDescriptor

impl Clone for ImageResourceDataEntry

impl<E> Clone for MachHeader32<E> where
    E: Endian + Clone

impl<E> Clone for Rela32<E> where
    E: Endian + Clone

impl Clone for ImageSectionHeader

impl Clone for ImportObjectHeader

impl<E> Clone for Dyn64<E> where
    E: Endian + Clone

impl<'data> Clone for Symbol<'data>

impl<E> Clone for Relocation<E> where
    E: Endian + Clone

impl Clone for ImageLoadConfigDirectory64

impl<E> Clone for ThreadCommand<E> where
    E: Endian + Clone

impl<E> Clone for SubClientCommand<E> where
    E: Endian + Clone

impl Clone for ImageRomOptionalHeader

impl<E> Clone for Syminfo64<E> where
    E: Endian + Clone

impl<E> Clone for DylibModule64<E> where
    E: Endian + Clone

impl Clone for ImageFunctionEntry64

impl Clone for ImageResourceDirectory

impl Clone for ImageAuxSymbolCrc

impl Clone for ImageVxdHeader

impl Clone for ImageBaseRelocation

impl Clone for ImageBoundForwarderRef

impl Clone for ImageSymbolEx

impl Clone for ImageSymbol

impl Clone for RelocationInfo

impl<E> Clone for TwolevelHintsCommand<E> where
    E: Endian + Clone

impl<E> Clone for SubFrameworkCommand<E> where
    E: Endian + Clone

impl<E> Clone for LcStr<E> where
    E: Endian + Clone

impl Clone for ImageArchiveMemberHeader

impl<E> Clone for DylibModule32<E> where
    E: Endian + Clone

impl Clone for ImageSeparateDebugHeader

impl<E> Clone for LoadCommand<E> where
    E: Endian + Clone

impl Clone for SymbolSection

impl<E> Clone for VersionMinCommand<E> where
    E: Endian + Clone

impl<E> Clone for U64<E> where
    E: Endian + Clone

impl<'data> Clone for CompressedData<'data>

impl Clone for SectionFlags

impl<'data> Clone for Bytes<'data>

impl<E> Clone for FileHeader64<E> where
    E: Endian + Clone

impl Clone for FileFlags

impl Clone for AnonObjectHeaderBigobj

impl Clone for Architecture

impl Clone for ImageDynamicRelocation64V2

impl Clone for RelocationEncoding

impl Clone for ImageNtHeaders64

impl<E> Clone for SymtabCommand<E> where
    E: Endian + Clone

impl Clone for ImageOptionalHeader32

impl Clone for ImageBoundImportDescriptor

impl Clone for ImageArchitectureEntry

impl Clone for ImageRuntimeFunctionEntry

impl<E> Clone for I32<E> where
    E: Endian + Clone

impl<E> Clone for FvmfileCommand<E> where
    E: Endian + Clone

impl<E> Clone for Syminfo32<E> where
    E: Endian + Clone

impl Clone for ImageDynamicRelocation64

impl<E> Clone for ProgramHeader32<E> where
    E: Endian + Clone

impl Clone for ImageDynamicRelocationTable

impl Clone for Endianness

impl<E> Clone for SubUmbrellaCommand<E> where
    E: Endian + Clone

impl Clone for ImageEpilogueDynamicRelocationHeader

impl<E> Clone for UuidCommand<E> where
    E: Endian + Clone

impl<E> Clone for DysymtabCommand<E> where
    E: Endian + Clone

impl<E> Clone for EncryptionInfoCommand64<E> where
    E: Endian + Clone

impl Clone for SymbolIndex

impl Clone for ImagePrologueDynamicRelocationHeader

impl Clone for SymbolScope

impl Clone for ImageCor20Header

impl<E> Clone for SectionHeader32<E> where
    E: Endian + Clone

impl Clone for DataFormat

impl Clone for MZStatus

impl Clone for MZError

impl Clone for CompressionLevel

impl Clone for TDEFLStatus

impl Clone for StreamResult

impl Clone for TDEFLFlush

impl Clone for MZFlush

impl Clone for TINFLStatus

impl Clone for CompressionStrategy

impl Clone for Adler32[src]

Loading content...

Implementors

impl Clone for std::cmp::Ordering[src]

impl Clone for std::collections::TryReserveError[src]

impl Clone for Infallible[src]

impl Clone for VarError[src]

impl Clone for ErrorKind[src]

impl Clone for SeekFrom[src]

impl Clone for IpAddr[src]

impl Clone for Ipv6MulticastScope[src]

impl Clone for Shutdown[src]

impl Clone for std::net::SocketAddr[src]

impl Clone for FpCategory[src]

impl Clone for IntErrorKind[src]

impl Clone for SearchStep[src]

impl Clone for std::sync::atomic::Ordering[src]

impl Clone for RecvTimeoutError[src]

impl Clone for TryRecvError[src]

impl Clone for bool[src]

impl Clone for char[src]

impl Clone for f32[src]

impl Clone for f64[src]

impl Clone for i8[src]

impl Clone for i16[src]

impl Clone for i32[src]

impl Clone for i64[src]

impl Clone for i128[src]

impl Clone for isize[src]

impl Clone for ![src]

impl Clone for u8[src]

impl Clone for u16[src]

impl Clone for u32[src]

impl Clone for u64[src]

impl Clone for u128[src]

impl Clone for usize[src]

impl Clone for AllocErr[src]

impl Clone for Global[src]

impl Clone for Layout[src]

impl Clone for LayoutErr[src]

impl Clone for System[src]

impl Clone for TypeId[src]

impl Clone for TryFromSliceError[src]

impl Clone for std::ascii::EscapeDefault[src]

impl Clone for Box<str>[src]

impl Clone for Box<CStr>[src]

impl Clone for Box<OsStr>[src]

impl Clone for Box<Path>[src]

impl Clone for CharTryFromError[src]

impl Clone for DecodeUtf16Error[src]

impl Clone for std::char::EscapeDebug[src]

impl Clone for std::char::EscapeDefault[src]

impl Clone for std::char::EscapeUnicode[src]

impl Clone for ParseCharError[src]

impl Clone for ToLowercase[src]

impl Clone for ToUppercase[src]

impl Clone for DefaultHasher[src]

impl Clone for RandomState[src]

impl Clone for CString[src]

impl Clone for FromBytesWithNulError[src]

impl Clone for FromVecWithNulError[src]

impl Clone for IntoStringError[src]

impl Clone for NulError[src]

impl Clone for OsString[src]

impl Clone for std::fmt::Error[src]

impl Clone for FileType[src]

impl Clone for Metadata[src]

impl Clone for OpenOptions[src]

impl Clone for Permissions[src]

impl Clone for SipHasher[src]

impl Clone for PhantomPinned[src]

impl Clone for AddrParseError[src]

impl Clone for Ipv4Addr[src]

impl Clone for Ipv6Addr[src]

impl Clone for SocketAddrV4[src]

impl Clone for SocketAddrV6[src]

impl Clone for NonZeroI8[src]

impl Clone for NonZeroI16[src]

impl Clone for NonZeroI32[src]

impl Clone for NonZeroI64[src]

impl Clone for NonZeroI128[src]

impl Clone for NonZeroIsize[src]

impl Clone for NonZeroU8[src]

impl Clone for NonZeroU16[src]

impl Clone for NonZeroU32[src]

impl Clone for NonZeroU64[src]

impl Clone for NonZeroU128[src]

impl Clone for NonZeroUsize[src]

impl Clone for ParseFloatError[src]

impl Clone for ParseIntError[src]

impl Clone for TryFromIntError[src]

impl Clone for RangeFull[src]

impl Clone for NoneError[src]

impl Clone for stat[src]

impl Clone for std::os::unix::net::SocketAddr[src]

impl Clone for PathBuf[src]

impl Clone for StripPrefixError[src]

impl Clone for ExitCode[src]

impl Clone for ExitStatus[src]

impl Clone for Output[src]

impl Clone for TraitObject[src]

impl Clone for ParseBoolError[src]

impl Clone for Utf8Error[src]

impl Clone for FromUtf8Error[src]

impl Clone for String[src]

impl Clone for RecvError[src]

impl Clone for WaitTimeoutResult[src]

impl Clone for RawWakerVTable[src]

impl Clone for Waker[src]

impl Clone for AccessError[src]

impl Clone for Thread[src]

impl Clone for ThreadId[src]

impl Clone for Duration[src]

impl Clone for Instant[src]

impl Clone for SystemTime[src]

impl Clone for SystemTimeError[src]

impl<'_, A> Clone for std::option::Iter<'_, A>[src]

impl<'_, B> Clone for Cow<'_, B> where
    B: ToOwned + ?Sized
[src]

impl<'_, K, V> Clone for std::collections::btree_map::Iter<'_, K, V>[src]

impl<'_, K, V> Clone for std::collections::btree_map::Keys<'_, K, V>[src]

impl<'_, K, V> Clone for std::collections::btree_map::Range<'_, K, V>[src]

impl<'_, K, V> Clone for std::collections::btree_map::Values<'_, K, V>[src]

impl<'_, T> !Clone for &'_ mut T where
    T: ?Sized
[src]

Shared references can be cloned, but mutable references cannot!

impl<'_, T> Clone for &'_ T where
    T: ?Sized
[src]

Shared references can be cloned, but mutable references cannot!

impl<'_, T> Clone for std::collections::binary_heap::Iter<'_, T>[src]

impl<'_, T> Clone for std::collections::btree_set::Difference<'_, T>[src]

impl<'_, T> Clone for std::collections::btree_set::Intersection<'_, T>[src]

impl<'_, T> Clone for std::collections::btree_set::Iter<'_, T>[src]

impl<'_, T> Clone for std::collections::btree_set::Range<'_, T>[src]

impl<'_, T> Clone for std::collections::btree_set::SymmetricDifference<'_, T>[src]

impl<'_, T> Clone for std::collections::btree_set::Union<'_, T>[src]

impl<'_, T> Clone for std::collections::linked_list::Cursor<'_, T>[src]

impl<'_, T> Clone for std::collections::linked_list::Iter<'_, T>[src]

impl<'_, T> Clone for std::collections::vec_deque::Iter<'_, T>[src]

impl<'_, T> Clone for std::result::Iter<'_, T>[src]

impl<'_, T> Clone for Chunks<'_, T>[src]

impl<'_, T> Clone for ChunksExact<'_, T>[src]

impl<'_, T> Clone for std::slice::Iter<'_, T>[src]

impl<'_, T> Clone for RChunks<'_, T>[src]

impl<'_, T> Clone for Windows<'_, T>[src]

impl<'_, T, P> Clone for std::slice::Split<'_, T, P> where
    P: Clone + FnMut(&T) -> bool
[src]

impl<'_, T, const N: usize> Clone for ArrayChunks<'_, T, N>[src]

impl<'a> Clone for Component<'a>[src]

impl<'a> Clone for Prefix<'a>[src]

impl<'a> Clone for std::error::Chain<'a>[src]

impl<'a> Clone for Arguments<'a>[src]

impl<'a> Clone for IoSlice<'a>[src]

impl<'a> Clone for EncodeWide<'a>[src]

impl<'a> Clone for std::panic::Location<'a>[src]

impl<'a> Clone for Ancestors<'a>[src]

impl<'a> Clone for Components<'a>[src]

impl<'a> Clone for std::path::Iter<'a>[src]

impl<'a> Clone for PrefixComponent<'a>[src]

impl<'a> Clone for CharSearcher<'a>[src]

impl<'a> Clone for std::str::Bytes<'a>[src]

impl<'a> Clone for CharIndices<'a>[src]

impl<'a> Clone for Chars<'a>[src]

impl<'a> Clone for EncodeUtf16<'a>[src]

impl<'a> Clone for std::str::EscapeDebug<'a>[src]

impl<'a> Clone for std::str::EscapeDefault<'a>[src]

impl<'a> Clone for std::str::EscapeUnicode<'a>[src]

impl<'a> Clone for Lines<'a>[src]

impl<'a> Clone for LinesAny<'a>[src]

impl<'a> Clone for SplitAsciiWhitespace<'a>[src]

impl<'a> Clone for SplitWhitespace<'a>[src]

impl<'a, 'b> Clone for CharSliceSearcher<'a, 'b>[src]

impl<'a, 'b> Clone for StrSearcher<'a, 'b>[src]

impl<'a, F> Clone for CharPredicateSearcher<'a, F> where
    F: Clone + FnMut(char) -> bool
[src]

impl<'a, P> Clone for MatchIndices<'a, P> where
    P: Pattern<'a>,
    <P as Pattern<'a>>::Searcher: Clone
[src]

impl<'a, P> Clone for Matches<'a, P> where
    P: Pattern<'a>,
    <P as Pattern<'a>>::Searcher: Clone
[src]

impl<'a, P> Clone for RMatchIndices<'a, P> where
    P: Pattern<'a>,
    <P as Pattern<'a>>::Searcher: Clone
[src]

impl<'a, P> Clone for RMatches<'a, P> where
    P: Pattern<'a>,
    <P as Pattern<'a>>::Searcher: Clone
[src]

impl<'a, P> Clone for std::str::RSplit<'a, P> where
    P: Pattern<'a>,
    <P as Pattern<'a>>::Searcher: Clone
[src]

impl<'a, P> Clone for RSplitN<'a, P> where
    P: Pattern<'a>,
    <P as Pattern<'a>>::Searcher: Clone
[src]

impl<'a, P> Clone for RSplitTerminator<'a, P> where
    P: Pattern<'a>,
    <P as Pattern<'a>>::Searcher: Clone
[src]

impl<'a, P> Clone for std::str::Split<'a, P> where
    P: Pattern<'a>,
    <P as Pattern<'a>>::Searcher: Clone
[src]

impl<'a, P> Clone for SplitN<'a, P> where
    P: Pattern<'a>,
    <P as Pattern<'a>>::Searcher: Clone
[src]

impl<'a, P> Clone for SplitTerminator<'a, P> where
    P: Pattern<'a>,
    <P as Pattern<'a>>::Searcher: Clone
[src]

impl<'a, T> Clone for RChunksExact<'a, T>[src]

impl<'a, T, P> Clone for std::slice::RSplit<'a, T, P> where
    P: Clone + FnMut(&T) -> bool,
    T: 'a + Clone
[src]

impl<'f> Clone for VaListImpl<'f>[src]

impl<A> Clone for Repeat<A> where
    A: Clone
[src]

impl<A> Clone for std::option::IntoIter<A> where
    A: Clone
[src]

impl<A, B> Clone for std::iter::Chain<A, B> where
    A: Clone,
    B: Clone
[src]

impl<A, B> Clone for Zip<A, B> where
    A: Clone,
    B: Clone
[src]

impl<F> Clone for FromFn<F> where
    F: Clone
[src]

impl<F> Clone for OnceWith<F> where
    F: Clone
[src]

impl<F> Clone for RepeatWith<F> where
    F: Clone
[src]

impl<H> Clone for BuildHasherDefault<H>[src]

impl<I> Clone for DecodeUtf16<I> where
    I: Clone + Iterator<Item = u16>, 
[src]

impl<I> Clone for Cloned<I> where
    I: Clone
[src]

impl<I> Clone for Copied<I> where
    I: Clone
[src]

impl<I> Clone for Cycle<I> where
    I: Clone
[src]

impl<I> Clone for Enumerate<I> where
    I: Clone
[src]

impl<I> Clone for Fuse<I> where
    I: Clone
[src]

impl<I> Clone for Peekable<I> where
    I: Clone + Iterator,
    <I as Iterator>::Item: Clone
[src]

impl<I> Clone for Skip<I> where
    I: Clone
[src]

impl<I> Clone for StepBy<I> where
    I: Clone
[src]

impl<I> Clone for Take<I> where
    I: Clone
[src]

impl<I, F> Clone for FilterMap<I, F> where
    F: Clone,
    I: Clone
[src]

impl<I, F> Clone for Inspect<I, F> where
    F: Clone,
    I: Clone
[src]

impl<I, F> Clone for Map<I, F> where
    F: Clone,
    I: Clone
[src]

impl<I, P> Clone for Filter<I, P> where
    I: Clone,
    P: Clone
[src]

impl<I, P> Clone for MapWhile<I, P> where
    I: Clone,
    P: Clone
[src]

impl<I, P> Clone for SkipWhile<I, P> where
    I: Clone,
    P: Clone
[src]

impl<I, P> Clone for TakeWhile<I, P> where
    I: Clone,
    P: Clone
[src]

impl<I, St, F> Clone for Scan<I, St, F> where
    F: Clone,
    I: Clone,
    St: Clone
[src]

impl<I, U> Clone for Flatten<I> where
    I: Clone + Iterator,
    U: Clone + Iterator,
    <I as Iterator>::Item: IntoIterator,
    <<I as Iterator>::Item as IntoIterator>::IntoIter == U,
    <<I as Iterator>::Item as IntoIterator>::Item == <U as Iterator>::Item
[src]

impl<I, U, F> Clone for FlatMap<I, U, F> where
    F: Clone,
    I: Clone,
    U: Clone + IntoIterator,
    <U as IntoIterator>::IntoIter: Clone
[src]

impl<Idx> Clone for std::ops::Range<Idx> where
    Idx: Clone
[src]

impl<Idx> Clone for RangeFrom<Idx> where
    Idx: Clone
[src]

impl<Idx> Clone for RangeInclusive<Idx> where
    Idx: Clone
[src]

impl<Idx> Clone for RangeTo<Idx> where
    Idx: Clone
[src]

impl<Idx> Clone for RangeToInclusive<Idx> where
    Idx: Clone
[src]

impl<K, '_> Clone for std::collections::hash_set::Iter<'_, K>[src]

impl<K, V> Clone for BTreeMap<K, V> where
    K: Clone,
    V: Clone
[src]

impl<K, V, '_> Clone for std::collections::hash_map::Iter<'_, K, V>[src]

impl<K, V, '_> Clone for std::collections::hash_map::Keys<'_, K, V>[src]

impl<K, V, '_> Clone for std::collections::hash_map::Values<'_, K, V>[src]

impl<K: Clone, V: Clone, S: Clone> Clone for std::collections::HashMap<K, V, S>[src]

impl<P> Clone for Pin<P> where
    P: Clone
[src]

impl<T> Clone for Bound<T> where
    T: Clone
[src]

impl<T> Clone for Option<T> where
    T: Clone
[src]

impl<T> Clone for Poll<T> where
    T: Clone
[src]

impl<T> Clone for *const T where
    T: ?Sized
[src]

impl<T> Clone for *mut T where
    T: ?Sized
[src]

impl<T> Clone for Box<[T]> where
    T: Clone
[src]

impl<T> Clone for Box<T> where
    T: Clone
[src]

fn clone(&self) -> Box<T>

Notable traits for Box<F>

impl<F> Future for Box<F> where
    F: Unpin + Future + ?Sized
type Output = <F as Future>::Output;impl<I> Iterator for Box<I> where
    I: Iterator + ?Sized
type Item = <I as Iterator>::Item;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
[src]

Returns a new box with a clone() of this box's contents.

Examples

let x = Box::new(5);
let y = x.clone();

// The value is the same
assert_eq!(x, y);

// But they are unique objects
assert_ne!(&*x as *const i32, &*y as *const i32);
Run

fn clone_from(&mut self, source: &Box<T>)[src]

Copies source's contents into self without creating a new allocation.

Examples

let x = Box::new(5);
let mut y = Box::new(10);
let yp: *const i32 = &*y;

y.clone_from(&x);

// The value is the same
assert_eq!(x, y);

// And no allocation occurred
assert_eq!(yp, &*y);
Run

impl<T> Clone for Cell<T> where
    T: Copy
[src]

impl<T> Clone for RefCell<T> where
    T: Clone
[src]

fn clone(&self) -> RefCell<T>[src]

Panics

Panics if the value is currently mutably borrowed.

impl<T> Clone for Reverse<T> where
    T: Clone
[src]

impl<T> Clone for std::collections::binary_heap::IntoIter<T> where
    T: Clone
[src]

impl<T> Clone for IntoIterSorted<T> where
    T: Clone
[src]

impl<T> Clone for std::collections::linked_list::IntoIter<T> where
    T: Clone
[src]

impl<T> Clone for BTreeSet<T> where
    T: Clone
[src]

impl<T> Clone for BinaryHeap<T> where
    T: Clone
[src]

impl<T> Clone for LinkedList<T> where
    T: Clone
[src]

impl<T> Clone for VecDeque<T> where
    T: Clone
[src]

impl<T> Clone for std::collections::vec_deque::IntoIter<T> where
    T: Clone
[src]

impl<T> Clone for Pending<T>[src]

impl<T> Clone for Ready<T> where
    T: Clone
[src]

impl<T> Clone for Empty<T>[src]

impl<T> Clone for Once<T> where
    T: Clone
[src]

impl<T> Clone for Rev<T> where
    T: Clone
[src]

impl<T> Clone for OnceCell<T> where
    T: Clone
[src]

impl<T> Clone for PhantomData<T> where
    T: ?Sized
[src]

impl<T> Clone for Discriminant<T>[src]

impl<T> Clone for ManuallyDrop<T> where
    T: Clone + ?Sized
[src]

impl<T> Clone for Wrapping<T> where
    T: Clone
[src]

impl<T> Clone for NonNull<T> where
    T: ?Sized
[src]

impl<T> Clone for Rc<T> where
    T: ?Sized
[src]

fn clone(&self) -> Rc<T>[src]

Makes a clone of the Rc pointer.

This creates another pointer to the same allocation, increasing the strong reference count.

Examples

use std::rc::Rc;

let five = Rc::new(5);

let _ = Rc::clone(&five);
Run

impl<T> Clone for std::rc::Weak<T> where
    T: ?Sized
[src]

fn clone(&self) -> Weak<T>[src]

Makes a clone of the Weak pointer that points to the same allocation.

Examples

use std::rc::{Rc, Weak};

let weak_five = Rc::downgrade(&Rc::new(5));

let _ = Weak::clone(&weak_five);
Run

impl<T> Clone for std::result::IntoIter<T> where
    T: Clone
[src]

impl<T> Clone for Sender<T>[src]

impl<T> Clone for SyncSender<T>[src]

impl<T> Clone for Arc<T> where
    T: ?Sized
[src]

fn clone(&self) -> Arc<T>[src]

Makes a clone of the Arc pointer.

This creates another pointer to the same allocation, increasing the strong reference count.

Examples

use std::sync::Arc;

let five = Arc::new(5);

let _ = Arc::clone(&five);
Run

impl<T> Clone for std::sync::Weak<T> where
    T: ?Sized
[src]

fn clone(&self) -> Weak<T>[src]

Makes a clone of the Weak pointer that points to the same allocation.

Examples

use std::sync::{Arc, Weak};

let weak_five = Arc::downgrade(&Arc::new(5));

let _ = Weak::clone(&weak_five);
Run

impl<T> Clone for std::vec::IntoIter<T> where
    T: Clone
[src]

impl<T> Clone for Vec<T> where
    T: Clone
[src]

impl<T> Clone for MaybeUninit<T> where
    T: Copy
[src]

impl<T, E> Clone for Result<T, E> where
    E: Clone,
    T: Clone
[src]

impl<T, F> Clone for Successors<T, F> where
    F: Clone,
    T: Clone
[src]

impl<T, S, '_> Clone for std::collections::hash_set::Difference<'_, T, S>[src]

impl<T, S, '_> Clone for std::collections::hash_set::Intersection<'_, T, S>[src]

impl<T, S, '_> Clone for std::collections::hash_set::SymmetricDifference<'_, T, S>[src]

impl<T, S, '_> Clone for std::collections::hash_set::Union<'_, T, S>[src]

impl<T, const N: usize> Clone for std::array::IntoIter<T, N> where
    T: Clone
[src]

impl<T: Clone> Clone for TrySendError<T>[src]

impl<T: Clone> Clone for std::io::Cursor<T>[src]

impl<T: Clone> Clone for SyncOnceCell<T>[src]

impl<T: Clone> Clone for SendError<T>[src]

impl<T: Clone, S: Clone> Clone for std::collections::HashSet<T, S>[src]

impl<Y, R> Clone for GeneratorState<Y, R> where
    R: Clone,
    Y: Clone
[src]

Loading content...