diff --git a/src/message.rs b/src/message.rs index 0f66a3f..5da977f 100644 --- a/src/message.rs +++ b/src/message.rs @@ -211,7 +211,7 @@ impl MessageWriter { self.writer .write_u32(buffer.len().try_into().expect("Message too large")) .await?; - self.writer.write_buf(&mut buffer).await?; + self.writer.write_all(&mut buffer).await?; self.writer.flush().await?; Ok(()) } @@ -227,8 +227,8 @@ impl MessageReader { } pub async fn read(self: &mut Self) -> Result { let frame_length = self.reader.read_u32().await?; - let mut data = BytesMut::with_capacity(frame_length.try_into().unwrap()); - self.reader.read_buf(&mut data).await?; + let mut data = vec![0; frame_length.try_into().unwrap()]; + self.reader.read_exact(&mut data).await?; let mut cursor = Cursor::new(&data[..]); Message::decode(&mut cursor) @@ -297,6 +297,7 @@ mod message_tests { }, ])); assert_round_trip(Data(0x1234567890123456, vec![1, 2, 3, 4].into())); + assert_round_trip(Data(0x123, vec![0; u16::max_value().into()].into())); } #[test] diff --git a/src/ui.rs b/src/ui.rs index 51f5eac..61b908d 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -10,7 +10,7 @@ use crossterm::{ EnterAlternateScreen, LeaveAlternateScreen, }, }; -use log::{Level, LevelFilter, Metadata, Record}; +use log::{Level, Metadata, Record}; use std::collections::vec_deque::VecDeque; use std::io::{stdout, Write}; use tokio::sync::mpsc;