summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client/dashboard.rs27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/client/dashboard.rs b/src/client/dashboard.rs
index b9f0a08..cbc55ba 100644
--- a/src/client/dashboard.rs
+++ b/src/client/dashboard.rs
@@ -1,16 +1,37 @@
+extern crate termion;
extern crate serde_json;
-use std::io::BufRead;
-use std::io::BufReader;
use std::net::TcpStream;
+use std::io::{BufRead, BufReader, stdout, Write, Read};
+use self::termion::raw::IntoRawMode;
+use self::termion::async_stdin;
use mass::Mass;
pub fn client_dashboard(mut buff_r : BufReader<TcpStream>) {
+ let stdout = stdout();
+ let mut stdout = stdout.lock().into_raw_mode().unwrap();
+ let mut stdin = async_stdin().bytes();
+
loop {
let mut recv = String::new();
buff_r.read_line(&mut recv).unwrap();
let ship : Mass = serde_json::from_str(&recv).unwrap();
- println!("{:?}", ship);
+
+ write!(stdout, "{}{}{:?}",
+ termion::clear::All,
+ termion::cursor::Goto(1,1),
+ ship).unwrap();
+
+ match stdin.next() {
+ Some(c) => {
+ let c = c.unwrap() as char;
+ if c == 'q' {
+ break;
+ }
+ }
+ None => (),
+ }
+ stdout.flush().unwrap();
}
}