summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authortom barrett <spalf0@gmail.com>2018-04-16 02:28:33 -0500
committertom barrett <spalf0@gmail.com>2018-04-16 02:28:33 -0500
commit2940809bf50c2874487ba55efb17ba03c52dd9c2 (patch)
tree2a69facf7922c38256e5886484ad45a566cda970 /src/bin
parent4d7a7e368a3f0a6b1261e1b9180a2647eb158047 (diff)
-removed trait objects and went to structs with enumerations completely
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/client.rs17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/bin/client.rs b/src/bin/client.rs
index b690094..1766a59 100644
--- a/src/bin/client.rs
+++ b/src/bin/client.rs
@@ -2,11 +2,12 @@ extern crate space;
extern crate serde_json;
use std::io;
-use std::io::prelude::*;
use std::io::BufReader;
+use std::io::prelude::*;
use std::net::TcpStream;
+use std::collections::BTreeMap;
-use space::module::ModuleType;
+use space::module::{Module, ModuleType};
use space::client::mining::client_mining;
use space::client::engines::client_engines;
use space::client::dashboard::client_dashboard;
@@ -31,24 +32,24 @@ fn main() {
let mut recv = String::new();
buff_r.read_line(&mut recv).unwrap();
- let modules : Vec<ModuleType> = serde_json::from_str(&recv.replace("\n","")).unwrap();
+ let modules : BTreeMap<String, Module> = serde_json::from_str(&recv.replace("\n","")).unwrap();
println!("Choose your module:");
- for (i, module) in modules.iter().enumerate() {
+ for (i, module) in modules.keys().enumerate() {
println!("{}) {:?}", i, module);
}
let mut choice = String::new();
io::stdin().read_line(&mut choice).expect("Failed");
- let module = modules[choice.replace("\n", "").parse::<usize>().unwrap()].clone();
+ let module = modules.values().nth(choice.replace("\n", "").parse::<usize>().unwrap()).unwrap();
let send = serde_json::to_string(&module).unwrap() + "\n";
stream.write(send.as_bytes()).unwrap();
- match module {
- ModuleType::Mining => client_mining(stream, buff_r),
+ match module.module_type {
ModuleType::Dashboard => client_dashboard(buff_r),
ModuleType::Engines => client_engines(stream, buff_r),
- ModuleType::Navigation => client_navigation(name, stream, buff_r),
+ ModuleType::Mining{..} => client_mining(stream, buff_r),
+ ModuleType::Navigation{..} => client_navigation(name, stream, buff_r),
}
}