diff options
Diffstat (limited to 'src/server/cmd/commands/subscribe/parse.rs')
| -rw-r--r-- | src/server/cmd/commands/subscribe/parse.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/server/cmd/commands/subscribe/parse.rs b/src/server/cmd/commands/subscribe/parse.rs new file mode 100644 index 0000000..2a17cb2 --- /dev/null +++ b/src/server/cmd/commands/subscribe/parse.rs @@ -0,0 +1,21 @@ +// Copyleft 2021-2021 Whirlsplash +// SPDX-License-Identifier: GPL-3.0-only + +use byteorder::{BigEndian, ReadBytesExt}; +use bytes::{Buf, BytesMut}; + +use crate::server::cmd::commands::subscribe::structure::SubscribeRoom; + +/// TODO: The functionality of this function has not been tested... TEST IT! +pub fn parse_subscribe_room(data: Vec<u8>) -> SubscribeRoom { + // https://stackoverflow.com/questions/41034635/how-do-i-convert-between-string-str-vecu8-and-u8 + let mut data = BytesMut::from(data.as_slice()).reader(); + + SubscribeRoom { + room_number: data.read_i16::<BigEndian>().unwrap(), + distance: data.read_i16::<BigEndian>().unwrap(), + x: data.read_i16::<BigEndian>().unwrap(), + y: data.read_i16::<BigEndian>().unwrap(), + z: data.read_i16::<BigEndian>().unwrap(), + } +} |