Trait std::clone::Clone
[−]
[src]
pub trait Clone {
fn clone(&self) -> Self;
fn clone_from(&mut self, source: &Self) { ... }
}A common trait for cloning an object.
Required Methods
fn clone(&self) -> Self
Returns a copy of the value.
Examples
fn main() { let hello = "Hello"; // &str implements Clone assert_eq!("Hello", hello.clone()); }let hello = "Hello"; // &str implements Clone assert_eq!("Hello", hello.clone());
Provided Methods
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source`source`.
a.clone_from(&b)`a.clone_from(&b)is equivalent to` is equivalent to a = b.clone()`a = b.clone()in functionality, but can be overridden to reuse the resources of` in functionality,
but can be overridden to reuse the resources of a`a` to avoid unnecessary
allocations.
Implementors
impl<T> Clone for Wrapping<T> where T: Clone + Cloneimpl Clone for Big32x36impl Clone for Big8x3impl Clone for Decodedimpl Clone for FullDecodedimpl Clone for Fpimpl<'a> Clone for Part<'a>impl<'a> Clone for Formatted<'a>impl Clone for Signimpl Clone for FpCategoryimpl Clone for ParseIntErrorimpl Clone for IntErrorKindimpl Clone for ParseFloatErrorimpl Clone for FloatErrorKindimpl<T> Clone for NonZero<T> where T: Zeroable + Clone + Cloneimpl<T> Clone for *const T where T: ?Sizedimpl<T> Clone for *mut T where T: ?Sizedimpl Clone for NoCopyimpl<T> Clone for PhantomData<T> where T: ?Sizedimpl Clone for RangeFullimpl<Idx> Clone for Range<Idx> where Idx: Clone + Clone + Cloneimpl<Idx> Clone for RangeFrom<Idx> where Idx: Clone + Cloneimpl<Idx> Clone for RangeTo<Idx> where Idx: Clone + Cloneimpl Clone for Orderingimpl<'a, T> Clone for &'a T where T: ?Sizedimpl Clone for isizeimpl Clone for i8impl Clone for i16impl Clone for i32impl Clone for i64impl Clone for usizeimpl Clone for u8impl Clone for u16impl Clone for u32impl Clone for u64impl Clone for f32impl Clone for f64impl Clone for ()impl Clone for boolimpl Clone for charimpl<ReturnType> Clone for fn() -> ReturnTypeimpl<ReturnType> Clone for extern "C" fn() -> ReturnTypeimpl<ReturnType> Clone for unsafe fn() -> ReturnTypeimpl<ReturnType> Clone for unsafe extern "C" fn() -> ReturnTypeimpl<A, ReturnType> Clone for fn(A) -> ReturnTypeimpl<A, ReturnType> Clone for extern "C" fn(A) -> ReturnTypeimpl<A, ReturnType> Clone for unsafe fn(A) -> ReturnTypeimpl<A, ReturnType> Clone for unsafe extern "C" fn(A) -> ReturnTypeimpl<A, B, ReturnType> Clone for fn(A, B) -> ReturnTypeimpl<A, B, ReturnType> Clone for extern "C" fn(A, B) -> ReturnTypeimpl<A, B, ReturnType> Clone for unsafe fn(A, B) -> ReturnTypeimpl<A, B, ReturnType> Clone for unsafe extern "C" fn(A, B) -> ReturnTypeimpl<A, B, C, ReturnType> Clone for fn(A, B, C) -> ReturnTypeimpl<A, B, C, ReturnType> Clone for extern "C" fn(A, B, C) -> ReturnTypeimpl<A, B, C, ReturnType> Clone for unsafe fn(A, B, C) -> ReturnTypeimpl<A, B, C, ReturnType> Clone for unsafe extern "C" fn(A, B, C) -> ReturnTypeimpl<A, B, C, D, ReturnType> Clone for fn(A, B, C, D) -> ReturnTypeimpl<A, B, C, D, ReturnType> Clone for extern "C" fn(A, B, C, D) -> ReturnTypeimpl<A, B, C, D, ReturnType> Clone for unsafe fn(A, B, C, D) -> ReturnTypeimpl<A, B, C, D, ReturnType> Clone for unsafe extern "C" fn(A, B, C, D) -> ReturnTypeimpl<A, B, C, D, E, ReturnType> Clone for fn(A, B, C, D, E) -> ReturnTypeimpl<A, B, C, D, E, ReturnType> Clone for extern "C" fn(A, B, C, D, E) -> ReturnTypeimpl<A, B, C, D, E, ReturnType> Clone for unsafe fn(A, B, C, D, E) -> ReturnTypeimpl<A, B, C, D, E, ReturnType> Clone for unsafe extern "C" fn(A, B, C, D, E) -> ReturnTypeimpl<A, B, C, D, E, F, ReturnType> Clone for fn(A, B, C, D, E, F) -> ReturnTypeimpl<A, B, C, D, E, F, ReturnType> Clone for extern "C" fn(A, B, C, D, E, F) -> ReturnTypeimpl<A, B, C, D, E, F, ReturnType> Clone for unsafe fn(A, B, C, D, E, F) -> ReturnTypeimpl<A, B, C, D, E, F, ReturnType> Clone for unsafe extern "C" fn(A, B, C, D, E, F) -> ReturnTypeimpl<A, B, C, D, E, F, G, ReturnType> Clone for fn(A, B, C, D, E, F, G) -> ReturnTypeimpl<A, B, C, D, E, F, G, ReturnType> Clone for extern "C" fn(A, B, C, D, E, F, G) -> ReturnTypeimpl<A, B, C, D, E, F, G, ReturnType> Clone for unsafe fn(A, B, C, D, E, F, G) -> ReturnTypeimpl<A, B, C, D, E, F, G, ReturnType> Clone for unsafe extern "C" fn(A, B, C, D, E, F, G) -> ReturnTypeimpl<A, B, C, D, E, F, G, H, ReturnType> Clone for fn(A, B, C, D, E, F, G, H) -> ReturnTypeimpl<A, B, C, D, E, F, G, H, ReturnType> Clone for extern "C" fn(A, B, C, D, E, F, G, H) -> ReturnTypeimpl<A, B, C, D, E, F, G, H, ReturnType> Clone for unsafe fn(A, B, C, D, E, F, G, H) -> ReturnTypeimpl<A, B, C, D, E, F, G, H, ReturnType> Clone for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> ReturnTypeimpl Clone for TypeIdimpl<T> Clone for [T; 0] where T: Copyimpl<T> Clone for [T; 1] where T: Copyimpl<T> Clone for [T; 2] where T: Copyimpl<T> Clone for [T; 3] where T: Copyimpl<T> Clone for [T; 4] where T: Copyimpl<T> Clone for [T; 5] where T: Copyimpl<T> Clone for [T; 6] where T: Copyimpl<T> Clone for [T; 7] where T: Copyimpl<T> Clone for [T; 8] where T: Copyimpl<T> Clone for [T; 9] where T: Copyimpl<T> Clone for [T; 10] where T: Copyimpl<T> Clone for [T; 11] where T: Copyimpl<T> Clone for [T; 12] where T: Copyimpl<T> Clone for [T; 13] where T: Copyimpl<T> Clone for [T; 14] where T: Copyimpl<T> Clone for [T; 15] where T: Copyimpl<T> Clone for [T; 16] where T: Copyimpl<T> Clone for [T; 17] where T: Copyimpl<T> Clone for [T; 18] where T: Copyimpl<T> Clone for [T; 19] where T: Copyimpl<T> Clone for [T; 20] where T: Copyimpl<T> Clone for [T; 21] where T: Copyimpl<T> Clone for [T; 22] where T: Copyimpl<T> Clone for [T; 23] where T: Copyimpl<T> Clone for [T; 24] where T: Copyimpl<T> Clone for [T; 25] where T: Copyimpl<T> Clone for [T; 26] where T: Copyimpl<T> Clone for [T; 27] where T: Copyimpl<T> Clone for [T; 28] where T: Copyimpl<T> Clone for [T; 29] where T: Copyimpl<T> Clone for [T; 30] where T: Copyimpl<T> Clone for [T; 31] where T: Copyimpl<T> Clone for [T; 32] where T: Copyimpl Clone for Orderingimpl<T> Clone for Cell<T> where T: Copyimpl Clone for BorrowStateimpl<T> Clone for RefCell<T> where T: Cloneimpl<'b> Clone for BorrowRef<'b>impl Clone for EscapeUnicodeimpl Clone for EscapeUnicodeStateimpl Clone for EscapeDefaultimpl Clone for EscapeDefaultStateimpl<T> Clone for Rev<T> where T: Clone + Cloneimpl<T> Clone for MinMaxResult<T> where T: Clone + Clone + Clone + Cloneimpl<I> Clone for Cloned<I> where I: Clone + Cloneimpl<I> Clone for Cycle<I> where I: Clone + Clone + Cloneimpl<A, B> Clone for Chain<A, B> where B: Clone + Clone, A: Clone + Cloneimpl<A, B> Clone for Zip<A, B> where B: Clone + Clone, A: Clone + Cloneimpl<I, F> Clone for Map<I, F> where I: Clone + Clone, F: Clone + Cloneimpl<I, P> Clone for Filter<I, P> where P: Clone + Clone, I: Clone + Cloneimpl<I, F> Clone for FilterMap<I, F> where F: Clone + Clone, I: Clone + Cloneimpl<I> Clone for Enumerate<I> where I: Clone + Cloneimpl<I> Clone for Peekable<I> where I: Clone + Iterator, I::Item: Cloneimpl<I, P> Clone for SkipWhile<I, P> where P: Clone + Clone, I: Clone + Cloneimpl<I, P> Clone for TakeWhile<I, P> where I: Clone + Clone, P: Clone + Cloneimpl<I> Clone for Skip<I> where I: Clone + Cloneimpl<I> Clone for Take<I> where I: Clone + Cloneimpl<I, St, F> Clone for Scan<I, St, F> where I: Clone + Clone, F: Clone + Clone, St: Clone + Cloneimpl<I, U, F> Clone for FlatMap<I, U, F> where U: Clone + IntoIterator, F: Clone + Clone, I: Clone + Clone, U::IntoIter: Clone, U::IntoIter: Cloneimpl<I> Clone for Fuse<I> where I: Clone + Cloneimpl<I, F> Clone for Inspect<I, F> where I: Clone + Clone, F: Clone + Cloneimpl<St, F> Clone for Unfold<St, F> where St: Clone + Clone, F: Clone + Cloneimpl<A, R> Clone for StepBy<A, R> where A: Clone + Clone, R: Clone + Cloneimpl<A> Clone for RangeInclusive<A> where A: Clone + Cloneimpl<A> Clone for Repeat<A> where A: Clone + Cloneimpl<T> Clone for Option<T> where T: Clone + Cloneimpl<A> Clone for Item<A> where A: Clone + Cloneimpl<'a, A> Clone for Iter<'a, A>impl<T> Clone for Slice<T>impl Clone for TraitObjectimpl<T, E> Clone for Result<T, E> where T: Clone + Clone, E: Clone + Cloneimpl<'a, T> Clone for Iter<'a, T>impl Clone for i8x16impl Clone for i16x8impl Clone for i32x4impl Clone for i64x2impl Clone for u8x16impl Clone for u16x8impl Clone for u32x4impl Clone for u64x2impl Clone for f32x4impl Clone for f64x2impl<'a, T> Clone for Iter<'a, T>impl<'a, T, P> Clone for Split<'a, T, P> where P: Clone + FnMut(&T) -> boolimpl<'a, T> Clone for Windows<'a, T>impl<'a, T> Clone for Chunks<'a, T>impl Clone for SearchStepimpl<'a, C> Clone for CharEqSearcher<'a, C> where C: Clone + CharEq + Cloneimpl<'a, 'b> Clone for StrSearcher<'a, 'b>impl Clone for Stateimpl<'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 + Cloneimpl Clone for ParseBoolErrorimpl Clone for Utf8Errorimpl<'a> Clone for Chars<'a>impl<'a> Clone for CharIndices<'a>impl<'a> Clone for Bytes<'a>impl Clone for BytesDerefimpl<'a, P> Clone for SplitInternal<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a, P> Clone for Split<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a, P> Clone for RSplit<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a, P> Clone for SplitTerminator<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a, P> Clone for RSplitTerminator<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a, P> Clone for SplitNInternal<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a, P> Clone for SplitN<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a, P> Clone for RSplitN<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a, P> Clone for MatchIndicesInternal<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a, P> Clone for MatchIndices<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a, P> Clone for RMatchIndices<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a, P> Clone for MatchesInternal<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a, P> Clone for Matches<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a, P> Clone for RMatches<'a, P> where P: Pattern<'a>, P::Searcher: Cloneimpl<'a> Clone for Lines<'a>impl<'a> Clone for LinesAny<'a>impl Clone for LinesAnyMapimpl Clone for TwoWaySearcherimpl Clone for OldSearcherimpl<'a, 'b> Clone for OldMatchIndices<'a, 'b>impl Clone for CharRangeimpl Clone for SipHasherimpl Clone for Binaryimpl Clone for Octalimpl Clone for Decimalimpl Clone for LowerHeximpl Clone for UpperHeximpl Clone for Radiximpl<T, R> Clone for RadixFmt<T, R> where R: Clone + Clone, T: Clone + Cloneimpl Clone for Argumentimpl Clone for FormatSpecimpl Clone for Alignmentimpl Clone for Countimpl Clone for Positionimpl Clone for Errorimpl Clone for FlagV1impl<'a> Clone for Arguments<'a>impl<A> Clone for (A,) where A: Cloneimpl<A, B> Clone for (A, B) where A: Clone, B: Cloneimpl<A, B, C> Clone for (A, B, C) where A: Clone, C: Clone, B: Cloneimpl<A, B, C, D> Clone for (A, B, C, D) where C: Clone, B: Clone, D: Clone, A: Cloneimpl<A, B, C, D, E> Clone for (A, B, C, D, E) where D: Clone, C: Clone, A: Clone, B: Clone, E: Cloneimpl<A, B, C, D, E, F> Clone for (A, B, C, D, E, F) where A: Clone, C: Clone, B: Clone, E: Clone, D: Clone, F: Cloneimpl<A, B, C, D, E, F, G> Clone for (A, B, C, D, E, F, G) where F: Clone, G: Clone, C: Clone, B: Clone, A: Clone, E: Clone, D: Cloneimpl<A, B, C, D, E, F, G, H> Clone for (A, B, C, D, E, F, G, H) where G: Clone, H: Clone, D: Clone, B: Clone, F: Clone, C: Clone, A: Clone, E: Cloneimpl<A, B, C, D, E, F, G, H, I> Clone for (A, B, C, D, E, F, G, H, I) where D: Clone, E: Clone, G: Clone, H: Clone, C: Clone, B: Clone, F: Clone, I: Clone, A: Cloneimpl<A, B, C, D, E, F, G, H, I, J> Clone for (A, B, C, D, E, F, G, H, I, J) where E: Clone, I: Clone, D: Clone, B: Clone, A: Clone, H: Clone, G: Clone, F: Clone, J: Clone, C: Cloneimpl<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 D: Clone, K: Clone, E: Clone, H: Clone, B: Clone, C: Clone, G: Clone, F: Clone, I: Clone, J: Clone, A: Cloneimpl<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 J: Clone, H: Clone, E: Clone, D: Clone, K: Clone, B: Clone, G: Clone, I: Clone, C: Clone, L: Clone, F: Clone, A: Cloneimpl<T> Clone for Box<T> where T: Cloneimpl<T> Clone for Arc<T>impl<T> Clone for Weak<T>impl<T> Clone for Rc<T> where T: ?Sizedimpl<T> Clone for Weak<T> where T: ?Sizedimpl<T> Clone for BinaryHeap<T> where T: Clone + Cloneimpl<'a, T> Clone for Iter<'a, T>impl Clone for BitVecimpl<'a> Clone for Iter<'a>impl Clone for BitSetimpl<'a> Clone for SetIter<'a>impl<'a> Clone for TwoBitPositions<'a>impl<'a> Clone for Union<'a>impl<'a> Clone for Intersection<'a>impl<'a> Clone for Difference<'a>impl<'a> Clone for SymmetricDifference<'a>impl<K, V> Clone for Node<K, V> where K: Clone, V: Cloneimpl<NodeRef, Type, NodeType> Clone for Handle<NodeRef, Type, NodeType> where NodeType: Clone + Clone, NodeRef: Clone + Clone, Type: Clone + Cloneimpl<Elems, Edges> Clone for ElemsAndEdges<Elems, Edges> where Elems: Clone + Clone, Edges: Clone + Cloneimpl<Impl> Clone for AbsTraversal<Impl> where Impl: Clone + Cloneimpl<K, V> Clone for BTreeMap<K, V> where V: Clone + Clone, K: Clone + Cloneimpl<T> Clone for AbsIter<T> where T: Clone + Cloneimpl<'a, K, V> Clone for Iter<'a, K, V>impl<'a, K, V> Clone for Keys<'a, K, V>impl<'a, K, V> Clone for Values<'a, K, V>impl<'a, K, V> Clone for Range<'a, K, V>impl<T> Clone for BTreeSet<T> where T: Clone + Cloneimpl<'a, T> Clone for Iter<'a, T>impl<'a, T> Clone for Range<'a, T>impl<'a, T> Clone for Difference<'a, T>impl<'a, T> Clone for SymmetricDifference<'a, T>impl<'a, T> Clone for Intersection<'a, T>impl<'a, T> Clone for Union<'a, T>impl<'a, B> Clone for Cow<'a, B> where B: ToOwned + ?Sizedimpl<E> Clone for EnumSet<E>impl<E> Clone for Iter<E>impl<'a, T> Clone for Iter<'a, T>impl<T> Clone for IntoIter<T> where T: Clone + Cloneimpl<T> Clone for Rawlink<T>impl<A> Clone for LinkedList<A> where A: Cloneimpl Clone for ElementSwapsimpl Clone for Directionimpl Clone for SizeDirectionimpl Clone for DecompositionTypeimpl<'a> Clone for Decompositions<'a>impl Clone for RecompositionStateimpl<'a> Clone for Recompositions<'a>impl<'a> Clone for Utf16Units<'a>impl Clone for Stringimpl Clone for ParseErrorimpl<T> Clone for Vec<T> where T: Cloneimpl<T> Clone for VecDeque<T> where T: Cloneimpl<'a, T> Clone for Iter<'a, T>impl<T> Clone for IntoIter<T> where T: Clone + Cloneimpl<V> Clone for VecMap<V> where V: Cloneimpl<'a, V> Clone for Iter<'a, V>impl<'a, V> Clone for Keys<'a, V>impl<'a, V> Clone for Values<'a, V>impl<T> Clone for Bound<T> where T: Clone + Clone + Cloneimpl Clone for GraphemeCatimpl<'a> Clone for GraphemeIndices<'a>impl<'a> Clone for Graphemes<'a>impl<'a> Clone for Utf16Items<'a>impl Clone for Utf16Itemimpl<I> Clone for Utf16Encoder<I> where I: Clone + Cloneimpl Clone for LocalKeyStateimpl Clone for Threadimpl<K: Clone, V: Clone, S: Clone> Clone for HashMap<K, V, S> where S: Clone, K: Clone, V: Cloneimpl<'a, K, V> Clone for Iter<'a, K, V>impl<'a, K, V> Clone for Keys<'a, K, V>impl<'a, K, V> Clone for Values<'a, K, V>impl Clone for RandomStateimpl<T: Clone, S: Clone> Clone for HashSet<T, S> where T: Clone, S: Cloneimpl<'a, K> Clone for Iter<'a, K>impl<'a, T, S> Clone for Intersection<'a, T, S>impl<'a, T, S> Clone for Difference<'a, T, S>impl<'a, T, S> Clone for SymmetricDifference<'a, T, S>impl<'a, T, S> Clone for Union<'a, T, S>impl<H> Clone for DefaultState<H>impl Clone for VarErrorimpl Clone for CStringimpl Clone for NulErrorimpl Clone for OsStringimpl Clone for OpenOptionsimpl Clone for Permissionsimpl Clone for FileTypeimpl<T: Clone> Clone for Cursor<T> where T: Cloneimpl Clone for ErrorKindimpl Clone for SeekFromimpl Clone for IpAddrimpl Clone for Ipv6MulticastScopeimpl Clone for Ipv4Addrimpl Clone for Ipv6Addrimpl Clone for SocketAddrimpl Clone for SocketAddrV4impl Clone for SocketAddrV6impl Clone for AddrParseErrorimpl Clone for Shutdownimpl<'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 Iter<'a>impl Clone for PathBufimpl Clone for Outputimpl Clone for ExitStatusimpl<T: Clone> Clone for SendError<T> where T: Cloneimpl Clone for RecvErrorimpl Clone for TryRecvErrorimpl<T: Clone> Clone for TrySendError<T> where T: Clone, T: Cloneimpl<T> Clone for Sender<T>impl<T> Clone for SyncSender<T>impl Clone for Durationimpl Clone for StandardNormalimpl Clone for Normalimpl Clone for LogNormalimpl Clone for Exp1impl Clone for Expimpl Clone for IsaacRngimpl Clone for Isaac64Rngimpl Clone for ChaChaRngimpl Clone for ReseedWithDefaultimpl Clone for XorShiftRngimpl Clone for ThreadRng