@@ -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);