【发布时间】:2016-06-06 08:26:38
【问题描述】:
我正在开发一个可以使用TcpStreams 或SslStreams 的项目,具体取决于用户的配置。我有一些简单的方法,例如send_cmd(stream) 和recv_msg(stream),它们对这些流进行操作。
创建一个可以是TcpStream 或SslStream 的枚举并将其传递给这些方法会更惯用吗?还是对特征做一些事情会更好,例如要求这些方法的流参数实现Read 和Write 特征?
我的想法是枚举解决方案会更好,因为它明确说明了我们期望处理的数据类型,而不是允许实现Read 或Write 的任何内容,例如文件。但另一方面,在使用流之前,需要对所有这些方法进行匹配。想法?
【问题讨论】:
-
您的代码(或您的代码的用户)通过仅限于两种具体类型可以获得什么好处?
-
@Shepmaster:它是对仅通过 tcp 可用的服务的 API 实现。
-
@malbarbo:这非常有帮助,谢谢! :)
-
这对限制类型没有好处,它只是一个实现细节。测试期间的依赖注入或添加用于调试的日志记录层或压缩层或...
标签: rust