Rust 使用 Select/Handle/lifetime 的设计问题和语法问题

发布于 2022-08-29 16:46:24 字数 896 浏览 17 评论 0

代码:

https://gist.github.com/fantix/c00c0a26a57279b15fd7

初衷:想在 Main 里通过组合 Endpoint 的方式,解耦地处理多个 Receiver 的消息。

片段一:before_storing_handle.rs,目测是因为没有保存 Handle 对象,至使 Select 为空。所以期望能够将 Handle 对象保存在 Sub 中。随后就改出了:

片段二:怎么也编译不过去了,lifetime 写起来实在是太诡异了,所以发上来求一下帮助(此为问题1)。其实目测已经功亏一篑了,只是 add() 出来之后没把借用的引用还回去,所以跑不了最后一个 run()。不过就算修好 run() 了,我仍然对这个代码没有信心——还有更优雅的解决方案吗(问题2)?

另,我在试图用 Rust 来重新实现 ZeroMQ,wiki 里对上述设计有更详细的描述,如有兴趣欢迎一起来做:

https://github.com/zeromq/zmq.rs

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文