【问题标题】:Handling TcpStream or SslStream idiomatically惯用地处理 TcpStream 或 SslStream
【发布时间】:2016-06-06 08:26:38
【问题描述】:

我正在开发一个可以使用TcpStreams 或SslStreams 的项目,具体取决于用户的配置。我有一些简单的方法,例如send_cmd(stream)recv_msg(stream),它们对这些流进行操作。

创建一个可以是TcpStreamSslStream 的枚举并将其传递给这些方法会更惯用吗?还是对特征做一些事情会更好,例如要求这些方法的流参数实现ReadWrite 特征?

我的想法是枚举解决方案会更好,因为它明确说明了我们期望处理的数据类型,而不是允许实现ReadWrite 的任何内容,例如文件。但另一方面,在使用流之前,需要对所有这些方法进行匹配。想法?

【问题讨论】:

  • 您的代码(或您的代码的用户)通过仅限于两种具体类型可以获得什么好处?
  • @Shepmaster:它是对仅通过 tcp 可用的服务的 API 实现。
  • @malbarbo:这非常有帮助,谢谢! :)
  • 这对限制类型没有好处,它只是一个实现细节。测试期间的依赖注入或添加用于调试的日志记录层或压缩层或...

标签: rust


【解决方案1】:

原来有一个内置于 openssl 库的解决方案:openssl::ssl::MaybeSslStream

【讨论】:

    猜你喜欢
    • 2017-03-07
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 2014-04-25
    相关资源
    最近更新 更多