diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs index 551a572..e80f98f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,10 @@ use std::fs::File; -use std::io::{self, BufRead, BufReader, Read, Write}; +use std::io::{self, Read, Write}; use structopt::StructOpt; mod choice; mod config; +mod reader; use config::Config; fn main() { @@ -15,14 +16,14 @@ fn main() { None => Box::new(io::stdin()) as Box<dyn Read>, }; - let buf = BufReader::new(read); + let mut reader = reader::BufReader::new(read); + let mut buffer = String::new(); let stdout = io::stdout(); let lock = stdout.lock(); let mut handle = io::BufWriter::new(lock); - let lines = buf.lines(); - for line in lines { + while let Some(line) = reader.read_line(&mut buffer) { match line { Ok(l) => { for choice in &config.opt.choice { @@ -30,7 +31,7 @@ fn main() { } match handle.write(b"\n") { Ok(_) => (), - Err(e) => eprintln!("Failed to write to output: {}", e) + Err(e) => eprintln!("Failed to write to output: {}", e), } } Err(e) => println!("Failed to read line: {}", e), |