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 __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]

Loading content...

Implementors

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

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

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

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

impl Clone for Infallible[src]

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

impl Clone for VarError[src]

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

impl Clone for ErrorKind[src]

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

impl Clone for SeekFrom[src]

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

impl Clone for IpAddr[src]

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

impl Clone for Ipv6MulticastScope[src]

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

impl Clone for Shutdown[src]

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

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

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

impl Clone for FpCategory[src]

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

impl Clone for IntErrorKind[src]

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

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

impl Clone for RecvTimeoutError[src]

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

impl Clone for TryRecvError[src]

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

impl Clone for bool[src]

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

impl Clone for char[src]

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

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

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

impl Clone for ![src]

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

impl Clone for u128[src]

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

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

impl Clone for AllocErr[src]

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

impl Clone for CannotReallocInPlace[src]

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

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

impl Clone for TryFromSliceError[src]

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

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

impl Clone for DecodeUtf16Error[src]

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

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

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

impl Clone for DefaultHasher[src]

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

impl Clone for RandomState[src]

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

impl Clone for CString[src]

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

impl Clone for FromBytesWithNulError[src]

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

impl Clone for IntoStringError[src]

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

impl Clone for NulError[src]

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

impl Clone for OsString[src]

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

impl Clone for Error[src]

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

impl Clone for FileType[src]

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

impl Clone for Metadata[src]

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

impl Clone for OpenOptions[src]

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

impl Clone for Permissions[src]

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

impl Clone for SipHasher[src]

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

impl Clone for PhantomPinned[src]

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

impl Clone for AddrParseError[src]

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

impl Clone for Ipv4Addr[src]

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

impl Clone for Ipv6Addr[src]

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

impl Clone for SocketAddrV4[src]

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

impl Clone for SocketAddrV6[src]

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

impl Clone for NonZeroI128[src]

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

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

impl Clone for NonZeroU128[src]

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

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

impl Clone for ParseFloatError[src]

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

impl Clone for ParseIntError[src]

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

impl Clone for TryFromIntError[src]

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

impl Clone for RangeFull[src]

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

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

impl Clone for StripPrefixError[src]

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

impl Clone for ExitCode[src]

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

impl Clone for ExitStatus[src]

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

impl Clone for Output[src]

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

impl Clone for TraitObject[src]

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

impl Clone for ParseBoolError[src]

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

impl Clone for Utf8Error[src]

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

impl Clone for String[src]

impl Clone for RecvError[src]

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

impl Clone for WaitTimeoutResult[src]

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

impl Clone for RawWakerVTable[src]

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

impl Clone for Waker[src]

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

impl Clone for Thread[src]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Loading content...