on master help sign in
Minor --file-name code hygeine
commit83772bd2cfd2603fd4185ee26cdd883383ad46cb authorKyle Criddle <criddle.kyle@gmail.com> dateWed 25 Mar 2020, 18:58 (7 years ago) parent131d113
2 files changed+9−16
src/bin/bat/app.rs+5−4 src/controller.rs+4−12
src/bin/bat/app.rs+5−4
@@ -136,10 +136,11 @@ impl App {
136136 }
137137 });
138138
139− if self.matches.value_of("file-name").is_some()
140− && self.matches.values_of("file-name").unwrap().len() != files.len()
141− {
142− return Err("When using --file-name, each input file must have a corresponding --file-name specified.".into());
139+ match self.matches.values_of("file-name") {
140+ Some(filenames) if filenames.len() != files.len() => {
141+ return Err(format!("{} {}", filenames.len(), files.len()).into());
142+ }
143+ _ => {}
143144 }
144145
145146 Ok(Config {
src/controller.rs+4−12
@@ -45,20 +45,12 @@ impl<'b> Controller<'b> {
4545
4646 let stdin = io::stdin();
4747
48− let filenames = if self.config.filenames.is_none() {
49− vec![None; self.config.files.len()]
50− } else {
51− self.config
52− .filenames
53− .as_ref()
54− .unwrap()
55− .into_iter()
56− .map(|name| Some(*name))
57− .collect()
48+ let filenames: Box<dyn Iterator<Item = _>> = match self.config.filenames {
49+ Some(ref filenames) => Box::new(filenames.into_iter().map(|name| Some(*name))),
50+ None => Box::new(std::iter::repeat(None)),
5851 };
5952
60− for it in self.config.files.iter().zip(filenames) {
61− let (input_file, file_name) = it;
53+ for (input_file, file_name) in self.config.files.iter().zip(filenames) {
6254 match input_file.get_reader(&stdin) {
6355 Err(error) => {
6456 handle_error(&error);