on master help sign in
Revert "replace trait object BufRead by generic"

This reverts commit 037861e58886fd8220714a1f358de6663549b360.

commitb19169176734e50cabdbd3d70e5d51117595653e authorsharkdp <davidpeter@web.de> dateSat 18 Aug 2018, 20:49 (8 years ago) parent5c95b88
1 file changed+14−23
src/features.rs+14−23
src/features.rs+14−23
@@ -86,34 +86,25 @@ fn print_file(
8686 printer: &mut Printer,
8787 filename: Option<&str>,
8888) -> Result<()> {
89− printer.print_header(filename)?;
90−
91− let highlighter = HighlightLines::new(syntax, theme);
92− match filename {
93− None => {
94− let stdin = io::stdin(); // TODO: this is not always needed
95− print_file_ranges(
96− printer,
97− stdin.lock(),
98− highlighter,
99− &printer.config.line_range,
100− )?;
101− }
102− Some(filename) => print_file_ranges(
103− printer,
104− BufReader::new(File::open(filename)?),
105− highlighter,
106− &printer.config.line_range,
107− )?,
89+ let stdin = io::stdin(); // TODO: this is not always needed
90+ {
91+ let reader: Box<BufRead> = match filename {
92+ None => Box::new(stdin.lock()),
93+ Some(filename) => Box::new(BufReader::new(File::open(filename)?)),
94+ };
95+
96+ let highlighter = HighlightLines::new(syntax, theme);
97+
98+ printer.print_header(filename)?;
99+ print_file_ranges(printer, reader, highlighter, &printer.config.line_range)?;
100+ printer.print_footer()?;
108101 }
109−
110− printer.print_footer()?;
111102 Ok(())
112103}
113104
114−fn print_file_ranges<T: BufRead>(
105+fn print_file_ranges<'a>(
115106 printer: &mut Printer,
116− mut reader: T,
107+ mut reader: Box<BufRead + 'a>,
117108 mut highlighter: HighlightLines,
118109 line_ranges: &Option<LineRange>,
119110) -> Result<()> {