From af68ae63e4b0f5f6237bbda4fed9fd2a6022357d Mon Sep 17 00:00:00 2001 From: Fuwn Date: Mon, 26 Apr 2021 13:30:51 +0000 Subject: fmt: Rename re_server module to server --- src/server/cmd/set_parser.rs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/server/cmd/set_parser.rs (limited to 'src/server/cmd/set_parser.rs') diff --git a/src/server/cmd/set_parser.rs b/src/server/cmd/set_parser.rs new file mode 100644 index 0000000..c998dcc --- /dev/null +++ b/src/server/cmd/set_parser.rs @@ -0,0 +1,39 @@ +// Copyleft 2021-2021 Whirlsplash +// SPDX-License-Identifier: GPL-3.0-only + +use crate::server::cmd::structure::Command; + +/// Iterate over a command set in the from of bytes and return a list of +/// human-readable commands. +fn _parse_command_set(mut data: Vec) -> Vec { + let mut command_set = vec![]; + + // Iterate over all commands + loop { + // Check if any commands are present + if data.len() <= 2 { + break; + } + if data[0] == 0 { + break; + } + + let command_length = data[0]; + let mut command = Command { + length: command_length as i32, + obj_id: data[1] as i32, + id: data[2] as i32, + body: vec![], + }; + if command.length > 3 { + command.body = data[3..].to_owned(); + } + command_set.push(command); + + // Remove current command from the command set + data = data[command_length as usize..].to_vec(); + } + + // Return the human-readable command set + command_set +} -- cgit v1.2.3