std::clone::Clone

Trait std::clone::Clone

pub trait Clone {
    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.

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 an array holding more than 32 elements of a type that is Clone; the standard library only implements Clone up until arrays of size 32. In this case, the implementation of Clone cannot be derived, but can be implemented as:

#[derive(Copy)]
struct Stats {
   frequencies: [i32; 100],
}

impl Clone for Stats {
    fn clone(&self) -> Stats { *self }
}

Required Methods

Returns a copy of the value.

Examples

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

assert_eq!("Hello", hello.clone());

Provided Methods

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.

Implementors

  • impl Clone for IsaacRng
  • impl Clone for Isaac64Rng
  • impl Clone for StandardNormal
  • impl Clone for Normal
  • impl Clone for LogNormal
  • impl Clone for Exp1
  • impl Clone for Exp
  • impl Clone for ChaChaRng
  • impl Clone for ReseedWithDefault
  • impl Clone for XorShiftRng
  • impl<T> Clone for BinaryHeap<T> where
        T: Clone
  • impl<'a, T> Clone for std::collections::binary_heap::Iter<'a, T>
  • impl<K, V> Clone for BTreeMap<K, V> where
        K: Clone,
        V: Clone
  • impl<'a, K, V> Clone for std::collections::btree_map::Iter<'a, K, V>
  • impl<'a, K, V> Clone for std::collections::btree_map::Keys<'a, K, V>
  • impl<'a, K, V> Clone for std::collections::btree_map::Values<'a, K, V>
  • impl<'a, K, V> Clone for std::collections::btree_map::Range<'a, K, V>
  • impl<'a, T> Clone for std::collections::btree_set::Iter<'a, T>
  • impl<'a, T> Clone for std::collections::btree_set::Range<'a, T>
  • impl<'a, T> Clone for std::collections::btree_set::Difference<'a, T>
  • impl<'a, T> Clone for std::collections::btree_set::SymmetricDifference<'a, T>
  • impl<'a, T> Clone for std::collections::btree_set::Intersection<'a, T>
  • impl<'a, T> Clone for std::collections::btree_set::Union<'a, T>
  • impl<'a, B> Clone for Cow<'a, B> where
        B: ToOwned + ?Sized
  • impl<'a, T> Clone for std::collections::linked_list::Iter<'a, T>
  • impl<T> Clone for LinkedList<T> where
        T: Clone
  • impl Clone for String
  • impl Clone for ParseError
  • impl<T> Clone for Vec<T> where
        T: Clone
  • impl<T> Clone for std::vec::IntoIter<T> where
        T: Clone
  • impl<T> Clone for VecDeque<T> where
        T: Clone
  • impl<'a, T> Clone for std::collections::vec_deque::Iter<'a, T>
  • impl<T> Clone for std::collections::binary_heap::IntoIter<T> where
        T: Clone
  • impl<T> Clone for BTreeSet<T> where
        T: Clone
  • impl<T> Clone for std::collections::linked_list::IntoIter<T> where
        T: Clone
  • impl<'a> Clone for EncodeUtf16<'a>
  • impl<T> Clone for std::collections::vec_deque::IntoIter<T> where
        T: Clone
  • impl<T> Clone for Bound<T> where
        T: Clone
  • impl Clone for _Unwind_Reason_Code
  • impl Clone for _Unwind_Action
  • impl<T> Clone for Box<T> where
        T: Clone
  • impl Clone for Box<str>
  • impl<T> Clone for Box<[T]> where
        T: Clone
  • impl<T> Clone for Arc<T> where
        T: ?Sized
  • impl<T> Clone for std::sync::Weak<T> where
        T: ?Sized
  • impl<T> Clone for Rc<T> where
        T: ?Sized
  • impl<T> Clone for std::rc::Weak<T> where
        T: ?Sized
  • impl Clone for ExchangeHeapSingleton
  • impl<T> Clone for Discriminant<T>
  • impl<T> Clone for *const T where
        T: ?Sized
  • impl<T> Clone for *mut T where
        T: ?Sized
  • impl<T> Clone for Shared<T> where
        T: ?Sized
  • impl<'a, T> Clone for &'a T where
        T: ?Sized
  • impl<T> Clone for Cell<T> where
        T: Copy
  • impl<T> Clone for RefCell<T> where
        T: Clone
  • impl<T> Clone for Empty<T>
  • impl<'a, A> Clone for std::option::Iter<'a, A>
  • impl<'a, T> Clone for std::result::Iter<'a, T>
  • impl<'a, T> Clone for std::slice::Iter<'a, T>
  • impl<'a, T, P> Clone for std::slice::Split<'a, T, P> where
        P: Clone + FnMut(&T) -> bool
  • impl<'a, T> Clone for Windows<'a, T>
  • impl<'a, T> Clone for Chunks<'a, T>
  • impl<H> Clone for BuildHasherDefault<H>
  • impl<T> Clone for Wrapping<T> where
        T: Clone
  • impl Clone for ParseFloatError
  • impl Clone for FpCategory
  • impl Clone for TryFromIntError
  • impl Clone for ParseIntError
  • impl<T> Clone for NonZero<T> where
        T: Zeroable + Clone
  • impl<Ret> Clone for fn() -> Ret
  • impl<Ret> Clone for extern fn() -> Ret
  • impl<Ret> Clone for unsafe fn() -> Ret
  • impl<Ret> Clone for unsafe extern fn() -> Ret
  • impl<Ret, A> Clone for fn(A) -> Ret
  • impl<Ret, A> Clone for extern fn(A) -> Ret
  • impl<Ret, A> Clone for extern fn(A, ...) -> Ret
  • impl<Ret, A> Clone for unsafe fn(A) -> Ret
  • impl<Ret, A> Clone for unsafe extern fn(A) -> Ret
  • impl<Ret, A> Clone for unsafe extern fn(A, ...) -> Ret
  • impl<Ret, A, B> Clone for fn(A, B) -> Ret
  • impl<Ret, A, B> Clone for extern fn(A, B) -> Ret
  • impl<Ret, A, B> Clone for extern fn(A, B, ...) -> Ret
  • impl<Ret, A, B> Clone for unsafe fn(A, B) -> Ret
  • impl<Ret, A, B> Clone for unsafe extern fn(A, B) -> Ret
  • impl<Ret, A, B> Clone for unsafe extern fn(A, B, ...) -> Ret
  • impl<Ret, A, B, C> Clone for fn(A, B, C) -> Ret
  • impl<Ret, A, B, C> Clone for extern fn(A, B, C) -> Ret
  • impl<Ret, A, B, C> Clone for extern fn(A, B, C, ...) -> Ret
  • impl<Ret, A, B, C> Clone for unsafe fn(A, B, C) -> Ret
  • impl<Ret, A, B, C> Clone for unsafe extern fn(A, B, C) -> Ret
  • impl<Ret, A, B, C> Clone for unsafe extern fn(A, B, C, ...) -> Ret
  • impl<Ret, A, B, C, D> Clone for fn(A, B, C, D) -> Ret
  • impl<Ret, A, B, C, D> Clone for extern fn(A, B, C, D) -> Ret
  • impl<Ret, A, B, C, D> Clone for extern fn(A, B, C, D, ...) -> Ret
  • impl<Ret, A, B, C, D> Clone for unsafe fn(A, B, C, D) -> Ret
  • impl<Ret, A, B, C, D> Clone for unsafe extern fn(A, B, C, D) -> Ret
  • impl<Ret, A, B, C, D> Clone for unsafe extern fn(A, B, C, D, ...) -> Ret
  • impl<Ret, A, B, C, D, E> Clone for fn(A, B, C, D, E) -> Ret
  • impl<Ret, A, B, C, D, E> Clone for extern fn(A, B, C, D, E) -> Ret
  • impl<Ret, A, B, C, D, E> Clone for extern fn(A, B, C, D, E, ...) -> Ret
  • impl<Ret, A, B, C, D, E> Clone for unsafe fn(A, B, C, D, E) -> Ret
  • impl<Ret, A, B, C, D, E> Clone for unsafe extern fn(A, B, C, D, E) -> Ret
  • impl<Ret, A, B, C, D, E> Clone for unsafe extern fn(A, B, C, D, E, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F> Clone for fn(A, B, C, D, E, F) -> Ret
  • impl<Ret, A, B, C, D, E, F> Clone for extern fn(A, B, C, D, E, F) -> Ret
  • impl<Ret, A, B, C, D, E, F> Clone for extern fn(A, B, C, D, E, F, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F> Clone for unsafe fn(A, B, C, D, E, F) -> Ret
  • impl<Ret, A, B, C, D, E, F> Clone for unsafe extern fn(A, B, C, D, E, F) -> Ret
  • impl<Ret, A, B, C, D, E, F> Clone for unsafe extern fn(A, B, C, D, E, F, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F, G> Clone for fn(A, B, C, D, E, F, G) -> Ret
  • impl<Ret, A, B, C, D, E, F, G> Clone for extern fn(A, B, C, D, E, F, G) -> Ret
  • impl<Ret, A, B, C, D, E, F, G> Clone for extern fn(A, B, C, D, E, F, G, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F, G> Clone for unsafe fn(A, B, C, D, E, F, G) -> Ret
  • impl<Ret, A, B, C, D, E, F, G> Clone for unsafe extern fn(A, B, C, D, E, F, G) -> Ret
  • impl<Ret, A, B, C, D, E, F, G> Clone for unsafe extern fn(A, B, C, D, E, F, G, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H> Clone for fn(A, B, C, D, E, F, G, H) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H> Clone for extern fn(A, B, C, D, E, F, G, H) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H> Clone for extern fn(A, B, C, D, E, F, G, H, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H> Clone for unsafe fn(A, B, C, D, E, F, G, H) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H> Clone for unsafe extern fn(A, B, C, D, E, F, G, H) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H> Clone for unsafe extern fn(A, B, C, D, E, F, G, H, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I> Clone for fn(A, B, C, D, E, F, G, H, I) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I> Clone for extern fn(A, B, C, D, E, F, G, H, I) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I> Clone for extern fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I> Clone for unsafe fn(A, B, C, D, E, F, G, H, I) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I> Clone for unsafe extern fn(A, B, C, D, E, F, G, H, I) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I> Clone for unsafe extern fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J> Clone for fn(A, B, C, D, E, F, G, H, I, J) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J> Clone for extern fn(A, B, C, D, E, F, G, H, I, J) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J> Clone for extern fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J> Clone for unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J> Clone for unsafe extern fn(A, B, C, D, E, F, G, H, I, J) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J> Clone for unsafe extern fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Clone for fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Clone for extern fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Clone for extern fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Clone for unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Clone for unsafe extern fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Clone for unsafe extern fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Clone for fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Clone for extern fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Clone for extern fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Clone for unsafe fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Clone for unsafe extern fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
  • impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Clone for unsafe extern fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
  • impl<T> Clone for PhantomData<T> where
        T: ?Sized
  • impl Clone for RangeFull
  • impl<Idx> Clone for std::ops::Range<Idx> where
        Idx: Clone
  • impl<Idx> Clone for RangeFrom<Idx> where
        Idx: Clone
  • impl<Idx> Clone for RangeTo<Idx> where
        Idx: Clone
  • impl<Idx> Clone for RangeInclusive<Idx> where
        Idx: Clone
  • impl<Idx> Clone for RangeToInclusive<Idx> where
        Idx: Clone
  • impl Clone for std::cmp::Ordering
  • impl Clone for isize
  • impl Clone for i8
  • impl Clone for i16
  • impl Clone for i32
  • impl Clone for i64
  • impl Clone for i128
  • impl Clone for usize
  • impl Clone for u8
  • impl Clone for u16
  • impl Clone for u32
  • impl Clone for u64
  • impl Clone for u128
  • impl Clone for f32
  • impl Clone for f64
  • impl Clone for ()
  • impl Clone for bool
  • impl Clone for char
  • impl Clone for TypeId
  • impl<T> Clone for [T; 0] where
        T: Copy
  • impl<T> Clone for [T; 1] where
        T: Copy
  • impl<T> Clone for [T; 2] where
        T: Copy
  • impl<T> Clone for [T; 3] where
        T: Copy
  • impl<T> Clone for [T; 4] where
        T: Copy
  • impl<T> Clone for [T; 5] where
        T: Copy
  • impl<T> Clone for [T; 6] where
        T: Copy
  • impl<T> Clone for [T; 7] where
        T: Copy
  • impl<T> Clone for [T; 8] where
        T: Copy
  • impl<T> Clone for [T; 9] where
        T: Copy
  • impl<T> Clone for [T; 10] where
        T: Copy
  • impl<T> Clone for [T; 11] where
        T: Copy
  • impl<T> Clone for [T; 12] where
        T: Copy
  • impl<T> Clone for [T; 13] where
        T: Copy
  • impl<T> Clone for [T; 14] where
        T: Copy
  • impl<T> Clone for [T; 15] where
        T: Copy
  • impl<T> Clone for [T; 16] where
        T: Copy
  • impl<T> Clone for [T; 17] where
        T: Copy
  • impl<T> Clone for [T; 18] where
        T: Copy
  • impl<T> Clone for [T; 19] where
        T: Copy
  • impl<T> Clone for [T; 20] where
        T: Copy
  • impl<T> Clone for [T; 21] where
        T: Copy
  • impl<T> Clone for [T; 22] where
        T: Copy
  • impl<T> Clone for [T; 23] where
        T: Copy
  • impl<T> Clone for [T; 24] where
        T: Copy
  • impl<T> Clone for [T; 25] where
        T: Copy
  • impl<T> Clone for [T; 26] where
        T: Copy
  • impl<T> Clone for [T; 27] where
        T: Copy
  • impl<T> Clone for [T; 28] where
        T: Copy
  • impl<T> Clone for [T; 29] where
        T: Copy
  • impl<T> Clone for [T; 30] where
        T: Copy
  • impl<T> Clone for [T; 31] where
        T: Copy
  • impl<T> Clone for [T; 32] where
        T: Copy
  • impl Clone for std::sync::atomic::Ordering
  • impl Clone for CharTryFromError
  • impl Clone for EscapeUnicode
  • impl Clone for EscapeDefault
  • impl Clone for EscapeDebug
  • impl<I> Clone for DecodeUtf8<I> where
        I: Clone + Iterator<Item = u8>, 
  • impl<A, R> Clone for StepBy<A, R> where
        A: Clone,
        R: Clone
  • impl<A> Clone for Repeat<A> where
        A: Clone
  • impl<T> Clone for Once<T> where
        T: Clone
  • impl<T> Clone for Rev<T> where
        T: Clone
  • impl<I> Clone for Cloned<I> where
        I: Clone
  • impl<I> Clone for Cycle<I> where
        I: Clone
  • impl<A, B> Clone for Chain<A, B> where
        A: Clone,
        B: Clone
  • impl<A, B> Clone for Zip<A, B> where
        A: Clone,
        B: Clone
  • impl<I, F> Clone for Map<I, F> where
        F: Clone,
        I: Clone
  • impl<I, P> Clone for Filter<I, P> where
        I: Clone,
        P: Clone
  • impl<I, F> Clone for FilterMap<I, F> where
        F: Clone,
        I: Clone
  • impl<I> Clone for Enumerate<I> where
        I: Clone
  • impl<I> Clone for Peekable<I> where
        I: Clone + Iterator,
        <I as Iterator>::Item: Clone
  • impl<I, P> Clone for SkipWhile<I, P> where
        I: Clone,
        P: Clone
  • impl<I, P> Clone for TakeWhile<I, P> where
        I: Clone,
        P: Clone
  • impl<I> Clone for Skip<I> where
        I: Clone
  • impl<I> Clone for Take<I> where
        I: Clone
  • impl<I, St, F> Clone for Scan<I, St, F> where
        F: Clone,
        I: Clone,
        St: Clone
  • impl<I, U, F> Clone for FlatMap<I, U, F> where
        F: Clone,
        I: Clone,
        U: Clone + IntoIterator,
        <U as IntoIterator>::IntoIter: Clone,
        <U as IntoIterator>::IntoIter: Clone
  • impl<I> Clone for Fuse<I> where
        I: Clone
  • impl<I, F> Clone for Inspect<I, F> where
        F: Clone,
        I: Clone
  • impl<T> Clone for Option<T> where
        T: Clone
  • impl<A> Clone for std::option::IntoIter<A> where
        A: Clone
  • impl Clone for TraitObject
  • impl<T, E> Clone for Result<T, E> where
        E: Clone,
        T: Clone
  • impl<'a, T, P> Clone for std::slice::RSplit<'a, T, P> where
        P: Clone + FnMut(&T) -> bool,
        T: 'a + Clone
  • impl Clone for SearchStep
  • impl<'a> Clone for CharSearcher<'a>
  • impl<'a, 'b> Clone for CharSliceSearcher<'a, 'b>
  • impl<'a, F> Clone for CharPredicateSearcher<'a, F> where
        F: Clone + FnMut(char) -> bool
  • impl<'a, 'b> Clone for StrSearcher<'a, 'b>
  • impl Clone for ParseBoolError
  • impl Clone for Utf8Error
  • impl<'a> Clone for Chars<'a>
  • impl<'a> Clone for CharIndices<'a>
  • impl<'a> Clone for Bytes<'a>
  • impl<'a, P> Clone for std::str::Split<'a, P> where
        P: Pattern<'a>,
        <P as Pattern<'a>>::Searcher: Clone
  • impl<'a, P> Clone for std::str::RSplit<'a, P> where
        P: Pattern<'a>,
        <P as Pattern<'a>>::Searcher: Clone
  • impl<'a, P> Clone for SplitTerminator<'a, P> where
        P: Pattern<'a>,
        <P as Pattern<'a>>::Searcher: Clone
  • impl<'a, P> Clone for RSplitTerminator<'a, P> where
        P: Pattern<'a>,
        <P as Pattern<'a>>::Searcher: Clone
  • impl<'a, P> Clone for SplitN<'a, P> where
        P: Pattern<'a>,
        <P as Pattern<'a>>::Searcher: Clone
  • impl<'a, P> Clone for RSplitN<'a, P> where
        P: Pattern<'a>,
        <P as Pattern<'a>>::Searcher: Clone
  • impl<'a, P> Clone for MatchIndices<'a, P> where
        P: Pattern<'a>,
        <P as Pattern<'a>>::Searcher: Clone
  • impl<'a, P> Clone for RMatchIndices<'a, P> where
        P: Pattern<'a>,
        <P as Pattern<'a>>::Searcher: Clone
  • impl<'a, P> Clone for Matches<'a, P> where
        P: Pattern<'a>,
        <P as Pattern<'a>>::Searcher: Clone
  • impl<'a, P> Clone for RMatches<'a, P> where
        P: Pattern<'a>,
        <P as Pattern<'a>>::Searcher: Clone
  • impl<'a> Clone for Lines<'a>
  • impl<'a> Clone for LinesAny<'a>
  • impl Clone for SipHasher13
  • impl Clone for SipHasher24
  • impl Clone for SipHasher
  • impl Clone for Error
  • impl<'a> Clone for Arguments<'a>
  • impl<A> Clone for (A,) where
        A: Clone
  • impl<A, B> Clone for (A, B) where
        A: Clone,
        B: Clone
  • impl<A, B, C> Clone for (A, B, C) where
        A: Clone,
        B: Clone,
        C: Clone
  • impl<A, B, C, D> Clone for (A, B, C, D) where
        A: Clone,
        B: Clone,
        C: Clone,
        D: Clone
  • impl<A, B, C, D, E> Clone for (A, B, C, D, E) where
        A: Clone,
        B: Clone,
        C: Clone,
        D: Clone,
        E: Clone
  • impl<A, B, C, D, E, F> Clone for (A, B, C, D, E, F) where
        A: Clone,
        B: Clone,
        C: Clone,
        D: Clone,
        E: Clone,
        F: Clone
  • impl<A, B, C, D, E, F, G> Clone for (A, B, C, D, E, F, G) where
        A: Clone,
        B: Clone,
        C: Clone,
        D: Clone,
        E: Clone,
        F: Clone,
        G: Clone
  • impl<A, B, C, D, E, F, G, H> Clone for (A, B, C, D, E, F, G, H) where
        A: Clone,
        B: Clone,
        C: Clone,
        D: Clone,
        E: Clone,
        F: Clone,
        G: Clone,
        H: Clone
  • impl<A, B, C, D, E, F, G, H, I> Clone for (A, B, C, D, E, F, G, H, I) where
        A: Clone,
        B: Clone,
        C: Clone,
        D: Clone,
        E: Clone,
        F: Clone,
        G: Clone,
        H: Clone,
        I: Clone
  • impl<A, B, C, D, E, F, G, H, I, J> Clone for (A, B, C, D, E, F, G, H, I, J) where
        A: Clone,
        B: Clone,
        C: Clone,
        D: Clone,
        E: Clone,
        F: Clone,
        G: Clone,
        H: Clone,
        I: Clone,
        J: Clone
  • impl<A, B, C, D, E, F, G, H, I, J, K> Clone for (A, B, C, D, E, F, G, H, I, J, K) where
        A: Clone,
        B: Clone,
        C: Clone,
        D: Clone,
        E: Clone,
        F: Clone,
        G: Clone,
        H: Clone,
        I: Clone,
        J: Clone,
        K: Clone
  • impl<A, B, C, D, E, F, G, H, I, J, K, L> Clone for (A, B, C, D, E, F, G, H, I, J, K, L) where
        A: Clone,
        B: Clone,
        C: Clone,
        D: Clone,
        E: Clone,
        F: Clone,
        G: Clone,
        H: Clone,
        I: Clone,
        J: Clone,
        K: Clone,
        L: Clone
  • impl Clone for group
  • impl Clone for utimbuf
  • impl Clone for timeval
  • impl Clone for timespec
  • impl Clone for rlimit
  • impl Clone for rusage
  • impl Clone for in_addr
  • impl Clone for in6_addr
  • impl Clone for ip_mreq
  • impl Clone for ipv6_mreq
  • impl Clone for hostent
  • impl Clone for iovec
  • impl Clone for pollfd
  • impl Clone for winsize
  • impl Clone for linger
  • impl Clone for sigval
  • impl Clone for sockaddr
  • impl Clone for sockaddr_in
  • impl Clone for sockaddr_in6
  • impl Clone for sockaddr_un
  • impl Clone for sockaddr_storage
  • impl Clone for addrinfo
  • impl Clone for sockaddr_nl
  • impl Clone for sockaddr_ll
  • impl Clone for fd_set
  • impl Clone for tm
  • impl Clone for sched_param
  • impl Clone for Dl_info
  • impl Clone for epoll_event
  • impl Clone for utsname
  • impl Clone for lconv
  • impl Clone for sigevent
  • impl Clone for dirent
  • impl Clone for dirent64
  • impl Clone for rlimit64
  • impl Clone for glob_t
  • impl Clone for ifaddrs
  • impl Clone for pthread_mutex_t
  • impl Clone for pthread_rwlock_t
  • impl Clone for pthread_mutexattr_t
  • impl Clone for pthread_cond_t
  • impl Clone for pthread_condattr_t
  • impl Clone for passwd
  • impl Clone for spwd
  • impl Clone for statvfs
  • impl Clone for dqblk
  • impl Clone for signalfd_siginfo
  • impl Clone for fsid_t
  • impl Clone for mq_attr
  • impl Clone for cpu_set_t
  • impl Clone for if_nameindex
  • impl Clone for msginfo
  • impl Clone for aiocb
  • impl Clone for __exit_status
  • impl Clone for __timeval
  • impl Clone for utmpx
  • impl Clone for sigaction
  • impl Clone for stack_t
  • impl Clone for siginfo_t
  • impl Clone for glob64_t
  • impl Clone for ucred
  • impl Clone for statfs
  • impl Clone for msghdr
  • impl Clone for cmsghdr
  • impl Clone for termios
  • impl Clone for flock
  • impl Clone for sem_t
  • impl Clone for sigset_t
  • impl Clone for sysinfo
  • impl Clone for msqid_ds
  • impl Clone for libc::unix::notbsd::linux::other::b64::x86_64::stat
  • impl Clone for stat64
  • impl Clone for pthread_attr_t
  • impl Clone for _libc_fpxreg
  • impl Clone for _libc_xmmreg
  • impl Clone for _libc_fpstate
  • impl Clone for mcontext_t
  • impl Clone for ucontext_t
  • impl Clone for ipc_perm
  • impl Clone for shmid_ds
  • impl<I> Clone for Utf16Encoder<I> where
        I: Clone
  • impl<I> Clone for DecodeUtf16<I> where
        I: Clone + Iterator<Item = u16>, 
  • impl Clone for DecodeUtf16Error
  • impl Clone for LocalKeyState
  • impl Clone for ThreadId
  • impl Clone for Thread
  • impl<K: Clone, V: Clone, S: Clone> Clone for HashMap<K, V, S>
  • impl<'a, K, V> Clone for std::collections::hash_map::Iter<'a, K, V>
  • impl<'a, K, V> Clone for std::collections::hash_map::Keys<'a, K, V>
  • impl<'a, K, V> Clone for std::collections::hash_map::Values<'a, K, V>
  • impl Clone for RandomState
  • impl<T: Clone, S: Clone> Clone for HashSet<T, S>
  • impl<'a, K> Clone for std::collections::hash_set::Iter<'a, K>
  • impl<'a, T, S> Clone for std::collections::hash_set::Intersection<'a, T, S>
  • impl<'a, T, S> Clone for std::collections::hash_set::Difference<'a, T, S>
  • impl<'a, T, S> Clone for std::collections::hash_set::SymmetricDifference<'a, T, S>
  • impl<'a, T, S> Clone for std::collections::hash_set::Union<'a, T, S>
  • impl Clone for VarError
  • impl Clone for CString
  • impl Clone for NulError
  • impl Clone for FromBytesWithNulError
  • impl Clone for IntoStringError
  • impl Clone for OsString
  • impl Clone for Metadata
  • impl Clone for OpenOptions
  • impl Clone for Permissions
  • impl Clone for FileType
  • impl<T: Clone> Clone for Cursor<T>
  • impl Clone for ErrorKind
  • impl Clone for SeekFrom
  • impl Clone for IpAddr
  • impl Clone for Ipv6MulticastScope
  • impl Clone for Ipv4Addr
  • impl Clone for Ipv6Addr
  • impl Clone for std::net::SocketAddr
  • impl Clone for SocketAddrV4
  • impl Clone for SocketAddrV6
  • impl Clone for AddrParseError
  • impl Clone for Shutdown
  • impl Clone for std::os::linux::raw::stat
  • impl<'a> Clone for Prefix<'a>
  • impl<'a> Clone for PrefixComponent<'a>
  • impl<'a> Clone for Component<'a>
  • impl<'a> Clone for Components<'a>
  • impl<'a> Clone for std::path::Iter<'a>
  • impl Clone for PathBuf
  • impl Clone for StripPrefixError
  • impl Clone for Output
  • impl Clone for ExitStatus
  • impl<T: Clone> Clone for SendError<T>
  • impl Clone for RecvError
  • impl Clone for TryRecvError
  • impl Clone for RecvTimeoutError
  • impl<T: Clone> Clone for TrySendError<T>
  • impl<T> Clone for Sender<T>
  • impl<T> Clone for SyncSender<T>
  • impl Clone for WaitTimeoutResult
  • impl Clone for Duration
  • impl Clone for Instant
  • impl Clone for SystemTime
  • impl Clone for SystemTimeError
  • impl Clone for std::os::unix::net::SocketAddr

© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/clone/trait.Clone.html

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部