diff options
Diffstat (limited to 'src/server_dev/parser.rs')
| -rw-r--r-- | src/server_dev/parser.rs | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/src/server_dev/parser.rs b/src/server_dev/parser.rs deleted file mode 100644 index f856650..0000000 --- a/src/server_dev/parser.rs +++ /dev/null @@ -1,35 +0,0 @@ -use bytes::BytesMut; - -/// Read all commands from the given buffer. -/// -/// # Process -/// 1. Get a command from `buffer` based on first byte. -/// 2. Push command to `commands`. -/// 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(); - trace!("initial buffer: {:?}, length: {}", buffer, buffer.len()); - - 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); - - // 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) -} |