https://github.com/rust-lang/rust/issues/79024#issuecomment-1438423347
`AsyncIterator::next()`に対するwithoutboats氏の意見、簡便さを求めるならばジェネレータが理想であって`next`メソッドを書かせるのは中途半端だというのは考えてもみなかったけど、なるほどな
https://github.com/rust-lang/rust/issues/79024#issuecomment-1438423347
`AsyncIterator::next()`に対するwithoutboats氏の意見、簡便さを求めるならばジェネレータが理想であって`next`メソッドを書かせるのは中途半端だというのは考えてもみなかったけど、なるほどな
個人的にも`poll_next`の方が好みなのだけど、keyword genericsへの応用などを考えると`async fn`の方が嬉しいというのも理解できるので、どうしたら良いのじゃろうねという気持ち
`async fn`から`poll`系の関数を呼び出すのは`poll_fn`のような適当なヘルパを噛ませればできるけど、逆に`poll`から`async fn`への呼び出しが上手くいかないのがつらいところなのよなあ
https://twitter.com/tesaguriguma/status/1442066376152125443
現に私も`poll`を手書きしているので……(早く`async fn`に移行しろ)
(いつの日か)`async fn`であらゆる`poll`を再現できるなら良いのだろうけど、それって本当に可能なのだろうか。例えば`poll`の合間に構造体の値を書き換えるような操作は`async fn`に置き換えると`await`の前後で(内部可変性のない)スタックの値が勝手に入れ替わるような状況に相当するだろうけど、それって無理では。もちろん内部可変性を導入すれば再現できるけど、ゼロコストではないよね