2015-06-29 2 views
-3

При попытке адаптировать example server, не уверен, что делать с этим поведением, когда TcpStream Я прошу и тот, Похоже, что они совершенно разные.Импорт mio :: tcp :: TcpStream, но получить std :: net :: tcp :: 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 также не влияет на это.

+0

У вас есть 'использование зОго :: Net :: Tcp :: TcpStream;' где-нибудь в вашем проекте? –

+0

Не знаю, о чем я знаю. Если я включаю, что компилятор жалуется на конфликтующие определения TcpStream. – tadman

ответ

2

Оказалось, что это проблема с опубликованной версией пакета mio.

Добавление следующего Cargo.toml тянет вниз и использует последнюю рабочую версию:

[dependencies.mio] 
git = "https://github.com/carllerche/mio.git" 
Смежные вопросы