Rust 使用 Select/Handle/lifetime 的设计问题和语法问题
代码:
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 里对上述设计有 更详细的描述 ,如有兴趣欢迎一起来做:
西园寺美琴
10 years, 8 months ago