< 返回版块

Mike Tang 发表于 2026-08-05 09:04

自定义 Future 重试另一个 Future 时遇到借用问题

这是一篇关于在 Rust 中实现自定义重试 Future 的求助帖。作者希望通过 FutureRetry::new(async || http.send(body).await).await? 这样的接口,在延迟后重新执行另一个 Future。

作者分别尝试了不捕获环境的异步闭包、FnMut() -> FutureAsyncFnMut()。不捕获环境的版本可以工作,但需要显式返回参数;捕获环境时,闭包返回的 Future 会借用环境,存入自定义 Future 后又与外层 self 形成第二个可变借用,因而无法在安全 Rust 中同时保存并轮询。作者询问是否需要改用 AsyncFnOnce 或复制数据,以及当前是否存在不依赖自引用类型的接口设计。

原文链接:https://www.reddit.com/r/rust/comments/1vcq39n/struggling_to_create_a_custom_future_which/

关于让子 trait 实现父 trait 默认方法的提议

这是一篇讨论 Rust trait 复用方式的帖子,作者提议允许子 trait 覆盖或实现父 trait 的方法,并在实现子 trait 时自动获得这些方法的默认实现。

帖子以 ExactSizeIterator 为例:当前实现通常需要从 len 生成 size_hint 返回值,作者希望子 trait 直接要求实现 len,再由子 trait 覆盖 Iterator::size_hint。作者还认为,直接返回长度可以减少无用的上下界构造和断言,但同时承认优化构建可能已经消除了部分开销。

原文链接:https://www.reddit.com/r/rust/comments/1vcr7gs/i_wish_subtraits_could_implement_their/

Helix 的 LSP 延迟与异步任务调度讨论

这是一篇围绕 Helix 编辑器 LSP 响应延迟的讨论帖。Helix 是用 Rust 编写的终端编辑器,作者观察到启用 clangd 后,打开约 2.5 万行的 json.hpp 并快速输入时,字符显示会延迟数秒。

帖子将现象归因于 LSP 任务可能阻塞编辑器主流程,并询问 Rust 异步任务、线程调度或 Helix 架构是否与这种延迟有关。内容没有给出修复方案,主要集中在可复现的编辑器交互现象和异步实现疑问。

原文链接:https://www.reddit.com/r/rust/comments/1vcwqp9/you_may_not_like_it_but_this_is_what_fearless/

Learning Rust from Zero:面向初学者的 Rust 教程

Learning Rust from Zero 是一份面向绝对初学者的 Rust 教程,作者将其发布为英文网页课程。

课程从 Rust 的基础语法和工具链开始,面向尚未接触 Rust 的读者组织学习路径。该条目来自 r/rust 的 educational 帖子,原帖未提供更多章节或示例数据。

原文链接:https://andyshiue.github.io/learning-rust-from-zero/en/

--

From 日报小组 Mike

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页