summaryrefslogtreecommitdiff
path: root/src/server/engines.rs
diff options
context:
space:
mode:
authortom barrett <spalf0@gmail.com>2018-04-26 03:33:49 -0500
committertom barrett <spalf0@gmail.com>2018-04-26 03:33:49 -0500
commit430b4ee12c72364e6901436951d66e4e6c43990d (patch)
tree368f7556a24517e16095fdd5885d306e8aa13b1a /src/server/engines.rs
parent923e49d29ce2f51df608011db192cbb73e8f7345 (diff)
-removed cloning of mass list
Diffstat (limited to 'src/server/engines.rs')
-rw-r--r--src/server/engines.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/server/engines.rs b/src/server/engines.rs
index 17391e6..710ed3a 100644
--- a/src/server/engines.rs
+++ b/src/server/engines.rs
@@ -10,10 +10,9 @@ use server::connection::ServerConnection;
impl ServerConnection {
pub fn server_engines(&mut self, masses : &mut HashMap<String, Mass>) -> bool {
- let masses_clone = masses.clone();
-
- let ship = masses.get_mut(&self.name).unwrap();
+ let mut ship = masses.remove(&self.name).unwrap();
let ship_clone = ship.clone();
+ let mut connection_good = true;
if let MassType::Ship{ref mut engines, ref navigation, ..} = ship.mass_type {
let navigation = navigation.clone().unwrap();
@@ -23,11 +22,11 @@ impl ServerConnection {
let send = serde_json::to_string(&targeted).unwrap() + "\n";
match self.stream.write(send.as_bytes()) {
Ok(_result) => (),
- Err(_error) => return false,
+ Err(_error) => connection_good = false,
}
let target = match navigation.target_name {
- Some(name) => masses_clone.get(&name),
+ Some(name) => masses.get(&name),
None => None,
};
let mut recv = String::new();
@@ -35,13 +34,14 @@ impl ServerConnection {
Ok(result) => {
engines.give_client_data(&ship_clone, target, recv);
if result == 0 {
- return false;
+ connection_good = false;
}
},
Err(_error) => (),
}
}
- true
+ masses.insert(self.name.clone(), ship);
+ connection_good
}
}