diff options
| author | Fuwn <[email protected]> | 2021-04-23 18:27:51 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2021-04-23 18:27:51 -0700 |
| commit | c58057b38550b94be623526481a31c7fc346a929 (patch) | |
| tree | 7d851d0cf761fe4261dd5563f99e18d6c974d80b /src/server/parser.rs | |
| parent | Merge branch 'tokio-re' of https://github.com/Whirlsplash/whirl into tokio-re (diff) | |
| download | whirl-c58057b38550b94be623526481a31c7fc346a929.tar.xz whirl-c58057b38550b94be623526481a31c7fc346a929.zip | |
major: :star:
Diffstat (limited to 'src/server/parser.rs')
| -rw-r--r-- | src/server/parser.rs | 42 |
1 files changed, 20 insertions, 22 deletions
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<BytesMut> { - let mut commands: Vec<BytesMut> = Vec::new(); - // debug!("initial buffer: {:?}, length: {}", buffer, buffer.len()); + let mut commands: Vec<BytesMut> = 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) } |