From f72ba1f4f66e15a94d044e5e888f2f75a2907dd6 Mon Sep 17 00:00:00 2001 From: dvkt Date: Fri, 22 Nov 2019 00:18:07 -0800 Subject: [PATCH] render() --- src/main.rs | 58 ++++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/src/main.rs b/src/main.rs index b2b499a..0af437d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -17,33 +17,7 @@ fn main() { stream.write("\r\n".as_ref()).unwrap(); let mut buf = String::new(); stream.read_to_string(&mut buf); - let mut start = true; - let mut skip_to_end = false; - for c in buf.chars() { - if start { - match c { - 'i' => print!("\x1B[93m"), - 'h' => print!("\x1B[94m"), - '0' => print!("\x1B[95m"), - '1' => print!("\x1B[96m"), - _ => print!("\x1B[0m"), - } - start = false - } else if skip_to_end { - if c == '\n' { - println!(""); - start = true; - skip_to_end = false; - } - } else if c == '\t' { - skip_to_end = true; - } else { - print!("{}", c); - if c == '\n' { - start = true - } - } - } + render(&buf); for c in stdin.keys() { // Clear the current line. @@ -82,3 +56,33 @@ fn main() { eprintln!("err: {}", err); }); } + +fn render(buf: &str) { + let mut start = true; + let mut skip_to_end = false; + for c in buf.chars() { + if start { + match c { + 'i' => print!("\x1B[93m"), + 'h' => print!("\x1B[94m"), + '0' => print!("\x1B[95m"), + '1' => print!("\x1B[96m"), + _ => print!("\x1B[0m"), + } + start = false + } else if skip_to_end { + if c == '\n' { + println!("\r"); + start = true; + skip_to_end = false; + } + } else if c == '\t' { + skip_to_end = true; + } else { + print!("{}", c); + if c == '\n' { + start = true + } + } + } +}