Changes in new versions / Rust 1.75

// *** before: ***
// метод трейта не мог вернуть impl Trait: писали связанный тип
trait Source {
    type IterIterator<Item = u32>;
    fn values(&self) -> Self::Iter;
}

// *** in version 1.75: ***
trait Source {
    fn values(&self) -> impl Iterator<Item = u32>;
}

struct Range10;

impl Source for Range10 {
    fn values(&self) -> impl Iterator<Item = u32> {
        0..10
    }
}