💡 原文英文,约1800词,阅读约需7分钟。
📝

内容提要

Rust Async Working Group宣布了实现在traits中使用async fn的重要进展。Rust 1.75将支持-> impl Trait标记和traits中的async fn。然而,仍然缺少一些重要功能。建议在何时以及如何使用这些稳定功能。

🎯

关键要点

  • Rust Async Working Group宣布在traits中使用async fn的重要进展。
  • Rust 1.75将支持-> impl Trait标记和traits中的async fn。
  • -> impl Trait允许函数返回实现Trait的某种类型,常用于返回闭包和迭代器。
  • Rust 1.75开始支持在trait定义和trait实现中使用return-position impl Trait。
  • async fn在traits中被允许,但仍然存在一些限制。
  • 在公共traits中使用-> impl Trait不被推荐,因为无法对返回类型添加额外的约束。
  • async fn在公共traits中也存在类似的限制,使用时会收到警告。
  • 建议使用trait_variant::make宏来支持多线程执行器。
  • 使用-> impl Trait和async fn的traits不支持动态调度。
  • 未来希望允许用户为impl Trait返回类型添加自定义约束。
  • 对于私有traits,可以自由使用-> impl Trait,但公共traits最好避免。
  • 可以在traits和impl中自由切换async fn和-> impl Future的写法。
  • 在实现trait时,如果实现签名包含比trait本身更详细的信息,会收到警告。
  • Async Working Group期待在未来继续改进async Rust的功能。
🏷️

标签

➡️

继续阅读