diff options
author | tom barrett <spalf0@gmail.com> | 2019-03-21 09:48:59 -0500 |
---|---|---|
committer | tom barrett <spalf0@gmail.com> | 2019-03-21 09:48:59 -0500 |
commit | 6fb0b0d918963a22aeb4050139e8d0000c74a9ff (patch) | |
tree | 72c9ff1d51fbf8d599ad27730b5feab4d921c0a2 /src/client/navigation.rs | |
parent | 69aa9f090d551c1ebb211f3a01273b28421fc9c0 (diff) |
simplified client sending and added more tractorbeam options
Diffstat (limited to 'src/client/navigation.rs')
-rw-r--r-- | src/client/navigation.rs | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/client/navigation.rs b/src/client/navigation.rs index 7e6959b..ba6d912 100644 --- a/src/client/navigation.rs +++ b/src/client/navigation.rs @@ -12,7 +12,7 @@ use crate::modules::navigation; pub fn client_navigation(mut stream: TcpStream, mut buff_r: BufReader<TcpStream>) { let stdout = stdout(); let mut stdout = stdout.lock().into_raw_mode().unwrap(); - let mut stdin = async_stdin().bytes(); + let mut stdin = async_stdin(); loop { let mut recv = String::new(); @@ -51,20 +51,19 @@ pub fn client_navigation(mut stream: TcpStream, mut buff_r: BufReader<TcpStream> .unwrap(); } - if let Some(c) = stdin.next() { - let c = c.unwrap() as char; - if c == 'q' { - break; - } else { - let i = c.to_digit(10).unwrap() as usize; - if i < navigation_data.available_targets.len() { - let mut send = String::new(); - send.push_str(&navigation_data.available_targets[i].0); - send.push_str("\n"); - stream.write_all(send.as_bytes()).unwrap(); - } + let mut key = String::new(); + stdin.read_to_string(&mut key).unwrap(); + if key.as_str() == "q" { + break; + } else { + let mut send = String::new(); + if let Ok(i) = key.parse::<usize>() { + send.push_str(&navigation_data.available_targets[i].0); + send.push_str("\n"); + stream.write_all(send.as_bytes()).unwrap(); } } + stdout.flush().unwrap(); } } |