summaryrefslogtreecommitdiff
path: root/src/server/connection.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/connection.rs')
-rw-r--r--src/server/connection.rs44
1 files changed, 23 insertions, 21 deletions
diff --git a/src/server/connection.rs b/src/server/connection.rs
index 973c5d1..4fed2b6 100644
--- a/src/server/connection.rs
+++ b/src/server/connection.rs
@@ -1,49 +1,51 @@
extern crate serde_json;
-use std::io::BufReader;
+use std::collections::HashMap;
use std::io::prelude::*;
+use std::io::BufReader;
use std::net::TcpStream;
-use std::collections::HashMap;
-use mass::Mass;
-use modules::types::ModuleType;
+use crate::mass::Mass;
+use crate::modules::types::ModuleType;
pub struct ServerConnection {
- pub name : String,
- pub module_type : ModuleType,
- pub stream : TcpStream,
- pub buff_r : BufReader<TcpStream>,
- pub open : bool,
+ pub name: String,
+ pub module_type: ModuleType,
+ pub stream: TcpStream,
+ pub buff_r: BufReader<TcpStream>,
+ pub open: bool,
}
impl ServerConnection {
- pub fn new(mut stream : TcpStream, masses : &mut HashMap<String, Mass>) -> ServerConnection {
+ pub fn new(mut stream: TcpStream, masses: &mut HashMap<String, Mass>) -> ServerConnection {
let mut buff_r = BufReader::new(stream.try_clone().unwrap());
let mut recv = String::new();
buff_r.read_line(&mut recv).unwrap();
- let name = &recv[..recv.find(":").unwrap()];
+ let name = &recv[..recv.find(':').unwrap()];
- let ship = masses.entry(name.to_string()).or_insert(Mass::new_ship());
+ let ship = masses
+ .entry(name.to_string())
+ .or_insert_with(Mass::new_ship);
let send = serde_json::to_string(&ship.get_modules()).unwrap() + "\n";
- stream.write(send.as_bytes()).unwrap();
+ stream.write_all(send.as_bytes()).unwrap();
let mut recv = String::new();
buff_r.read_line(&mut recv).unwrap();
- let module_type : ModuleType = serde_json::from_str(&recv.replace("\n","")).unwrap();
+ let module_type: ModuleType = serde_json::from_str(&recv.replace("\n", "")).unwrap();
stream.set_nonblocking(true).unwrap();
- ServerConnection {
- name : String::from(name),
- module_type : module_type,
- stream : stream,
- buff_r : buff_r,
- open : true,
+ ServerConnection {
+ name: String::from(name),
+ module_type,
+ stream,
+ buff_r,
+ open: true,
}
}
- pub fn process(&mut self, mut masses : &mut HashMap<String, Mass>) {
+ pub fn process(&mut self, mut masses: &mut HashMap<String, Mass>) {
match self.module_type {
ModuleType::Mining => self.server_mining(&mut masses),
ModuleType::Engines => self.server_engines(&mut masses),