1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
use std::iter::FromIterator;

pub fn jumble(input_string: &str) -> String {
    let mut letter_count = 0i32;

    let mut result = "".to_owned();

    for c in input_string.chars() {
        match c {
            'a'...'z' | 'A'...'Z' => {
                match letter_count % 2 {
                    0 => result.push_str(&String::from_iter(c.to_uppercase())),
                    _ => result.push_str(&String::from_iter(c.to_lowercase()))
                }
                letter_count += 1
            }
            _ => result.push(c)
        };
    };

    result
}