トレイトにおける async
現在、Rust の stable リリースでは、トレイト内で async fn を使用できません。
2022年11月17日以降、async-fn-in-trait の MVP がコンパイラツールチェーンの nightly
版で利用可能になっています。詳細はこちらを参照してください。
それまでの間、stable ツールチェーン向けの回避策として、 crates.io の async-trait クレートを使用できます。
これらのトレイトメソッドを使用すると、関数呼び出しごとにヒープ割り当てが 発生することに注意してください。これは大多数のアプリケーションにとって大きな コストではありませんが、1秒間に何百万回も呼び出されることが想定される 低レベル関数の公開 API でこの機能を使用するかどうかを決定する際には、 考慮する必要があります。
最新の更新: https://blog.rust-lang.org/2023/12/21/async-fn-rpit-in-traits.html