libsdl/
lib.rs

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}