Пытаюсь на расте написать аналог такого:
def print_items(items):
    for item in items:
        print item
Это же просто, да?
Растишкин код:
// так работает
fn print_items(items: &[&str]) {
    for item in items {
        println!("{}", item);
    }
}
// а так не работает, блджад!
fn print_items_iter<'a, I> (items: I)
    where I: IntoIterator<Item = &'a str>
{
    for item in items {
        println!("{}", item);
    }
}
fn main() {
    let items = ["pracuj", "kurwo"];
    print_items(&items);
    print_items_iter(&items);
}
Не компилится:
src/main.rs:21:5: 21:21 error: type mismatch resolving `<&[&str; 2] as core::iter::IntoIterator>::Item == &str`:
 expected &-ptr,
    found str [E0271]
src/main.rs:21     print_items_iter(&items);
                   ^~~~~~~~~~~~~~~~
src/main.rs:21:5: 21:21 help: run `rustc --explain E0271` to see a detailed explanation
src/main.rs:21:5: 21:21 note: required by `print_items_iter`
Штоааа? В доке же написано, что слайсы реализуют IntoIterator. Чего он от меня хочет? Алсо, &[&str; 2] - это таки слайс или ссылка на массив? Почему? Я уже совсем ничего нипа
Растишка: формула здорового росту.


