From c58057b38550b94be623526481a31c7fc346a929 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Fri, 23 Apr 2021 18:27:51 -0700 Subject: major: :star: --- src/server/parser.rs | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) (limited to 'src/server/parser.rs') diff --git a/src/server/parser.rs b/src/server/parser.rs index acedbd3..f856650 100644 --- a/src/server/parser.rs +++ b/src/server/parser.rs @@ -8,30 +8,28 @@ use bytes::BytesMut; /// 3. Remove command from `buffer`. /// 4. Iterate and do this for all commands within `buffer`. pub fn get_commands_from_buffer(mut buffer: BytesMut) -> Vec { - let mut commands: Vec = Vec::new(); - // debug!("initial buffer: {:?}, length: {}", buffer, buffer.len()); + let mut commands: Vec = Vec::new(); + trace!("initial buffer: {:?}, length: {}", buffer, buffer.len()); - let data_length = buffer.get(0).unwrap().to_owned() as usize; - if buffer.len() > data_length { - loop { - // debug!("loop: {:?}, length: {}", buffer, buffer.len()); - let command_length = buffer.get(0).unwrap().to_owned() as usize; - commands.push( - BytesMut::from(buffer.get(0..command_length).unwrap()) - ); + let data_length = buffer.get(0).unwrap().to_owned() as usize; + if buffer.len() > data_length { + loop { + trace!("loop: {:?}, length: {}", buffer, buffer.len()); + let command_length = buffer.get(0).unwrap().to_owned() as usize; + commands.push(BytesMut::from(buffer.get(0..command_length).unwrap())); - // Remove command from buffer - buffer = buffer.split_off(command_length); + // Remove command from buffer + buffer = buffer.split_off(command_length); - // Check if any more commands are present - if buffer.is_empty() { break; } - } - } else { - // There will always be at least one command, push it. - commands.push( - BytesMut::from(buffer.get(0..data_length).unwrap()) - ); - } + // Check if any more commands are present + if buffer.is_empty() { + break; + } + } + } else { + // There will always be at least one command, push it. + commands.push(BytesMut::from(buffer.get(0..data_length).unwrap())); + } - commands // Return command (s) + commands // Return command (s) } -- cgit v1.2.3