Импортируем mio::tcp::TcpStream, но получаем std::net::tcp::TcpStream
При попытке адаптировать пример сервера, не уверен, что делать с этим поведением, где TcpStream
Я прошу, и тот, который я получаю, кажется совершенно другим.
Пример определения структуры:
use mio::tcp::TcpStream;
struct Connection {
socket: TcpStream
}
Позже есть функция, определенная для Connection
:
fn writable(&mut self, event_loop: &mut EventLoop<Server>) -> Result<()> {
loop {
let (len, res) = {
let buf = &self.buffer.bytes();
let len = buf.len();
let res = self.socket.write_slice(buf);
(len, res)
};
Ошибка на write_slice
появляется с:
error: type `std::net::tcp::TcpStream` does not implement any method in scope named `write_slice`
Сейчас std::net::tcp::TcpStream
не реализует это, но mio::tcp::TcpStream
делает. Почему один заменит другого?
Установив это как псевдоним, use mil::tcp::TcpStream as MioTcpStream
это тоже не влияет.
1 ответ
Решение
Оказывается, это проблема с опубликованной версией mio
пакет.
Добавление следующего к Cargo.toml
сносит и использует последнюю рабочую версию:
[dependencies.mio]
git = "https://github.com/carllerche/mio.git"