diff options
-rw-r--r-- | src/client/dashboard.rs | 27 |
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(); } } |