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

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

        fn clone_from(&mut self, source: &Self) { ... }
    }

A common trait for the ability to explicitly duplicate an object.

Differs from `Copy` in that `Copy` is implicit and extremely inexpensive, while `Clone` is always explicit and may or may not be expensive. In order to enforce these characteristics, Rust does not allow you to reimplement `Copy`, but you may reimplement `Clone` and run arbitrary code.

Since `Clone` is more general than `Copy`, you can automatically make anything `Copy` be `Clone` as well.

## Derivable

This trait can be used with `#[derive]` if all fields are `Clone`. The `derive`d 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 `derive`d, but can be implemented as:

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

    impl Clone for Stats {
        fn clone(&self) -> Stats { *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"]
fn clone(&self) -> Self`

Returns a copy of the value.

# Examples

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

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

## Provided Methods

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

Performs copy-assignment from `source`.

`a.clone_from(&b)` is equivalent to `a = b.clone()` in functionality, but can be overridden to reuse the resources of `a` to avoid unnecessary allocations.

## Implementors

###

`impl Clone for !`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for core::cmp::Ordering`

[src]

####

`fn clone(&self) -> Ordering`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for FpCategory`

[src]

####

`fn clone(&self) -> FpCategory`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for SearchStep`

[src]

####

`fn clone(&self) -> SearchStep`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for core::sync::atomic::Ordering`

[src]

####

`fn clone(&self) -> Ordering`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for AllocErr`

[src]

####

`fn clone(&self) -> AllocErr`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for CannotReallocInPlace`

[src]

####

`fn clone(&self) -> CannotReallocInPlace`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for Layout`

[src]

####

`fn clone(&self) -> Layout`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for LayoutErr`

[src]

####

`fn clone(&self) -> LayoutErr`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for TypeId`

[src]

####

`fn clone(&self) -> TypeId`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for float64x1_t`

[src]

####

`fn clone(&self) -> float64x1_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for float64x2_t`

[src]

####

`fn clone(&self) -> float64x2_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for float32x2_t`

[src]

####

`fn clone(&self) -> float32x2_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for float32x4_t`

[src]

####

`fn clone(&self) -> float32x4_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for int16x2_t`

[src]

####

`fn clone(&self) -> int16x2_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for int16x4_t`

[src]

####

`fn clone(&self) -> int16x4_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for int16x8_t`

[src]

####

`fn clone(&self) -> int16x8_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for int32x2_t`

[src]

####

`fn clone(&self) -> int32x2_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for int32x4_t`

[src]

####

`fn clone(&self) -> int32x4_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for int64x1_t`

[src]

####

`fn clone(&self) -> int64x1_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for int64x2_t`

[src]

####

`fn clone(&self) -> int64x2_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for int8x16_t`

[src]

####

`fn clone(&self) -> int8x16_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for int8x4_t`

[src]

####

`fn clone(&self) -> int8x4_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for int8x8_t`

[src]

####

`fn clone(&self) -> int8x8_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for poly16x4_t`

[src]

####

`fn clone(&self) -> poly16x4_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for poly16x8_t`

[src]

####

`fn clone(&self) -> poly16x8_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for poly8x16_t`

[src]

####

`fn clone(&self) -> poly8x16_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for poly8x8_t`

[src]

####

`fn clone(&self) -> poly8x8_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for uint16x2_t`

[src]

####

`fn clone(&self) -> uint16x2_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for uint16x4_t`

[src]

####

`fn clone(&self) -> uint16x4_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for uint16x8_t`

[src]

####

`fn clone(&self) -> uint16x8_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for uint32x2_t`

[src]

####

`fn clone(&self) -> uint32x2_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for uint32x4_t`

[src]

####

`fn clone(&self) -> uint32x4_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for uint64x1_t`

[src]

####

`fn clone(&self) -> uint64x1_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for uint64x2_t`

[src]

####

`fn clone(&self) -> uint64x2_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for uint8x16_t`

[src]

####

`fn clone(&self) -> uint8x16_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for uint8x4_t`

[src]

####

`fn clone(&self) -> uint8x4_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for uint8x8_t`

[src]

####

`fn clone(&self) -> uint8x8_t`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for i8x16`

[src]

####

`fn clone(&self) -> i8x16`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for vector_bool_long`

[src]

####

`fn clone(&self) -> vector_bool_long`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for vector_double`

[src]

####

`fn clone(&self) -> vector_double`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for vector_signed_long`

[src]

####

`fn clone(&self) -> vector_signed_long`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for vector_unsigned_long`

[src]

####

`fn clone(&self) -> vector_unsigned_long`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for CpuidResult`

[src]

####

`fn clone(&self) -> CpuidResult`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for __m128`

[src]

####

`fn clone(&self) -> __m128`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for __m128d`

[src]

####

`fn clone(&self) -> __m128d`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for __m128i`

[src]

####

`fn clone(&self) -> __m128i`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for __m256`

[src]

####

`fn clone(&self) -> __m256`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for __m256d`

[src]

####

`fn clone(&self) -> __m256d`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for __m256i`

[src]

####

`fn clone(&self) -> __m256i`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for __m64`

[src]

####

`fn clone(&self) -> __m64`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for TryFromSliceError`

[src]

####

`fn clone(&self) -> TryFromSliceError`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for CharTryFromError`

[src]

####

`fn clone(&self) -> CharTryFromError`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for DecodeUtf16Error`

[src]

####

`fn clone(&self) -> DecodeUtf16Error`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for EscapeDebug`

[src]

####
ⓘImportant traits for EscapeDebug

### Important traits for EscapeDebug

`impl Iterator for EscapeDebug type Item = char;`

`fn clone(&self) -> EscapeDebug`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for EscapeDefault`

[src]

####
ⓘImportant traits for EscapeDefault

### Important traits for EscapeDefault

`impl Iterator for EscapeDefault type Item = char;`

`fn clone(&self) -> EscapeDefault`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for EscapeUnicode`

[src]

####
ⓘImportant traits for EscapeUnicode

### Important traits for EscapeUnicode

`impl Iterator for EscapeUnicode type Item = char;`

`fn clone(&self) -> EscapeUnicode`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for ParseCharError`

[src]

####

`fn clone(&self) -> ParseCharError`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for ToLowercase`

[src]

####
ⓘImportant traits for ToLowercase

### Important traits for ToLowercase

`impl Iterator for ToLowercase type Item = char;`

`fn clone(&self) -> ToLowercase`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for ToUppercase`

[src]

####
ⓘImportant traits for ToUppercase

### Important traits for ToUppercase

`impl Iterator for ToUppercase type Item = char;`

`fn clone(&self) -> ToUppercase`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for UnicodeVersion`

[src]

####

`fn clone(&self) -> UnicodeVersion`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for Error`

[src]

####

`fn clone(&self) -> Error`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for SipHasher`

[src]

####

`fn clone(&self) -> SipHasher`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for Pinned`

[src]

####

`fn clone(&self) -> Pinned`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for NonZeroU128`

[src]

####

`fn clone(&self) -> NonZeroU128`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for NonZeroU16`

[src]

####

`fn clone(&self) -> NonZeroU16`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for NonZeroU32`

[src]

####

`fn clone(&self) -> NonZeroU32`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for NonZeroU64`

[src]

####

`fn clone(&self) -> NonZeroU64`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for NonZeroU8`

[src]

####

`fn clone(&self) -> NonZeroU8`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for NonZeroUsize`

[src]

####

`fn clone(&self) -> NonZeroUsize`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for ParseFloatError`

[src]

####

`fn clone(&self) -> ParseFloatError`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for ParseIntError`

[src]

####

`fn clone(&self) -> ParseIntError`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for TryFromIntError`

[src]

####

`fn clone(&self) -> TryFromIntError`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for RangeFull`

[src]

####

`fn clone(&self) -> RangeFull`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for NoneError`

[src]

####

`fn clone(&self) -> NoneError`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for TraitObject`

[src]

####

`fn clone(&self) -> TraitObject`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for ParseBoolError`

[src]

####

`fn clone(&self) -> ParseBoolError`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for Utf8Error`

[src]

####

`fn clone(&self) -> Utf8Error`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for LocalWaker`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for Waker`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for Duration`

[src]

####

`fn clone(&self) -> Duration`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl Clone for bool`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for char`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for f32`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for f64`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for i8`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for i16`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for i32`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for i64`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for i128`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for isize`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for u8`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for u16`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for u32`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for u64`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for u128`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl Clone for usize`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a> Clone for Arguments<'a>`

[src]

####

`fn clone(&self) -> Arguments<'a>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a> Clone for CharSearcher<'a>`

[src]

####

`fn clone(&self) -> CharSearcher<'a>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<'a> Clone for Bytes<'a>`

[src]

####
ⓘImportant traits for Bytes<'a>

### Important traits for Bytes<'a>

`impl<'a> Iterator for Bytes<'a> type Item = u8;`

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a> Clone for CharIndices<'a>`

[src]

####
ⓘImportant traits for CharIndices<'a>

### Important traits for CharIndices<'a>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a> Clone for Chars<'a>`

[src]

####
ⓘImportant traits for Chars<'a>

### Important traits for Chars<'a>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a> Clone for EncodeUtf16<'a>`

[src]

####
ⓘImportant traits for EncodeUtf16<'a>

### Important traits for EncodeUtf16<'a>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<'a> Clone for Lines<'a>`

[src]

####
ⓘImportant traits for Lines<'a>

### Important traits for Lines<'a>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a> Clone for LinesAny<'a>`

[src]

####
ⓘImportant traits for LinesAny<'a>

### Important traits for LinesAny<'a>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a> Clone for SplitAsciiWhitespace<'a>`

[src]

####
ⓘImportant traits for SplitAsciiWhitespace<'a>

### Important traits for SplitAsciiWhitespace<'a>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<'a> Clone for SplitWhitespace<'a>`

[src]

####
ⓘImportant traits for SplitWhitespace<'a>

### Important traits for SplitWhitespace<'a>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<'a, 'b> Clone for CharSliceSearcher<'a, 'b>`

[src]

####

`fn clone(&self) -> CharSliceSearcher<'a, 'b>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<'a, 'b> Clone for StrSearcher<'a, 'b>`

[src]

####

`fn clone(&self) -> StrSearcher<'a, 'b>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<'a, A> Clone for core::option::Iter<'a, A>`

[src]

####
ⓘImportant traits for Iter<'a, A>

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

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

`fn clone(&self) -> Iter<'a, A>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a, F: Clone> Clone for CharPredicateSearcher<'a, F> where F: FnMut(char) -> bool,`

[src]

####

`fn clone(&self) -> CharPredicateSearcher<'a, F>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<'a, P: Pattern<'a>> Clone for MatchIndices<'a, P> where P::Searcher: Clone,`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<'a, P: Pattern<'a>> Clone for Matches<'a, P> where P::Searcher: Clone,`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<'a, P: Pattern<'a>> Clone for RMatchIndices<'a, P> where P::Searcher: Clone,`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<'a, P: Pattern<'a>> Clone for RMatches<'a, P> where P::Searcher: Clone,`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<'a, P: Pattern<'a>> Clone for core::str::RSplit<'a, P> where P::Searcher: Clone,`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a, P: Pattern<'a>> Clone for RSplitN<'a, P> where P::Searcher: Clone,`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a, P: Pattern<'a>> Clone for RSplitTerminator<'a, P> where P::Searcher: Clone,`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a, P: Pattern<'a>> Clone for core::str::Split<'a, P> where P::Searcher: Clone,`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a, P: Pattern<'a>> Clone for SplitN<'a, P> where P::Searcher: Clone,`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a, P: Pattern<'a>> Clone for SplitTerminator<'a, P> where P::Searcher: Clone,`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a, T> Clone for core::result::Iter<'a, T>`

[src]

####
ⓘImportant traits for Iter<'a, T>

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

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

`fn clone(&self) -> Iter<'a, T>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a, T> Clone for Chunks<'a, T>`

[src]

####
ⓘImportant traits for Chunks<'a, T>

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

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

`fn clone(&self) -> Chunks<'a, T>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a, T> Clone for ExactChunks<'a, T>`

[src]

####
ⓘImportant traits for ExactChunks<'a, T>

### Important traits for ExactChunks<'a, T>

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

`fn clone(&self) -> ExactChunks<'a, T>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<'a, T> Clone for core::slice::Iter<'a, T>`

[src]

####
ⓘImportant traits for Iter<'a, T>

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

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

`fn clone(&self) -> Iter<'a, T>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a, T> Clone for Windows<'a, T>`

[src]

####
ⓘImportant traits for Windows<'a, T>

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

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

`fn clone(&self) -> Windows<'a, T>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a, T, P> Clone for core::slice::Split<'a, T, P> where P: Clone + FnMut(&T) -> bool,`

[src]

####
ⓘImportant traits for Split<'a, T, P>

### Important 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];`

`fn clone(&self) -> Split<'a, T, P>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<'a, T: Clone + 'a, P: Clone> Clone for core::slice::RSplit<'a, T, P> where P: FnMut(&T) -> bool,`

[src]

####
ⓘImportant traits for RSplit<'a, T, P>

### Important 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];`

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<'a, T: ?Sized> Clone for &'a T`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<A: Clone> Clone for Repeat<A>`

[src]

####
ⓘImportant traits for Repeat<A>

### Important traits for Repeat<A>

`impl<A: Clone> Iterator for Repeat<A> type Item = A;`

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<A: Clone> Clone for core::option::IntoIter<A>`

[src]

####
ⓘImportant traits for IntoIter<A>

### Important traits for IntoIter<A>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<A: Clone, B: Clone> Clone for Chain<A, B>`

[src]

####
ⓘImportant traits for Chain<A, B>

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

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<A: Clone, B: Clone> Clone for Zip<A, B>`

[src]

####
ⓘImportant traits for Zip<A, B>

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

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<F: Clone> Clone for RepeatWith<F>`

[src]

####
ⓘImportant traits for RepeatWith<F>

### Important traits for RepeatWith<F>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<H> Clone for BuildHasherDefault<H>`

[src]

####

`fn clone(&self) -> BuildHasherDefault<H>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<I, U> Clone for Flatten<I> where I: Iterator + Clone, U: Iterator + Clone, I::Item: IntoIterator<IntoIter = U, Item = U::Item>,`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<I: Clone + Iterator> Clone for Peekable<I> where I::Item: Clone,`

[src]

####
ⓘImportant traits for Peekable<I>

### Important traits for Peekable<I>

`impl<I: Iterator> Iterator for Peekable<I> type Item = I::Item;`

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<I: Clone> Clone for DecodeUtf16<I> where I: Iterator<Item = u16>,`

[src]

####
ⓘImportant traits for DecodeUtf16<I>

### Important traits for DecodeUtf16<I>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<I: Clone> Clone for Cloned<I>`

[src]

####
ⓘImportant traits for Cloned<I>

### Important traits for Cloned<I>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<I: Clone> Clone for Cycle<I>`

[src]

####
ⓘImportant traits for Cycle<I>

### Important traits for Cycle<I>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<I: Clone> Clone for Enumerate<I>`

[src]

####
ⓘImportant traits for Enumerate<I>

### Important traits for Enumerate<I>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<I: Clone> Clone for Fuse<I>`

[src]

####
ⓘImportant traits for Fuse<I>

### Important traits for Fuse<I>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<I: Clone> Clone for Skip<I>`

[src]

####
ⓘImportant traits for Skip<I>

### Important traits for Skip<I>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<I: Clone> Clone for StepBy<I>`

[src]

####
ⓘImportant traits for StepBy<I>

### Important traits for StepBy<I>

`impl<I> Iterator for StepBy<I> where
I: Iterator, type Item = I::Item;`

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<I: Clone> Clone for Take<I>`

[src]

####
ⓘImportant traits for Take<I>

### Important traits for Take<I>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<I: Clone, F: Clone> Clone for FilterMap<I, F>`

[src]

####
ⓘImportant traits for FilterMap<I, F>

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

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<I: Clone, F: Clone> Clone for Inspect<I, F>`

[src]

####
ⓘImportant traits for Inspect<I, F>

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

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<I: Clone, F: Clone> Clone for Map<I, F>`

[src]

####
ⓘImportant traits for Map<I, F>

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

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<I: Clone, P: Clone> Clone for Filter<I, P>`

[src]

####
ⓘImportant traits for Filter<I, P>

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

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<I: Clone, P: Clone> Clone for SkipWhile<I, P>`

[src]

####
ⓘImportant traits for SkipWhile<I, P>

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

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<I: Clone, P: Clone> Clone for TakeWhile<I, P>`

[src]

####
ⓘImportant traits for TakeWhile<I, P>

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

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<I: Clone, St: Clone, F: Clone> Clone for Scan<I, St, F>`

[src]

####
ⓘImportant traits for Scan<I, St, F>

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

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

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

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<Idx: Clone> Clone for Range<Idx>`

[src]

####
ⓘImportant traits for Range<A>

### Important traits for Range<A>

`impl<A: Step> Iterator for Range<A> type Item = A;`

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<Idx: Clone> Clone for RangeFrom<Idx>`

[src]

####
ⓘImportant traits for RangeFrom<A>

### Important traits for RangeFrom<A>

`impl<A: Step> Iterator for RangeFrom<A> type Item = A;`

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<Idx: Clone> Clone for RangeInclusive<Idx>`

[src]

####
ⓘImportant traits for RangeInclusive<A>

### Important traits for RangeInclusive<A>

`impl<A: Step> Iterator for RangeInclusive<A> type Item = A;`

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<Idx: Clone> Clone for RangeTo<Idx>`

[src]

####

`fn clone(&self) -> RangeTo<Idx>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<Idx: Clone> Clone for RangeToInclusive<Idx>`

[src]

####

`fn clone(&self) -> RangeToInclusive<Idx>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<T> Clone for Empty<T>`

[src]

####
ⓘImportant traits for Empty<T>

### Important traits for Empty<T>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<T> Clone for Discriminant<T>`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<T: Clone + ?Sized> Clone for ManuallyDrop<T>`

[src]

####

`fn clone(&self) -> ManuallyDrop<T>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<T: Clone> Clone for Bound<T>`

[src]

####

`fn clone(&self) -> Bound<T>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<T: Clone> Clone for Option<T>`

[src]

####

`fn clone(&self) -> Option<T>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<T: Clone> Clone for Poll<T>`

[src]

####

`fn clone(&self) -> Poll<T>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<T: Clone> Clone for RefCell<T>`

[src]

####

`fn clone(&self) -> RefCell<T>`

[src]

# Panics

Panics if the value is currently mutably borrowed.

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<T: Clone> Clone for Reverse<T>`

[src]

####

`fn clone(&self) -> Reverse<T>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<T: Clone> Clone for Once<T>`

[src]

####
ⓘImportant traits for Once<T>

### Important traits for Once<T>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<T: Clone> Clone for Rev<T>`

[src]

####
ⓘImportant traits for Rev<I>

### Important traits for Rev<I>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<T: Clone> Clone for Wrapping<T>`

[src]

####

`fn clone(&self) -> Wrapping<T>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<T: Clone> Clone for core::result::IntoIter<T>`

[src]

####
ⓘImportant traits for IntoIter<T>

### Important traits for IntoIter<T>

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

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

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<T: Clone, E: Clone> Clone for Result<T, E>`

[src]

####

`fn clone(&self) -> Result<T, E>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<T: Copy> Clone for Cell<T>`

[src]

####

`fn clone(&self) -> Cell<T>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<T: ?Sized> Clone for *const T`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<T: ?Sized> Clone for *mut T`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<T: ?Sized> Clone for PhantomData<T>`

[src]

####

`fn clone(&self) -> PhantomData<T>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

[src]

###

`impl<T: ?Sized> Clone for NonNull<T>`

[src]

####

`fn clone(&self) -> Self`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

###

`impl<Y: Clone, R: Clone> Clone for GeneratorState<Y, R>`

[src]

####

`fn clone(&self) -> GeneratorState<Y, R>`

[src]

####

`fn clone_from(&mut self, source: &Self)`

1.0.0
[src]

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g. `str,u8` or `String,struct:Vec,test`)