iter_ref 0.2.0

Traits for iterating over referenced data without consuming the iterator
Documentation
use iter_ref::prelude::*;

fn main() {
    for letter in vec!['W', 'o', 'r', 'k', 's', '?'].iter() {
        print!("{}", letter.to_string())
    }

    println!();

    for letter in (&['W', 'o', 'r', 'k', 's', '?']).iter() {
        print!("{}", letter.to_string())
    }

    println!();

    let mut slice = [1, 2, 3, 4];
    for letter in slice.iter_mut() {
        *letter += 2;
    }

    for letter in slice.iter_mut() {
        print!("{}", letter.to_string())
    }

    println!();
}