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

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.

Implementations on Foreign Types

impl Clone for __m128[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for __m128d[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for __m256d[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for __m64[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for __m256[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for __m512[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for __m512d[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for CpuidResult[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for __m128i[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for __m256i[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for __m512i[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for CollectionAllocErr[]

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for TryDemangleError[]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Implementors

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

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

impl Clone for Infallible[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for VarError[src][]

impl Clone for ErrorKind[src][]

impl Clone for SeekFrom[src][]

impl Clone for IpAddr[src][]

fn clone_from(&mut self, source: &Self)1.0.0[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][]

fn clone_from(&mut self, source: &Self)1.0.0[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][]

fn clone_from(&mut self, source: &Self)[src]

impl Clone for f64[src][]

fn clone_from(&mut self, source: &Self)[src]

impl Clone for i128[src][]

impl Clone for i16[src][]

fn clone_from(&mut self, source: &Self)[src]

impl Clone for i32[src][]

fn clone_from(&mut self, source: &Self)[src]

impl Clone for i64[src][]

fn clone_from(&mut self, source: &Self)[src]

impl Clone for i8[src][]

fn clone_from(&mut self, source: &Self)[src]

impl Clone for isize[src][]

impl Clone for ![src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for u128[src][]

impl Clone for u16[src][]

fn clone_from(&mut self, source: &Self)[src]

impl Clone for u32[src][]

fn clone_from(&mut self, source: &Self)[src]

impl Clone for u64[src][]

fn clone_from(&mut self, source: &Self)[src]

impl Clone for u8[src][]

fn clone_from(&mut self, source: &Self)[src]

impl Clone for usize[src][]

impl Clone for AllocErr[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for CannotReallocInPlace[src][]

impl Clone for Global[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for Layout[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for LayoutErr[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for System[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for TypeId[src][]

impl Clone for TryFromSliceError[src][]

impl Clone for Box<str>[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for Box<CStr>[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for Box<OsStr>[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for Box<Path>[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for CharTryFromError[src][]

impl Clone for DecodeUtf16Error[src][]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

impl Clone for ParseCharError[src][]

impl Clone for ToLowercase[src][]

fn clone_from(&mut self, source: &Self)[src]

impl Clone for ToUppercase[src][]

fn clone_from(&mut self, source: &Self)[src]

impl Clone for UnicodeVersion[src][]

impl Clone for DefaultHasher[src][]

impl Clone for RandomState[src][]

impl Clone for CString[src][]

impl Clone for FromBytesWithNulError[src][]

impl Clone for IntoStringError[src][]

impl Clone for NulError[src][]

impl Clone for OsString[src][]

impl Clone for Error[src][]

impl Clone for FileType[src][]

fn clone_from(&mut self, source: &Self)1.0.0[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 NonZeroI128[src][]

impl Clone for NonZeroI16[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for NonZeroI32[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for NonZeroI64[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for NonZeroI8[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for NonZeroIsize[src][]

impl Clone for NonZeroU128[src][]

impl Clone for NonZeroU16[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for NonZeroU32[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for NonZeroU64[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for NonZeroU8[src][]

fn clone_from(&mut self, source: &Self)1.0.0[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][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for stat[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for PathBuf[src][]

impl Clone for StripPrefixError[src][]

impl Clone for ExitCode[src][]

fn clone_from(&mut self, source: &Self)1.0.0[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 String[src][]

impl Clone for RecvError[src][]

impl Clone for WaitTimeoutResult[src][]

impl Clone for RawWakerVTable[src][]

impl Clone for Waker[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for Thread[src][]

impl Clone for ThreadId[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for Duration[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for Instant[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for SystemTime[src][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for SystemTimeError[src][]

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

fn clone_from(&mut self, source: &Self)[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][]

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

impl<I, U> Clone for Flatten<I> where
    I: Iterator + Clone,
    U: Iterator + Clone,
    <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][]

fn clone_from(&mut self, source: &Self)1.0.0[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][]

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[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][]

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

Important traits for Box<I>
fn clone(&self) -> Box<T>[src][]

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

Examples

let x = Box::new(5);
let y = x.clone();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);

y.clone_from(&x);

assert_eq!(*y, 5);Run

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

fn clone_from(&mut self, source: &Self)[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.

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

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

fn clone_from(&mut self, source: &Self)[src]

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

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

fn clone_from(&mut self, source: &Self)[src]

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

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

fn clone_from(&mut self, source: &Self)[src]

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

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

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

fn clone_from(&mut self, source: &Self)1.0.0[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 inner value, increasing the strong reference count.

Examples

use std::rc::Rc;

let five = Rc::new(5);

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

fn clone_from(&mut self, source: &Self)[src]

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

Examples

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

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

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[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 inner value, increasing the strong reference count.

Examples

use std::sync::Arc;

let five = Arc::new(5);

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

fn clone_from(&mut self, source: &Self)[src]

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

Examples

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

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

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)[src]

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

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

fn clone_from(&mut self, source: &Self)[src]

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

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

fn clone_from(&mut self, source: &Self)[src]

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

fn clone_from(&mut self, source: &Self)1.0.0[src]

impl Clone for Global

impl<T: Clone> Clone for Box<T>

impl Clone for Box<str>

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

impl<T: Clone> Clone for BinaryHeap<T>

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

impl<T: Clone> Clone for IntoIter<T>

impl<K: Clone, V: Clone> Clone for BTreeMap<K, V>

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

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

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

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

impl<T: Clone> Clone for BTreeSet<T>

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

impl<T, '_> Clone for Range<'_, T>

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

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

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

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

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

impl<T: Clone> Clone for IntoIter<T>

impl<T: Clone> Clone for LinkedList<T>

impl<T: Clone> Clone for VecDeque<T>

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

impl<T: Clone> Clone for IntoIter<T>

impl Clone for CollectionAllocErr

impl<T: ?Sized> Clone for Arc<T>

impl<T: ?Sized> Clone for Weak<T>

impl<T: ?Sized> Clone for Rc<T>

impl<T: ?Sized> Clone for Weak<T>

impl<B: ?Sized + ToOwned, '_> Clone for Cow<'_, B>

impl Clone for String

impl<T: Clone> Clone for Vec<T>

impl<T: Clone> Clone for IntoIter<T>

impl Clone for Level

impl Clone for Diagnostic

impl Clone for TokenStream

impl Clone for IntoIter

impl Clone for Span

impl Clone for LineColumn

impl Clone for SourceFile

impl Clone for TokenTree

impl Clone for Group

impl Clone for Delimiter

impl Clone for Punct

impl Clone for Spacing

impl Clone for Ident

impl Clone for Literal

impl Clone for Summary

impl Clone for Concurrent

impl Clone for TestName

impl Clone for NamePadding

impl Clone for Bencher

impl Clone for BenchMode

impl Clone for ShouldPanic

impl Clone for TestDesc

impl Clone for Metric

impl Clone for Options

impl Clone for ColorConfig

impl Clone for OutputFormat

impl Clone for RunIgnored

impl Clone for BenchSamples

impl Clone for TestResult

impl Clone for TestEvent

impl Clone for MetricMap