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
}
}