対処法: Rustの高階関数の関数ポインタの戻り値型にimpl Traitを使えるようにする(Nightly)
やりたいこと
やりかた
#![feature(type_alias_impl_trait)]を使ってimpl Traitの型エイリアスを作る。 例
pub fn f1() -> fn(i32) -> impl Iterator<Item=i32> { ... }みたいに書きたいときの対処法。
code:rs
type IterI32 = impl Iterator<Item=i32>;
pub fn f1() -> fn(i32) -> IterI32 {
|i: i32| {
}
}
fn main() {
let a = f1()(10);
for x in a {
println!("{}", x);
}
}
Nightly channel Build using the Nightly version: 1.45.0-nightly (2020-04-29 fa51f810e5b9254904b9)で動いた。
code:出力
10
10
10