1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
pub mod sdl { #[derive(Debug)] pub struct SerializableObject { pub codec_version: i32, pub username: String, pub userid: String, pub x_pos: f32, pub y_pos: f32, pub hub_module_amount: i32, pub cargo_module_amount: i32, pub thruster_module_amount: i32 } pub fn get_serializable_object() -> SerializableObject { SerializableObject { codec_version: 26, username: String::new(), userid: String::new(), x_pos: 0.0, y_pos: 0.0, hub_module_amount: 0, cargo_module_amount: 0, thruster_module_amount: 0 } } pub fn deserialize_object(data_string : String) -> SerializableObject { let data_array: Vec<&str> = data_string.split(':').collect(); SerializableObject { codec_version: data_array[1].parse::<i32>().unwrap(), username: data_array[3].to_string(), userid: data_array[5].to_string(), x_pos: data_array[7].parse::<f32>().unwrap(), y_pos: data_array[9].parse::<f32>().unwrap(), hub_module_amount: data_array[11].parse::<i32>().unwrap(), cargo_module_amount: data_array[13].parse::<i32>().unwrap(), thruster_module_amount: data_array[15].parse::<i32>().unwrap() } } pub fn serialize_object(data: SerializableObject) -> String { let mut data_string : String = String::new(); data_string = format!( "0:{}:1:{}:2:{}:3:{}:4:{}:5:{}:6:{}:7:{}", data.codec_version, data.username, data.userid, data.x_pos, data.y_pos, data.hub_module_amount, data.cargo_module_amount, data.thruster_module_amount); data_string } }