From fe16b90abbd575d87fcb17d9f4af54f6336ce537 Mon Sep 17 00:00:00 2001 From: eNV25 Date: Thu, 15 Feb 2024 15:04:51 +0100 Subject: [PATCH 1/2] Refactor {send,read}_message() --- src/browser.rs | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/browser.rs b/src/browser.rs index c69dfc6..ab66639 100644 --- a/src/browser.rs +++ b/src/browser.rs @@ -1,7 +1,6 @@ +use std::io::{self, Read, Write}; + use serde::Deserialize; -use std::io; -use std::io::BufReader; -use std::io::{Read, Write}; use crate::error::FF2MpvError; @@ -22,23 +21,22 @@ pub fn get_mpv_message() -> Result { } fn read_message() -> Result { - let mut stdin = io::stdin(); - let mut buf: [u8; 4] = [0; 4]; - stdin.read_exact(&mut buf)?; + let mut stdin = io::stdin().lock(); - let length = u32::from_ne_bytes(buf); - let mut reader = BufReader::new(stdin.take(length as u64)); + let mut len = 0_u32.to_ne_bytes(); + stdin.read_exact(&mut len)?; + let len = u32::from_ne_bytes(len); - let mut string = String::with_capacity(length as usize); - reader.read_to_string(&mut string)?; - Ok(string) + let mut msg = String::with_capacity(len as usize); + stdin.take(len as u64).read_to_string(&mut msg)?; + Ok(msg) } fn send_message(message: &str) -> Result<(), io::Error> { let length = (message.len() as u32).to_ne_bytes(); let message = message.as_bytes(); - let mut stdout = io::stdout(); + let mut stdout = io::stdout().lock(); stdout.write_all(&length)?; stdout.write_all(message)?; Ok(()) -- 2.39.2 From 9489bc6bfd04af88f71d9d9abaf6399c76964553 Mon Sep 17 00:00:00 2001 From: Ryze <50497128+ryze312@users.noreply.github.com> Date: Fri, 16 Feb 2024 08:53:12 +0000 Subject: [PATCH 2/2] Use binding for Take --- src/browser.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/browser.rs b/src/browser.rs index ab66639..980ecd2 100644 --- a/src/browser.rs +++ b/src/browser.rs @@ -27,8 +27,9 @@ fn read_message() -> Result { stdin.read_exact(&mut len)?; let len = u32::from_ne_bytes(len); + let mut reader = stdin.take(len as u64); let mut msg = String::with_capacity(len as usize); - stdin.take(len as u64).read_to_string(&mut msg)?; + reader.read_to_string(&mut msg)?; Ok(msg) } -- 2.39.2