generators 欲しいと思ったこと正直そんなにないんだけど、 GAT (Generic Associated Types) は滅茶苦茶欲しいですね……はやく安定化されないかな
Tracking issue for generic associated types (GAT) · Issue #44265 · rust-lang/rust
https://github.com/rust-lang/rust/issues/44265
associated types をジェネリックにして型パラメータとかライフタイムパラメータを付けられるようになるやつで、「参照のイテレータを返す関数を持つトレイトに、返されるイテレータの型を関連型として持たせたい」みたいな場合に必要になる (メソッドの &self のライフタイムをイテレータ型が受け継ぐ必要があるため)
trait Items {
type Iter<'a>;
fn items<'a>(&'a self) -> Self::Iter<'a>;
}
impl<T> Items for Vec<T> {
type Iter<'a> = core::slice::Iter<'a, T>;
type items<'a>(&'a self) -> Self::Iter<'a> {
self.iter()
}
}
みたいなことができるようになる