Как описано в вашем сообщении об ошибке, есть черта AsyncReadExt
, которая реализована для типа, но не импортирована в область видимости. Чтобы использовать метод этой черты read
, необходимо импортировать черту; для этой черты это обычно делается путем импорта прелюдии tokio :
use tokio::prelude::*;
// or you can explicitly import just AsyncReadExt, but I'd recommend the above
use tokio::io::AsyncReadExt;
Кроме того, вам нужно специально await
результат из read()
, так как он возвращает будущее. Вам также необходимо использовать буфер в отдельной переменной, поскольку именно там хранятся считанные данные.
let mut buffer = [0; 1024];
let byte_count = stream.read(&mut buffer).await;
// ^^^^^^
println!("Stream: {:?}", &buffer[0..byte_count]);