summaryrefslogtreecommitdiff
path: root/src/mining.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/mining.rs')
-rw-r--r--src/mining.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mining.rs b/src/mining.rs
index ecc83c5..df425e0 100644
--- a/src/mining.rs
+++ b/src/mining.rs
@@ -1,4 +1,5 @@
use std::io::{BufReader, BufRead};
+use std::collections::HashMap;
use std::net::TcpStream;
use std::io::{stdout, Read, Write};
use termion::raw::IntoRawMode;
@@ -59,12 +60,13 @@ pub fn client_mining(mut stream : TcpStream, mut buff_r : BufReader<TcpStream>)
}
impl Connection {
- pub fn server_mining(&mut self, masses : &mut Vec<Box<Mass>>) -> bool {
- let m = masses.to_vec();
- let mass = masses.into_iter().find(|ship| ship.name() == &self.name).unwrap();
+ pub fn server_mining(&mut self, masses : &mut HashMap<String, Box<Mass>>) -> bool {
+ let masses_clone = masses.clone();
+ let mass = masses.get_mut(&self.name).unwrap();
let ship = mass.downcast_mut::<Ship>().unwrap();
+
let target = match ship.recv_target() {
- Some(name) => m.iter().find(|target| target.name() == &name),
+ Some(name) => masses_clone.get(&name),
None => None,
};