1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2018 年 7 月 20 日 |
---|
#8 in #sent
12KB
208 行
omnivers3/sink
这个软件包旨在提供一种抽象,它可以发送值并立即返回一个表示接收成功/失败的 Result。
作为基本原语,这应该能够使消息导向的入参与熟悉的命令式 Result 'and_then' 组合模式相结合。
背景
ISink 接口的主要目标是隐藏任何汇流的实现细节。
为了实现这一点,做出了一些决定
- 发送接收 Sink 引用
我们不希望消耗汇流,以便它可以被重复使用多次。
我们也不想要求发送者保持对汇流的可变引用。
- 委托变异
StatefulSink 要求创建者通过在其结构中获取状态类型的所有权来管理变异。
这意味着变异和线程安全级别的关注被推给了实现者。
- 发送接收所有权的发送值
与委托变异类似,这迫使发送者负责共享、线程安全等。
这也意味着下游接收者与原始源显式解耦。
一些有用的参考
CI/CD
获取 RustFmt 选项
rustup run nightly -- rustfmt --help