// *** before: ***
// метод трейта не мог вернуть impl Trait: писали связанный тип
trait Source {
type Iter: Iterator<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
}
}