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

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

        pub 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 `derive`d 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 `derive`d, 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`:

- Function item types (i.e., the distinct types defined for each function)
- Function pointer types (e.g., `fn() -> i32`)
- Array types, for all sizes, if the item type also implements `Clone` (e.g., `[i32; 123456]`)
- Tuple types, if each component also implements `Clone` (e.g., `()`, `(i32, bool)`)
- Closure types, if they capture no value from the environment or if all such captured values implement `Clone` themselves. Note that variables captured by shared reference always implement `Clone` (even if the referent doesn’t), while variables captured by mutable reference never implement `Clone`.

## Required methods

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

Returns a copy of the value.

# Examples

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

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

Run
Loading content...

## Provided methods

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

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 __m128bh`[src]

#### `pub fn clone(&self) -> __m128bh`[src]

### `impl Clone for __m512`[src]

#### `pub fn clone(&self) -> __m512`[src]

### `impl Clone for __m128d`[src]

#### `pub fn clone(&self) -> __m128d`[src]

### `impl Clone for __m256d`[src]

#### `pub fn clone(&self) -> __m256d`[src]

### `impl Clone for __m256bh`[src]

#### `pub fn clone(&self) -> __m256bh`[src]

### `impl Clone for CpuidResult`[src]

#### `pub fn clone(&self) -> CpuidResult`[src]

### `impl<'a> Clone for EscapeAscii<'a>`[src]

#### `pub fn clone(&self) -> EscapeAscii<'a>ⓘ

### Notable traits for EscapeAscii<'a>

`impl<'a> Iterator for EscapeAscii<'a> type Item = u8;`
`[src]

### `impl Clone for __m512bh`[src]

#### `pub fn clone(&self) -> __m512bh`[src]

### `impl Clone for __m128`[src]

#### `pub fn clone(&self) -> __m128`[src]

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

#### `pub fn clone(&self) -> SplitInclusive<'_, T, P>ⓘ

### Notable traits for SplitInclusive<'a, T, P>

`impl<'a, T, P> Iterator for SplitInclusive<'a, T, P> where
P: FnMut(&T) -> bool, type Item = &'a [T];`
`[src]

### `impl Clone for __m512d`[src]

#### `pub fn clone(&self) -> __m512d`[src]

### `impl Clone for __m256i`[src]

#### `pub fn clone(&self) -> __m256i`[src]

### `impl Clone for __m256`[src]

#### `pub fn clone(&self) -> __m256`[src]

### `impl Clone for __m128i`[src]

#### `pub fn clone(&self) -> __m128i`[src]

### `impl Clone for __m512i`[src]

#### `pub fn clone(&self) -> __m512i`[src]

Loading content...

## Implementors

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

#### `pub fn clone(&self) -> Ordering`[src]

### `impl Clone for TryReserveError`[src]

#### `pub fn clone(&self) -> TryReserveError`[src]

### `impl Clone for Infallible` 1.34.0[src]

#### `pub fn clone(&self) -> Infallible`[src]

### `impl Clone for VarError`[src]

#### `fn clone(&self) -> VarError`[src]

### `impl Clone for ErrorKind`[src]

#### `fn clone(&self) -> ErrorKind`[src]

### `impl Clone for SeekFrom`[src]

#### `fn clone(&self) -> SeekFrom`[src]

### `impl Clone for IpAddr` 1.7.0[src]

#### `fn clone(&self) -> IpAddr`[src]

### `impl Clone for Ipv6MulticastScope`[src]

#### `fn clone(&self) -> Ipv6MulticastScope`[src]

### `impl Clone for Shutdown`[src]

#### `fn clone(&self) -> Shutdown`[src]

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

#### `fn clone(&self) -> SocketAddr`[src]

### `impl Clone for FpCategory`[src]

#### `pub fn clone(&self) -> FpCategory`[src]

### `impl Clone for IntErrorKind`[src]

#### `pub fn clone(&self) -> IntErrorKind`[src]

### `impl Clone for SearchStep`[src]

#### `pub fn clone(&self) -> SearchStep`[src]

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

#### `pub fn clone(&self) -> Ordering`[src]

### `impl Clone for RecvTimeoutError` 1.12.0[src]

#### `fn clone(&self) -> RecvTimeoutError`[src]

### `impl Clone for TryRecvError`[src]

#### `fn clone(&self) -> TryRecvError`[src]

### `impl Clone for bool`[src]

#### `pub fn clone(&self) -> bool`[src]

### `impl Clone for char`[src]

#### `pub fn clone(&self) -> char`[src]

### `impl Clone for f32`[src]

#### `pub fn clone(&self) -> f32`[src]

### `impl Clone for f64`[src]

#### `pub fn clone(&self) -> f64`[src]

### `impl Clone for i8`[src]

#### `pub fn clone(&self) -> i8`[src]

### `impl Clone for i16`[src]

#### `pub fn clone(&self) -> i16`[src]

### `impl Clone for i32`[src]

#### `pub fn clone(&self) -> i32`[src]

### `impl Clone for i64`[src]

#### `pub fn clone(&self) -> i64`[src]

### `impl Clone for i128`[src]

#### `pub fn clone(&self) -> i128`[src]

### `impl Clone for isize`[src]

#### `pub fn clone(&self) -> isize`[src]

### `impl Clone for !`[src]

#### `pub fn clone(&self) -> !`[src]

### `impl Clone for u8`[src]

#### `pub fn clone(&self) -> u8`[src]

### `impl Clone for u16`[src]

#### `pub fn clone(&self) -> u16`[src]

### `impl Clone for u32`[src]

#### `pub fn clone(&self) -> u32`[src]

### `impl Clone for u64`[src]

#### `pub fn clone(&self) -> u64`[src]

### `impl Clone for u128`[src]

#### `pub fn clone(&self) -> u128`[src]

### `impl Clone for usize`[src]

#### `pub fn clone(&self) -> usize`[src]

### `impl Clone for AllocError`[src]

#### `pub fn clone(&self) -> AllocError`[src]

### `impl Clone for Global`[src]

#### `pub fn clone(&self) -> Global`[src]

### `impl Clone for Layout` 1.28.0[src]

#### `pub fn clone(&self) -> Layout`[src]

### `impl Clone for LayoutError` 1.50.0[src]

#### `pub fn clone(&self) -> LayoutError`[src]

### `impl Clone for System` 1.28.0[src]

#### `fn clone(&self) -> System`[src]

### `impl Clone for TypeId`[src]

#### `pub fn clone(&self) -> TypeId`[src]

### `impl Clone for TryFromSliceError` 1.34.0[src]

#### `pub fn clone(&self) -> TryFromSliceError`[src]

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

#### `pub fn clone(&self) -> EscapeDefaultⓘ

### Notable traits for EscapeDefault

`impl Iterator for EscapeDefault type Item = u8;`
`[src]

### `impl Clone for Box<str, Global>`1.3.0[src]

#### `pub fn clone(&self) -> Box<str, Global>ⓘ

### Notable traits for Box<I, A>

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

### `impl Clone for Box<CStr>`1.29.0[src]

#### `fn clone(&self) -> Self`[src]

### `impl Clone for Box<OsStr>`1.29.0[src]

#### `fn clone(&self) -> Self`[src]

### `impl Clone for Box<Path>`1.29.0[src]

#### `fn clone(&self) -> Self`[src]

### `impl Clone for CharTryFromError` 1.34.0[src]

#### `pub fn clone(&self) -> CharTryFromError`[src]

### `impl Clone for DecodeUtf16Error` 1.9.0[src]

#### `pub fn clone(&self) -> DecodeUtf16Error`[src]

### `impl Clone for std::char::EscapeDebug` 1.20.0[src]

#### `pub fn clone(&self) -> EscapeDebugⓘ

### Notable traits for EscapeDebug

`impl Iterator for EscapeDebug type Item = char;`
`[src]

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

#### `pub fn clone(&self) -> EscapeDefaultⓘ

### Notable traits for EscapeDefault

`impl Iterator for EscapeDefault type Item = char;`
`[src]

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

#### `pub fn clone(&self) -> EscapeUnicodeⓘ

### Notable traits for EscapeUnicode

`impl Iterator for EscapeUnicode type Item = char;`
`[src]

### `impl Clone for ParseCharError` 1.20.0[src]

#### `pub fn clone(&self) -> ParseCharError`[src]

### `impl Clone for ToLowercase`[src]

#### `pub fn clone(&self) -> ToLowercaseⓘ

### Notable traits for ToLowercase

`impl Iterator for ToLowercase type Item = char;`
`[src]

### `impl Clone for ToUppercase`[src]

#### `pub fn clone(&self) -> ToUppercaseⓘ

### Notable traits for ToUppercase

`impl Iterator for ToUppercase type Item = char;`
`[src]

### `impl Clone for DefaultHasher` 1.13.0[src]

#### `fn clone(&self) -> DefaultHasher`[src]

### `impl Clone for RandomState` 1.7.0[src]

#### `fn clone(&self) -> RandomState`[src]

### `impl Clone for CString`[src]

#### `fn clone(&self) -> CString`[src]

### `impl Clone for FromBytesWithNulError` 1.10.0[src]

#### `fn clone(&self) -> FromBytesWithNulError`[src]

### `impl Clone for FromVecWithNulError`[src]

#### `fn clone(&self) -> FromVecWithNulError`[src]

### `impl Clone for IntoStringError` 1.7.0[src]

#### `fn clone(&self) -> IntoStringError`[src]

### `impl Clone for NulError`[src]

#### `fn clone(&self) -> NulError`[src]

### `impl Clone for OsString`[src]

#### `fn clone(&self) -> Self`[src]

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

### `impl Clone for Error`[src]

#### `pub fn clone(&self) -> Error`[src]

### `impl Clone for FileType` 1.1.0[src]

#### `fn clone(&self) -> FileType`[src]

### `impl Clone for Metadata`[src]

#### `fn clone(&self) -> Metadata`[src]

### `impl Clone for OpenOptions`[src]

#### `fn clone(&self) -> OpenOptions`[src]

### `impl Clone for Permissions`[src]

#### `fn clone(&self) -> Permissions`[src]

### `impl Clone for SipHasher`[src]

#### `pub fn clone(&self) -> SipHasher`[src]

### `impl Clone for PhantomPinned` 1.33.0[src]

#### `pub fn clone(&self) -> PhantomPinned`[src]

### `impl Clone for AddrParseError`[src]

#### `fn clone(&self) -> AddrParseError`[src]

### `impl Clone for Ipv4Addr`[src]

#### `fn clone(&self) -> Ipv4Addr`[src]

### `impl Clone for Ipv6Addr`[src]

#### `fn clone(&self) -> Ipv6Addr`[src]

### `impl Clone for SocketAddrV4`[src]

#### `fn clone(&self) -> SocketAddrV4`[src]

### `impl Clone for SocketAddrV6`[src]

#### `fn clone(&self) -> SocketAddrV6`[src]

### `impl Clone for NonZeroI8` 1.34.0[src]

#### `pub fn clone(&self) -> NonZeroI8`[src]

### `impl Clone for NonZeroI16` 1.34.0[src]

#### `pub fn clone(&self) -> NonZeroI16`[src]

### `impl Clone for NonZeroI32` 1.34.0[src]

#### `pub fn clone(&self) -> NonZeroI32`[src]

### `impl Clone for NonZeroI64` 1.34.0[src]

#### `pub fn clone(&self) -> NonZeroI64`[src]

### `impl Clone for NonZeroI128` 1.34.0[src]

#### `pub fn clone(&self) -> NonZeroI128`[src]

### `impl Clone for NonZeroIsize` 1.34.0[src]

#### `pub fn clone(&self) -> NonZeroIsize`[src]

### `impl Clone for NonZeroU8` 1.28.0[src]

#### `pub fn clone(&self) -> NonZeroU8`[src]

### `impl Clone for NonZeroU16` 1.28.0[src]

#### `pub fn clone(&self) -> NonZeroU16`[src]

### `impl Clone for NonZeroU32` 1.28.0[src]

#### `pub fn clone(&self) -> NonZeroU32`[src]

### `impl Clone for NonZeroU64` 1.28.0[src]

#### `pub fn clone(&self) -> NonZeroU64`[src]

### `impl Clone for NonZeroU128` 1.28.0[src]

#### `pub fn clone(&self) -> NonZeroU128`[src]

### `impl Clone for NonZeroUsize` 1.28.0[src]

#### `pub fn clone(&self) -> NonZeroUsize`[src]

### `impl Clone for ParseFloatError`[src]

#### `pub fn clone(&self) -> ParseFloatError`[src]

### `impl Clone for ParseIntError`[src]

#### `pub fn clone(&self) -> ParseIntError`[src]

### `impl Clone for TryFromIntError` 1.34.0[src]

#### `pub fn clone(&self) -> TryFromIntError`[src]

### `impl Clone for RangeFull`[src]

#### `pub fn clone(&self) -> RangeFull`[src]

### `impl Clone for NoneError`[src]

#### `pub fn clone(&self) -> NoneError`[src]

### `impl Clone for stat` 1.1.0[src]

This is supported on Linux only.

#### `fn clone(&self) -> stat`[src]

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

This is supported on Unix only.

#### `fn clone(&self) -> SocketAddr`[src]

### `impl Clone for SocketCred`[src]

This is supported on (Android or DragonFly BSD or Emscripten or FreeBSD or Linux or NetBSD or OpenBSD) and Unix only.

#### `fn clone(&self) -> SocketCred`[src]

### `impl Clone for UCred`[src]

This is supported on Unix only.

#### `fn clone(&self) -> UCred`[src]

### `impl Clone for PathBuf`[src]

#### `fn clone(&self) -> Self`[src]

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

### `impl Clone for StripPrefixError` 1.7.0[src]

#### `fn clone(&self) -> StripPrefixError`[src]

### `impl Clone for ExitCode`[src]

#### `fn clone(&self) -> ExitCode`[src]

### `impl Clone for ExitStatus`[src]

#### `fn clone(&self) -> ExitStatus`[src]

### `impl Clone for Output`[src]

#### `fn clone(&self) -> Output`[src]

### `impl Clone for TraitObject`[src]

#### `pub fn clone(&self) -> TraitObject`[src]

### `impl Clone for ParseBoolError`[src]

#### `pub fn clone(&self) -> ParseBoolError`[src]

### `impl Clone for Utf8Error`[src]

#### `pub fn clone(&self) -> Utf8Error`[src]

### `impl Clone for FromUtf8Error`[src]

#### `pub fn clone(&self) -> FromUtf8Error`[src]

### `impl Clone for String`[src]

#### `pub fn clone(&self) -> String`[src]

#### `pub fn clone_from(&mut self, source: &String)`[src]

### `impl Clone for RecvError`[src]

#### `fn clone(&self) -> RecvError`[src]

### `impl Clone for WaitTimeoutResult` 1.5.0[src]

#### `fn clone(&self) -> WaitTimeoutResult`[src]

### `impl Clone for RawWakerVTable` 1.36.0[src]

#### `pub fn clone(&self) -> RawWakerVTable`[src]

### `impl Clone for Waker` 1.36.0[src]

#### `pub fn clone(&self) -> Waker`[src]

### `impl Clone for AccessError` 1.26.0[src]

#### `fn clone(&self) -> AccessError`[src]

### `impl Clone for Thread`[src]

#### `fn clone(&self) -> Thread`[src]

### `impl Clone for ThreadId` 1.19.0[src]

#### `fn clone(&self) -> ThreadId`[src]

### `impl Clone for Duration` 1.3.0[src]

#### `pub fn clone(&self) -> Duration`[src]

### `impl Clone for Instant` 1.8.0[src]

#### `fn clone(&self) -> Instant`[src]

### `impl Clone for SystemTime` 1.8.0[src]

#### `fn clone(&self) -> SystemTime`[src]

### `impl Clone for SystemTimeError` 1.8.0[src]

#### `fn clone(&self) -> SystemTimeError`[src]

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

#### `pub fn clone(&self) -> Iter<'_, A>ⓘ

### Notable traits for Iter<'a, A>

`impl<'a, A> Iterator for Iter<'a, A> type Item = &'a A;`
`[src]

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

#### `pub fn clone(&self) -> Cow<'_, B>`[src]

#### `pub fn clone_from(&mut self, source: &Cow<'_, B>)`[src]

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

#### `pub fn clone(&self) -> Iter<'_, K, V>ⓘ

### Notable traits for Iter<'a, K, V>

`impl<'a, K, V> Iterator for Iter<'a, K, V> where
K: 'a,
V: 'a, type Item = (&'a K, &'a V);`
`[src]

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

#### `pub fn clone(&self) -> Keys<'_, K, V>ⓘ

### Notable traits for Keys<'a, K, V>

`impl<'a, K, V> Iterator for Keys<'a, K, V> type Item = &'a K;`
`[src]

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

#### `pub fn clone(&self) -> Range<'_, K, V>ⓘ

### Notable traits for Range<'a, K, V>

`impl<'a, K, V> Iterator for Range<'a, K, V> type Item = (&'a K, &'a V);`
`[src]

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

#### `pub fn clone(&self) -> Values<'_, K, V>ⓘ

### Notable traits for Values<'a, K, V>

`impl<'a, K, V> Iterator for Values<'a, K, V> type Item = &'a V;`
`[src]

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

Shared references can be cloned, but mutable references cannot!

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

Shared references can be cloned, but mutable references cannot!

#### `pub fn clone(&self) -> &'_ Tⓘ

### Notable traits for &'_ mut I

`impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for &mut Rimpl<W: Write + ?Sized> Write for &mut W`
`[src]

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

#### `pub fn clone(&self) -> Iter<'_, T>ⓘ

### Notable traits for Iter<'a, T>

`impl<'a, T> Iterator for Iter<'a, T> type Item = &'a T;`
`[src]

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

#### `pub fn clone(&self) -> Difference<'_, T>ⓘ

### Notable traits for Difference<'a, T>

`impl<'a, T> Iterator for Difference<'a, T> where
T: Ord, type Item = &'a T;`
`[src]

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

#### `pub fn clone(&self) -> Intersection<'_, T>ⓘ

### Notable traits for Intersection<'a, T>

`impl<'a, T> Iterator for Intersection<'a, T> where
T: Ord, type Item = &'a T;`
`[src]

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

#### `pub fn clone(&self) -> Iter<'_, T>ⓘ

### Notable traits for Iter<'a, T>

`impl<'a, T> Iterator for Iter<'a, T> type Item = &'a T;`
`[src]

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

#### `pub fn clone(&self) -> Range<'_, T>ⓘ

### Notable traits for Range<'a, T>

`impl<'a, T> Iterator for Range<'a, T> type Item = &'a T;`
`[src]

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

#### `pub fn clone(&self) -> SymmetricDifference<'_, T>ⓘ

### Notable traits for SymmetricDifference<'a, T>

`impl<'a, T> Iterator for SymmetricDifference<'a, T> where
T: Ord, type Item = &'a T;`
`[src]

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

#### `pub fn clone(&self) -> Union<'_, T>ⓘ

### Notable traits for Union<'a, T>

`impl<'a, T> Iterator for Union<'a, T> where
T: Ord, type Item = &'a T;`
`[src]

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

#### `pub fn clone(&self) -> Cursor<'_, T>`[src]

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

#### `pub fn clone(&self) -> Iter<'_, T>ⓘ

### Notable traits for Iter<'a, T>

`impl<'a, T> Iterator for Iter<'a, T> type Item = &'a T;`
`[src]

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

#### `pub fn clone(&self) -> Iter<'_, T>ⓘ

### Notable traits for Iter<'a, T>

`impl<'a, T> Iterator for Iter<'a, T> type Item = &'a T;`
`[src]

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

#### `pub fn clone(&self) -> Iter<'_, T>ⓘ

### Notable traits for Iter<'a, T>

`impl<'a, T> Iterator for Iter<'a, T> type Item = &'a T;`
`[src]

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

#### `pub fn clone(&self) -> Chunks<'_, T>ⓘ

### Notable traits for Chunks<'a, T>

`impl<'a, T> Iterator for Chunks<'a, T> type Item = &'a [T];`
`[src]

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

#### `pub fn clone(&self) -> ChunksExact<'_, T>ⓘ

### Notable traits for ChunksExact<'a, T>

`impl<'a, T> Iterator for ChunksExact<'a, T> type Item = &'a [T];`
`[src]

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

#### `pub fn clone(&self) -> Iter<'_, T>ⓘ

### Notable traits for Iter<'a, T>

`impl<'a, T> Iterator for Iter<'a, T> type Item = &'a T;`
`[src]

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

#### `pub fn clone(&self) -> RChunks<'_, T>ⓘ

### Notable traits for RChunks<'a, T>

`impl<'a, T> Iterator for RChunks<'a, T> type Item = &'a [T];`
`[src]

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

#### `pub fn clone(&self) -> Windows<'_, T>ⓘ

### Notable traits for Windows<'a, T>

`impl<'a, T> Iterator for Windows<'a, T> type Item = &'a [T];`
`[src]

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

#### `pub fn clone(&self) -> Split<'_, T, P>ⓘ

### Notable traits for Split<'a, T, P>

`impl<'a, T, P> Iterator for Split<'a, T, P> where
P: FnMut(&T) -> bool, type Item = &'a [T];`
`[src]

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

#### `pub fn clone(&self) -> ArrayChunks<'_, T, N>ⓘ

### Notable traits for ArrayChunks<'a, T, N>

`impl<'a, T, const N: usize> Iterator for ArrayChunks<'a, T, N> type Item = &'a [T; N];`
`[src]

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

#### `fn clone(&self) -> Component<'a>`[src]

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

#### `fn clone(&self) -> Prefix<'a>`[src]

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

#### `fn clone(&self) -> Chain<'a>ⓘ

### Notable traits for Chain<'a>

`impl<'a> Iterator for Chain<'a> type Item = &'a (dyn Error + 'static);`
`[src]

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

#### `pub fn clone(&self) -> Arguments<'a>`[src]

### `impl<'a> Clone for IoSlice<'a>`1.36.0[src]

#### `fn clone(&self) -> IoSlice<'a>`[src]

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

#### `fn clone(&self) -> EncodeWide<'a>ⓘ

### Notable traits for EncodeWide<'a>

`impl<'a> Iterator for EncodeWide<'a> type Item = u16;`
`[src]

### `impl<'a> Clone for Location<'a>`1.10.0[src]

#### `pub fn clone(&self) -> Location<'a>`[src]

### `impl<'a> Clone for Ancestors<'a>`1.28.0[src]

#### `fn clone(&self) -> Ancestors<'a>ⓘ

### Notable traits for Ancestors<'a>

`impl<'a> Iterator for Ancestors<'a> type Item = &'a Path;`
`[src]

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

#### `fn clone(&self) -> Components<'a>ⓘ

### Notable traits for Components<'a>

`impl<'a> Iterator for Components<'a> type Item = Component<'a>;`
`[src]

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

#### `fn clone(&self) -> Iter<'a>ⓘ

### Notable traits for Iter<'a>

`impl<'a> Iterator for Iter<'a> type Item = &'a OsStr;`
`[src]

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

#### `fn clone(&self) -> PrefixComponent<'a>`[src]

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

#### `pub fn clone(&self) -> CharSearcher<'a>`[src]

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

#### `pub fn clone(&self) -> Bytes<'a>ⓘ

### Notable traits for Bytes<'_>

`impl<'_> Iterator for Bytes<'_> type Item = u8;`
`[src]

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

#### `pub fn clone(&self) -> CharIndices<'a>ⓘ

### Notable traits for CharIndices<'a>

`impl<'a> Iterator for CharIndices<'a> type Item = (usize, char);`
`[src]

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

#### `pub fn clone(&self) -> Chars<'a>ⓘ

### Notable traits for Chars<'a>

`impl<'a> Iterator for Chars<'a> type Item = char;`
`[src]

### `impl<'a> Clone for EncodeUtf16<'a>`1.8.0[src]

#### `pub fn clone(&self) -> EncodeUtf16<'a>ⓘ

### Notable traits for EncodeUtf16<'a>

`impl<'a> Iterator for EncodeUtf16<'a> type Item = u16;`
`[src]

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

#### `pub fn clone(&self) -> EscapeDebug<'a>ⓘ

### Notable traits for EscapeDebug<'a>

`impl<'a> Iterator for EscapeDebug<'a> type Item = char;`
`[src]

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

#### `pub fn clone(&self) -> EscapeDefault<'a>ⓘ

### Notable traits for EscapeDefault<'a>

`impl<'a> Iterator for EscapeDefault<'a> type Item = char;`
`[src]

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

#### `pub fn clone(&self) -> EscapeUnicode<'a>ⓘ

### Notable traits for EscapeUnicode<'a>

`impl<'a> Iterator for EscapeUnicode<'a> type Item = char;`
`[src]

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

#### `pub fn clone(&self) -> Lines<'a>ⓘ

### Notable traits for Lines<'a>

`impl<'a> Iterator for Lines<'a> type Item = &'a str;`
`[src]

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

#### `pub fn clone(&self) -> LinesAny<'a>ⓘ

### Notable traits for LinesAny<'a>

`impl<'a> Iterator for LinesAny<'a> type Item = &'a str;`
`[src]

### `impl<'a> Clone for SplitAsciiWhitespace<'a>`1.34.0[src]

#### `pub fn clone(&self) -> SplitAsciiWhitespace<'a>ⓘ

### Notable traits for SplitAsciiWhitespace<'a>

`impl<'a> Iterator for SplitAsciiWhitespace<'a> type Item = &'a str;`
`[src]

### `impl<'a> Clone for SplitWhitespace<'a>`1.1.0[src]

#### `pub fn clone(&self) -> SplitWhitespace<'a>ⓘ

### Notable traits for SplitWhitespace<'a>

`impl<'a> Iterator for SplitWhitespace<'a> type Item = &'a str;`
`[src]

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

#### `pub fn clone(&self) -> CharSliceSearcher<'a, 'b>`[src]

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

#### `pub fn clone(&self) -> StrSearcher<'a, 'b>`[src]

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

#### `pub fn clone(&self) -> CharPredicateSearcher<'a, F>`[src]

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

#### `pub fn clone(&self) -> MatchIndices<'a, P>ⓘ

### Notable traits for MatchIndices<'a, P>

`impl<'a, P> Iterator for MatchIndices<'a, P> where
P: Pattern<'a>, type Item = (usize, &'a str);`
`[src]

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

#### `pub fn clone(&self) -> Matches<'a, P>ⓘ

### Notable traits for Matches<'a, P>

`impl<'a, P> Iterator for Matches<'a, P> where
P: Pattern<'a>, type Item = &'a str;`
`[src]

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

#### `pub fn clone(&self) -> RMatchIndices<'a, P>ⓘ

### Notable traits for RMatchIndices<'a, P>

`impl<'a, P> Iterator for RMatchIndices<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: ReverseSearcher<'a>, type Item = (usize, &'a str);`
`[src]

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

#### `pub fn clone(&self) -> RMatches<'a, P>ⓘ

### Notable traits for RMatches<'a, P>

`impl<'a, P> Iterator for RMatches<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: ReverseSearcher<'a>, type Item = &'a str;`
`[src]

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

#### `pub fn clone(&self) -> RSplit<'a, P>ⓘ

### Notable traits for RSplit<'a, P>

`impl<'a, P> Iterator for RSplit<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: ReverseSearcher<'a>, type Item = &'a str;`
`[src]

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

#### `pub fn clone(&self) -> RSplitN<'a, P>ⓘ

### Notable traits for RSplitN<'a, P>

`impl<'a, P> Iterator for RSplitN<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: ReverseSearcher<'a>, type Item = &'a str;`
`[src]

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

#### `pub fn clone(&self) -> RSplitTerminator<'a, P>ⓘ

### Notable traits for RSplitTerminator<'a, P>

`impl<'a, P> Iterator for RSplitTerminator<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: ReverseSearcher<'a>, type Item = &'a str;`
`[src]

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

#### `pub fn clone(&self) -> Split<'a, P>ⓘ

### Notable traits for Split<'a, P>

`impl<'a, P> Iterator for Split<'a, P> where
P: Pattern<'a>, type Item = &'a str;`
`[src]

### `impl<'a, P> Clone for std::str::SplitInclusive<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Clone,` 1.51.0[src]

#### `pub fn clone(&self) -> SplitInclusive<'a, P>ⓘ

### Notable traits for SplitInclusive<'a, P>

`impl<'a, P> Iterator for SplitInclusive<'a, P> where
P: Pattern<'a>, type Item = &'a str;`
`[src]

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

#### `pub fn clone(&self) -> SplitN<'a, P>ⓘ

### Notable traits for SplitN<'a, P>

`impl<'a, P> Iterator for SplitN<'a, P> where
P: Pattern<'a>, type Item = &'a str;`
`[src]

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

#### `pub fn clone(&self) -> SplitTerminator<'a, P>ⓘ

### Notable traits for SplitTerminator<'a, P>

`impl<'a, P> Iterator for SplitTerminator<'a, P> where
P: Pattern<'a>, type Item = &'a str;`
`[src]

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

#### `pub fn clone(&self) -> RChunksExact<'a, T>ⓘ

### Notable traits for RChunksExact<'a, T>

`impl<'a, T> Iterator for RChunksExact<'a, T> type Item = &'a [T];`
`[src]

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

#### `pub fn clone(&self) -> RSplit<'a, T, P>ⓘ

### Notable traits for RSplit<'a, T, P>

`impl<'a, T, P> Iterator for RSplit<'a, T, P> where
P: FnMut(&T) -> bool, type Item = &'a [T];`
`[src]

### `impl<'a, T, const N: usize> Clone for ArrayWindows<'a, T, N> where
T: 'a + Clone,` [src]

#### `pub fn clone(&self) -> ArrayWindows<'a, T, N>ⓘ

### Notable traits for ArrayWindows<'a, T, N>

`impl<'a, T, const N: usize> Iterator for ArrayWindows<'a, T, N> type Item = &'a [T; N];`
`[src]

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

#### `pub fn clone(&self) -> VaListImpl<'f>`[src]

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

#### `pub fn clone(&self) -> Repeat<A>ⓘ

### Notable traits for Repeat<A>

`impl<A> Iterator for Repeat<A> where
A: Clone, type Item = A;`
`[src]

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

#### `pub fn clone(&self) -> IntoIter<A>ⓘ

### Notable traits for IntoIter<A>

`impl<A> Iterator for IntoIter<A> type Item = A;`
`[src]

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

#### `pub fn clone(&self) -> Chain<A, B>ⓘ

### Notable traits for Chain<A, B>

`impl<A, B> Iterator for Chain<A, B> where
B: Iterator<Item = <A as Iterator>::Item>,
A: Iterator, type Item = <A as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> Zip<A, B>ⓘ

### Notable traits for Zip<A, B>

`impl<A, B> Iterator for Zip<A, B> where
B: Iterator,
A: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item);`
`[src]

### `impl<B, C> Clone for ControlFlow<B, C> where
C: Clone,
B: Clone,` [src]

#### `pub fn clone(&self) -> ControlFlow<B, C>`[src]

### `impl<Dyn> Clone for DynMetadata<Dyn> where
Dyn: ?Sized,` [src]

#### `pub fn clone(&self) -> DynMetadata<Dyn>`[src]

### `impl<F> Clone for FromFn<F> where
F: Clone,` 1.34.0[src]

#### `pub fn clone(&self) -> FromFn<F>ⓘ

### Notable traits for FromFn<F>

`impl<T, F> Iterator for FromFn<F> where
F: FnMut() -> Option<T>, type Item = T;`
`[src]

### `impl<F> Clone for OnceWith<F> where
F: Clone,` 1.43.0[src]

#### `pub fn clone(&self) -> OnceWith<F>ⓘ

### Notable traits for OnceWith<F>

`impl<A, F> Iterator for OnceWith<F> where
F: FnOnce() -> A, type Item = A;`
`[src]

### `impl<F> Clone for RepeatWith<F> where
F: Clone,` 1.28.0[src]

#### `pub fn clone(&self) -> RepeatWith<F>ⓘ

### Notable traits for RepeatWith<F>

`impl<A, F> Iterator for RepeatWith<F> where
F: FnMut() -> A, type Item = A;`
`[src]

### `impl<H> Clone for BuildHasherDefault<H>`1.7.0[src]

#### `pub fn clone(&self) -> BuildHasherDefault<H>`[src]

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

#### `pub fn clone(&self) -> DecodeUtf16<I>ⓘ

### Notable traits for DecodeUtf16<I>

`impl<I> Iterator for DecodeUtf16<I> where
I: Iterator<Item = u16>, type Item = Result<char, DecodeUtf16Error>;`
`[src]

### `impl<I> Clone for Cloned<I> where
I: Clone,` 1.1.0[src]

#### `pub fn clone(&self) -> Cloned<I>ⓘ

### Notable traits for Cloned<I>

`impl<'a, I, T> Iterator for Cloned<I> where
T: 'a + Clone,
I: Iterator<Item = &'a T>, type Item = T;`
`[src]

### `impl<I> Clone for Copied<I> where
I: Clone,` 1.36.0[src]

#### `pub fn clone(&self) -> Copied<I>ⓘ

### Notable traits for Copied<I>

`impl<'a, I, T> Iterator for Copied<I> where
T: 'a + Copy,
I: Iterator<Item = &'a T>, type Item = T;`
`[src]

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

#### `pub fn clone(&self) -> Cycle<I>ⓘ

### Notable traits for Cycle<I>

`impl<I> Iterator for Cycle<I> where
I: Clone + Iterator, type Item = <I as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> Enumerate<I>ⓘ

### Notable traits for Enumerate<I>

`impl<I> Iterator for Enumerate<I> where
I: Iterator, type Item = (usize, <I as Iterator>::Item);`
`[src]

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

#### `pub fn clone(&self) -> Fuse<I>ⓘ

### Notable traits for Fuse<I>

`impl<I> Iterator for Fuse<I> where
I: Iterator, type Item = <I as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> Intersperse<I>ⓘ

### Notable traits for Intersperse<I>

`impl<I> Iterator for Intersperse<I> where
I: Iterator,
<I as Iterator>::Item: Clone, type Item = <I as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> Peekable<I>ⓘ

### Notable traits for Peekable<I>

`impl<I> Iterator for Peekable<I> where
I: Iterator, type Item = <I as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> Skip<I>ⓘ

### Notable traits for Skip<I>

`impl<I> Iterator for Skip<I> where
I: Iterator, type Item = <I as Iterator>::Item;`
`[src]

### `impl<I> Clone for StepBy<I> where
I: Clone,` 1.28.0[src]

#### `pub fn clone(&self) -> StepBy<I>ⓘ

### Notable traits for StepBy<I>

`impl<I> Iterator for StepBy<I> where
I: Iterator, type Item = <I as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> Take<I>ⓘ

### Notable traits for Take<I>

`impl<I> Iterator for Take<I> where
I: Iterator, type Item = <I as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> FilterMap<I, F>ⓘ

### Notable traits for FilterMap<I, F>

`impl<B, I, F> Iterator for FilterMap<I, F> where
F: FnMut(<I as Iterator>::Item) -> Option<B>,
I: Iterator, type Item = B;`
`[src]

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

#### `pub fn clone(&self) -> Inspect<I, F>ⓘ

### Notable traits for Inspect<I, F>

`impl<I, F> Iterator for Inspect<I, F> where
F: FnMut(&<I as Iterator>::Item),
I: Iterator, type Item = <I as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> Map<I, F>ⓘ

### Notable traits for Map<I, F>

`impl<B, I, F> Iterator for Map<I, F> where
F: FnMut(<I as Iterator>::Item) -> B,
I: Iterator, type Item = B;`
`[src]

### `impl<I, G> Clone for IntersperseWith<I, G> where
I: Iterator + Clone,
G: Clone,
<I as Iterator>::Item: Clone,` [src]

#### `pub fn clone(&self) -> IntersperseWith<I, G>ⓘ

### Notable traits for IntersperseWith<I, G>

`impl<I, G> Iterator for IntersperseWith<I, G> where
I: Iterator,
G: FnMut() -> <I as Iterator>::Item, type Item = <I as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> Filter<I, P>ⓘ

### Notable traits for Filter<I, P>

`impl<I, P> Iterator for Filter<I, P> where
I: Iterator,
P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> MapWhile<I, P>ⓘ

### Notable traits for MapWhile<I, P>

`impl<B, I, P> Iterator for MapWhile<I, P> where
I: Iterator,
P: FnMut(<I as Iterator>::Item) -> Option<B>, type Item = B;`
`[src]

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

#### `pub fn clone(&self) -> SkipWhile<I, P>ⓘ

### Notable traits for SkipWhile<I, P>

`impl<I, P> Iterator for SkipWhile<I, P> where
I: Iterator,
P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> TakeWhile<I, P>ⓘ

### Notable traits for TakeWhile<I, P>

`impl<I, P> Iterator for TakeWhile<I, P> where
I: Iterator,
P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> Scan<I, St, F>ⓘ

### Notable traits for Scan<I, St, F>

`impl<B, I, St, F> Iterator for Scan<I, St, F> where
F: FnMut(&mut St, <I as Iterator>::Item) -> Option<B>,
I: Iterator, type Item = B;`
`[src]

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

#### `pub fn clone(&self) -> Flatten<I>ⓘ

### Notable traits for Flatten<I>

`impl<I, U> Iterator for Flatten<I> where
I: Iterator,
U: Iterator,
<I as Iterator>::Item: IntoIterator,
<<I as Iterator>::Item as IntoIterator>::IntoIter == U,
<<I as Iterator>::Item as IntoIterator>::Item == <U as Iterator>::Item, type Item = <U as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> FlatMap<I, U, F>ⓘ

### Notable traits for FlatMap<I, U, F>

`impl<I, U, F> Iterator for FlatMap<I, U, F> where
F: FnMut(<I as Iterator>::Item) -> U,
I: Iterator,
U: IntoIterator, type Item = <U as IntoIterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> Range<Idx>ⓘ

### Notable traits for Range<A>

`impl<A> Iterator for Range<A> where
A: Step, type Item = A;`
`[src]

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

#### `pub fn clone(&self) -> RangeFrom<Idx>ⓘ

### Notable traits for RangeFrom<A>

`impl<A> Iterator for RangeFrom<A> where
A: Step, type Item = A;`
`[src]

### `impl<Idx> Clone for RangeInclusive<Idx> where
Idx: Clone,` 1.26.0[src]

#### `pub fn clone(&self) -> RangeInclusive<Idx>ⓘ

### Notable traits for RangeInclusive<A>

`impl<A> Iterator for RangeInclusive<A> where
A: Step, type Item = A;`
`[src]

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

#### `pub fn clone(&self) -> RangeTo<Idx>`[src]

### `impl<Idx> Clone for RangeToInclusive<Idx> where
Idx: Clone,` 1.26.0[src]

#### `pub fn clone(&self) -> RangeToInclusive<Idx>`[src]

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

#### `fn clone(&self) -> Self`[src]

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

#### `fn clone(&self) -> Self`[src]

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

#### `fn clone(&self) -> Self`[src]

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

#### `fn clone(&self) -> Self`[src]

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

#### `pub fn clone(&self) -> BTreeMap<K, V>`[src]

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

#### `fn clone(&self) -> Self`[src]

#### `fn clone_from(&mut self, other: &Self)`[src]

### `impl<P> Clone for Pin<P> where
P: Clone,` 1.33.0[src]

#### `pub fn clone(&self) -> Pin<P>ⓘ

### Notable traits for Pin<P>

`impl<P> Future for Pin<P> where
P: Unpin + DerefMut,
<P as Deref>::Target: Future, type Output = <<P as Deref>::Target as Future>::Output;`
`[src]

### `impl<T> Clone for Bound<T> where
T: Clone,` 1.17.0[src]

#### `pub fn clone(&self) -> Bound<T>`[src]

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

#### `pub fn clone(&self) -> Option<T>`[src]

#### `pub fn clone_from(&mut self, source: &Option<T>)`[src]

### `impl<T> Clone for Poll<T> where
T: Clone,` 1.36.0[src]

#### `pub fn clone(&self) -> Poll<T>`[src]

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

#### `pub fn clone(&self) -> *const T`[src]

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

#### `pub fn clone(&self) -> *mut T`[src]

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

#### `pub fn clone(&self) -> Cell<T>`[src]

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

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

# Panics

Panics if the value is currently mutably borrowed.

### `impl<T> Clone for Reverse<T> where
T: Clone,` 1.19.0[src]

#### `pub fn clone(&self) -> Reverse<T>`[src]

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

#### `pub fn clone(&self) -> IntoIter<T>ⓘ

### Notable traits for IntoIter<T>

`impl<T> Iterator for IntoIter<T> type Item = T;`
`[src]

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

#### `pub fn clone(&self) -> IntoIterSorted<T>ⓘ

### Notable traits for IntoIterSorted<T>

`impl<T> Iterator for IntoIterSorted<T> where
T: Ord, type Item = T;`
`[src]

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

#### `pub fn clone(&self) -> IntoIter<T>ⓘ

### Notable traits for IntoIter<T>

`impl<T> Iterator for IntoIter<T> type Item = T;`
`[src]

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

#### `pub fn clone(&self) -> BTreeSet<T>`[src]

#### `pub fn clone_from(&mut self, other: &BTreeSet<T>)`[src]

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

#### `pub fn clone(&self) -> BinaryHeap<T>`[src]

#### `pub fn clone_from(&mut self, source: &BinaryHeap<T>)`[src]

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

#### `pub fn clone(&self) -> LinkedList<T>`[src]

#### `pub fn clone_from(&mut self, other: &LinkedList<T>)`[src]

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

#### `pub fn clone(&self) -> VecDeque<T>`[src]

#### `pub fn clone_from(&mut self, other: &VecDeque<T>)`[src]

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

#### `pub fn clone(&self) -> IntoIter<T>ⓘ

### Notable traits for IntoIter<T>

`impl<T> Iterator for IntoIter<T> type Item = T;`
`[src]

### `impl<T> Clone for Pending<T>`1.48.0[src]

#### `pub fn clone(&self) -> Pending<T>ⓘ

### Notable traits for Pending<T>

`impl<T> Future for Pending<T> type Output = T;`
`[src]

### `impl<T> Clone for Ready<T> where
T: Clone,` 1.48.0[src]

#### `pub fn clone(&self) -> Ready<T>ⓘ

### Notable traits for Ready<T>

`impl<T> Future for Ready<T> type Output = T;`
`[src]

### `impl<T> Clone for Empty<T>`1.2.0[src]

#### `pub fn clone(&self) -> Empty<T>ⓘ

### Notable traits for Empty<T>

`impl<T> Iterator for Empty<T> type Item = T;`
`[src]

### `impl<T> Clone for Once<T> where
T: Clone,` 1.2.0[src]

#### `pub fn clone(&self) -> Once<T>ⓘ

### Notable traits for Once<T>

`impl<T> Iterator for Once<T> type Item = T;`
`[src]

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

#### `pub fn clone(&self) -> Rev<T>ⓘ

### Notable traits for Rev<I>

`impl<I> Iterator for Rev<I> where
I: DoubleEndedIterator, type Item = <I as Iterator>::Item;`
`[src]

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

#### `pub fn clone(&self) -> OnceCell<T>`[src]

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

#### `pub fn clone(&self) -> PhantomData<T>`[src]

### `impl<T> Clone for Discriminant<T>`1.21.0[src]

#### `pub fn clone(&self) -> Discriminant<T>`[src]

### `impl<T> Clone for ManuallyDrop<T> where
T: Clone + ?Sized,` 1.20.0[src]

#### `pub fn clone(&self) -> ManuallyDrop<T>`[src]

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

#### `pub fn clone(&self) -> Wrapping<T>`[src]

### `impl<T> Clone for NonNull<T> where
T: ?Sized,` 1.25.0[src]

#### `pub fn clone(&self) -> NonNull<T>`[src]

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

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

Makes a clone of the `Rc` pointer.

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

# Examples

    use std::rc::Rc;

    let five = Rc::new(5);

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

Run

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

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

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

# Examples

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

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

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

Run

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

#### `pub fn clone(&self) -> IntoIter<T>ⓘ

### Notable traits for IntoIter<T>

`impl<T> Iterator for IntoIter<T> type Item = T;`
`[src]

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

#### `fn clone(&self) -> Sender<T>`[src]

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

#### `fn clone(&self) -> SyncSender<T>`[src]

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

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

Makes a clone of the `Arc` pointer.

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

# Examples

    use std::sync::Arc;

    let five = Arc::new(5);

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

Run

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

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

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

# Examples

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

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

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

Run

### `impl<T> Clone for MaybeUninit<T> where
T: Copy,` 1.36.0[src]

#### `pub fn clone(&self) -> MaybeUninit<T>`[src]

### `impl<T, A> Clone for Box<[T], A> where
T: Clone,
A: Allocator + Clone,` 1.3.0[src]

#### `pub fn clone(&self) -> Box<[T], A>ⓘ

### Notable traits for Box<I, A>

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

#### `pub fn clone_from(&mut self, other: &Box<[T], A>)`[src]

### `impl<T, A> Clone for Box<T, A> where
T: Clone,
A: Allocator + Clone,` [src]

#### `pub fn clone(&self) -> Box<T, A>ⓘ

### Notable traits for Box<I, A>

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

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

# Examples

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

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

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

Run

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

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

# Examples

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

    y.clone_from(&x);

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

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

Run

### `impl<T, A> Clone for std::vec::IntoIter<T, A> where
T: Clone,
A: Allocator + Clone,` 1.8.0[src]

#### `pub fn clone(&self) -> IntoIter<T, A>ⓘ

### Notable traits for IntoIter<T, A>

`impl<T, A> Iterator for IntoIter<T, A> where
A: Allocator, type Item = T;`
`[src]

### `impl<T, A> Clone for Vec<T, A> where
T: Clone,
A: Allocator + Clone,` [src]

#### `pub fn clone(&self) -> Vec<T, A>ⓘ

### Notable traits for Vec<u8, A>

`impl<A: Allocator> Write for Vec<u8, A>`
`[src]

#### `pub fn clone_from(&mut self, other: &Vec<T, A>)`[src]

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

#### `pub fn clone(&self) -> Result<T, E>`[src]

#### `pub fn clone_from(&mut self, source: &Result<T, E>)`[src]

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

#### `pub fn clone(&self) -> Successors<T, F>ⓘ

### Notable traits for Successors<T, F>

`impl<T, F> Iterator for Successors<T, F> where
F: FnMut(&T) -> Option<T>, type Item = T;`
`[src]

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

#### `fn clone(&self) -> Self`[src]

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

#### `fn clone(&self) -> Self`[src]

#### `fn clone_from(&mut self, other: &Self)`[src]

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

#### `fn clone(&self) -> Self`[src]

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

#### `fn clone(&self) -> Self`[src]

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

#### `fn clone(&self) -> Self`[src]

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

#### `pub fn clone(&self) -> IntoIter<T, N>ⓘ

### Notable traits for IntoIter<T, N>

`impl<T, const N: usize> Iterator for IntoIter<T, N> type Item = T;`
`[src]

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

#### `fn clone(&self) -> TrySendError<T>`[src]

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

#### `fn clone(&self) -> Cursor<T>ⓘ

### Notable traits for Cursor<T>

`impl<T> Read for Cursor<T> where
T: AsRef<[u8]>, impl Write for Cursor<&mut [u8]>impl Write for Cursor<&mut Vec<u8>>impl Write for Cursor<Vec<u8>>impl Write for Cursor<Box<[u8]>>`
`[src]

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

#### `fn clone(&self) -> SyncOnceCell<T>`[src]

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

#### `fn clone(&self) -> SendError<T>`[src]

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

#### `pub fn clone(&self) -> GeneratorState<Y, R>`[src]

Loading content...