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