Как tokio :: net :: TcpStream реализует tokio :: prelude :: Stream? - PullRequest
2 голосов
/ 28 мая 2019

В документах 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, но яне могу понять, как эта черта применяется к TcpStream, учитывая, что на странице потока не упоминается TcpStream и наоборот.

1 Ответ

2 голосов
/ 29 мая 2019

tokio::net::TcpStream орудия AsyncRead.

Один из предоставленных методов из AsyncRead: split():

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

Так что в данном случае это не Stream::split, как предложил ваш вопрос, потому что, согласно вашему наблюдению, tokio::net::TcpStream не является разработчиком Stream.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...