# Struct collections::slice::IterMut 1.0.0 [−] [src]

    pub struct IterMut<'a, T> where
        T: 'a,  { /* fields omitted */ }

Mutable slice iterator.

This struct is created by the `iter_mut` method on slices.

# Examples

Basic usage:

    // First, we declare a type which has `iter_mut` method to get the `IterMut`
    // struct (&[usize here]):
    let mut slice = &mut [1, 2, 3];

    // Then, we iterate over it and increment each element value:
    for element in slice.iter_mut() {
        *element += 1;
    }

    // We now have "[2, 3, 4]":
    println!("{:?}", slice);

## Methods

### `impl<'a, T> IterMut<'a, T>`
[src]

#### `fn into_slice(self) -> &'a mut [T]`
1.4.0
[src]

View the underlying data as a subslice of the original data.

To avoid creating `&mut` references that alias, this is forced to consume the iterator. Consider using the `Slice` and `SliceMut` implementations for obtaining slices with more restricted lifetimes that do not consume the iterator.

# Examples

Basic usage:

    // First, we declare a type which has `iter_mut` method to get the `IterMut`
    // struct (&[usize here]):
    let mut slice = &mut [1, 2, 3];

    {
        // Then, we get the iterator:
        let mut iter = slice.iter_mut();
        // We move to next element:
        iter.next();
        // So if we print what `into_slice` method returns here, we have "[2, 3]":
        println!("{:?}", iter.into_slice());
    }

    // Now let's modify a value of the slice:
    {
        // First we get back the iterator:
        let mut iter = slice.iter_mut();
        // We change the value of the first element of the slice returned by the `next` method:
        *iter.next().unwrap() += 1;
    }
    // Now slice is "[2, 2, 3]":
    println!("{:?}", slice);

## Trait Implementations

### `impl<'a, T> Debug for IterMut<'a, T> where
T: 'a + Debug,`
1.9.0
[src]

#### `fn fmt(&self, f: &mut Formatter) -> Result<(), Error>`
[src]

Formats the value using the given formatter.

### `impl<'a, T> FusedIterator for IterMut<'a, T>`
[src]

### `impl<'a, T> Iterator for IterMut<'a, T>`
[src]

#### `type Item = &'a mut T`

#### `fn next(&mut self) -> Option<&'a mut T>`
[src]

#### `fn size_hint(&self) -> (usize, Option<usize>)`
[src]

#### `fn count(self) -> usize`
[src]

#### `fn nth(&mut self, n: usize) -> Option<&'a mut T>`
[src]

#### `fn last(self) -> Option<&'a mut T>`
[src]

#### `fn all<F>(&mut self, predicate: F) -> bool where
F: FnMut(<IterMut<'a, T> as Iterator>::Item) -> bool,`
[src]

#### `fn any<F>(&mut self, predicate: F) -> bool where
F: FnMut(<IterMut<'a, T> as Iterator>::Item) -> bool,`
[src]

#### `fn find<F>(
&mut self,
predicate: F
) -> Option<<IterMut<'a, T> as Iterator>::Item> where
F: FnMut(&<IterMut<'a, T> as Iterator>::Item) -> bool,`
[src]

#### `fn position<F>(&mut self, predicate: F) -> Option<usize> where
F: FnMut(<IterMut<'a, T> as Iterator>::Item) -> bool,`
[src]

#### `fn rposition<F>(&mut self, predicate: F) -> Option<usize> where
F: FnMut(<IterMut<'a, T> as Iterator>::Item) -> bool,`
[src]

### `impl<'a, T> ExactSizeIterator for IterMut<'a, T>`
[src]

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

### `impl<'a, T> DoubleEndedIterator for IterMut<'a, T>`
[src]

#### `fn next_back(&mut self) -> Option<&'a mut T>`
[src]

#### `fn rfind<F>(
&mut self,
predicate: F
) -> Option<<IterMut<'a, T> as Iterator>::Item> where
F: FnMut(&<IterMut<'a, T> as Iterator>::Item) -> bool,`
[src]

### `impl<'a, T> Send for IterMut<'a, T> where
T: Send,`
[src]

### `impl<'a, T> TrustedLen for IterMut<'a, T>`
[src]

### `impl<'a, T> Sync for IterMut<'a, T> where
T: Sync,`
[src]

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand 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`)