tokio :: net :: TcpStream如何实现tokio :: prelude :: Stream?

时间:2019-05-28 20:07:27

标签: rust traits rust-tokio

tokio.rs文档中,我们看到以下代码段

// split the socket stream into readable and writable parts
let (reader, writer) = socket.split();
// copy bytes from the reader into the writer
let amount = io::copy(reader, writer);

我假设split确实是Stream::split,但由于信息流页面未提及{{1},因此我无法弄清楚该特征如何应用于TcpStream },反之亦然。

1 个答案:

答案 0 :(得分:2)

tokio::net::TcpStream实现AsyncRead

AsyncRead提供的一种方法是split()

fn split(self) -> (ReadHalf<Self>, WriteHalf<Self>)
where
    Self: AsyncWrite, 

因此,在这种情况下,它不是您的问题所建议的Stream::split,因为根据您的观察,tokio::net::TcpStream不是Stream的实现者。