关联类型约束

版本新特性 / Rust 1.79

// *** before: ***
// a bound on the item was carried by a separate type parameter
fn show<I, T>(items: I)
where
    I: Iterator<Item = T>,
    T: std::fmt::Display,
{
    for i in items {
        println!("{i}");
    }
}

// *** in version 1.79: ***
fn show<I: Iterator<Item: std::fmt::Display>>(items: I) {
    for i in items {
        println!("{i}");
    }
}