Struct core::slice::IterMut [] [src]

pub struct IterMut<'a, T: 'a> {
    // some fields omitted
}
1.0.0

Mutable slice iterator.

Examples

Basic usage:

fn main() { // 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); }
// 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>

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

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:

fn main() { // 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); }
// 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: 'a + Debug> Debug for IterMut<'a, T>1.9.0

fn fmt(&self, f: &mut Formatter) -> Result

impl<'a, T: Sync> Sync for IterMut<'a, T>

impl<'a, T: Send> Send for IterMut<'a, T>

impl<'a, T> Iterator for IterMut<'a, T>

type Item = &'a mut T

fn next(&mut self) -> Option<&'a mut T>

fn size_hint(&self) -> (usize, Option<usize>)

fn count(self) -> usize

fn nth(&mut self, n: usize) -> Option<&'a mut T>

fn last(self) -> Option<&'a mut T>

fn chain<U>(self, other: U) -> Chain<Self, U::IntoIter> where Self: Sized, U: IntoIterator<Item=Self::Item>

fn zip<U>(self, other: U) -> Zip<Self, U::IntoIter> where Self: Sized, U: IntoIterator

fn map<B, F>(self, f: F) -> Map<Self, F> where Self: Sized, F: FnMut(Self::Item) -> B

fn filter<P>(self, predicate: P) -> Filter<Self, P> where Self: Sized, P: FnMut(&Self::Item) -> bool

fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> where Self: Sized, F: FnMut(Self::Item) -> Option<B>

fn enumerate(self) -> Enumerate<Self> where Self: Sized

fn peekable(self) -> Peekable<Self> where Self: Sized

fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> where Self: Sized, P: FnMut(&Self::Item) -> bool

fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> where Self: Sized, P: FnMut(&Self::Item) -> bool

fn skip(self, n: usize) -> Skip<Self> where Self: Sized

fn take(self, n: usize) -> Take<Self> where Self: Sized

fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> where Self: Sized, F: FnMut(&mut St, Self::Item) -> Option<B>

fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> where Self: Sized, U: IntoIterator, F: FnMut(Self::Item) -> U

fn fuse(self) -> Fuse<Self> where Self: Sized

fn inspect<F>(self, f: F) -> Inspect<Self, F> where Self: Sized, F: FnMut(&Self::Item)

fn by_ref(&mut self) -> &mut Self where Self: Sized

fn collect<B: FromIterator<Self::Item>>(self) -> B where Self: Sized

fn partition<B, F>(self, f: F) -> (B, B) where Self: Sized, B: Default + Extend<Self::Item>, F: FnMut(&Self::Item) -> bool

fn fold<B, F>(self, init: B, f: F) -> B where Self: Sized, F: FnMut(B, Self::Item) -> B

fn all<F>(&mut self, f: F) -> bool where Self: Sized, F: FnMut(Self::Item) -> bool

fn any<F>(&mut self, f: F) -> bool where Self: Sized, F: FnMut(Self::Item) -> bool

fn find<P>(&mut self, predicate: P) -> Option<Self::Item> where Self: Sized, P: FnMut(&Self::Item) -> bool

fn position<P>(&mut self, predicate: P) -> Option<usize> where Self: Sized, P: FnMut(Self::Item) -> bool

fn rposition<P>(&mut self, predicate: P) -> Option<usize> where P: FnMut(Self::Item) -> bool, Self: Sized + ExactSizeIterator + DoubleEndedIterator

fn max(self) -> Option<Self::Item> where Self: Sized, Self::Item: Ord

fn min(self) -> Option<Self::Item> where Self: Sized, Self::Item: Ord

fn max_by_key<B: Ord, F>(self, f: F) -> Option<Self::Item> where Self: Sized, F: FnMut(&Self::Item) -> B1.6.0

fn min_by_key<B: Ord, F>(self, f: F) -> Option<Self::Item> where Self: Sized, F: FnMut(&Self::Item) -> B1.6.0

fn rev(self) -> Rev<Self> where Self: Sized + DoubleEndedIterator

fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB) where FromA: Default + Extend<A>, FromB: Default + Extend<B>, Self: Sized + Iterator<Item=(A, B)>

fn cloned<'a, T: 'a>(self) -> Cloned<Self> where Self: Sized + Iterator<Item=&'a T>, T: Clone

fn cycle(self) -> Cycle<Self> where Self: Sized + Clone

fn sum<S>(self) -> S where S: Add<Self::Item, Output=S> + Zero, Self: Sized

fn product<P>(self) -> P where P: Mul<Self::Item, Output=P> + One, Self: Sized

fn cmp<I>(self, other: I) -> Ordering where I: IntoIterator<Item=Self::Item>, Self::Item: Ord, Self: Sized1.5.0

fn partial_cmp<I>(self, other: I) -> Option<Ordering> where I: IntoIterator, Self::Item: PartialOrd<I::Item>, Self: Sized1.5.0

fn eq<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialEq<I::Item>, Self: Sized1.5.0

fn ne<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialEq<I::Item>, Self: Sized1.5.0

fn lt<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<I::Item>, Self: Sized1.5.0

fn le<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<I::Item>, Self: Sized1.5.0

fn gt<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<I::Item>, Self: Sized1.5.0

fn ge<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<I::Item>, Self: Sized1.5.0

impl<'a, T> DoubleEndedIterator for IterMut<'a, T>

fn next_back(&mut self) -> Option<&'a mut T>

impl<'a, T> ExactSizeIterator for IterMut<'a, T>

fn len(&self) -> usize