#sent #oriented #composition #thing #values #aims #omnivers3

sink

这个软件包旨在提供一种抽象,它可以发送值并立即返回一个表示接收成功/失败的 Result。作为基本原语,这应该能够使消息导向的入参与熟悉的命令式 Result 'and_then' 组合模式相结合。

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2018 年 7 月 20 日

#8 in #sent

MIT 许可证

12KB
208

omnivers3/sink

这个软件包旨在提供一种抽象,它可以发送值并立即返回一个表示接收成功/失败的 Result。

作为基本原语,这应该能够使消息导向的入参与熟悉的命令式 Result 'and_then' 组合模式相结合。

背景

ISink 接口的主要目标是隐藏任何汇流的实现细节。

为了实现这一点,做出了一些决定

  • 发送接收 Sink 引用

我们不希望消耗汇流,以便它可以被重复使用多次。

我们也不想要求发送者保持对汇流的可变引用。

  • 委托变异

StatefulSink 要求创建者通过在其结构中获取状态类型的所有权来管理变异。

这意味着变异和线程安全级别的关注被推给了实现者。

  • 发送接收所有权的发送值

与委托变异类似,这迫使发送者负责共享、线程安全等。

这也意味着下游接收者与原始源显式解耦。

一些有用的参考

实现函数组合

面向铁路的编程

CI/CD

在 CircleCI 上构建 Rust 项目

获取 RustFmt 选项

rustup run nightly -- rustfmt --help

无运行时依赖项