lines.rs 684 B

1234567891011121314151617181920212223242526
  1. use std::io::{Write, Result as IOResult};
  2. use ansi_term::ANSIStrings;
  3. use fs::File;
  4. use output::file_name::{FileName, LinkStyle, Classify};
  5. use super::colours::Colours;
  6. #[derive(Clone, Copy, Debug, PartialEq)]
  7. pub struct Lines {
  8. pub colours: Colours,
  9. pub classify: Classify,
  10. }
  11. /// The lines view literally just displays each file, line-by-line.
  12. impl Lines {
  13. pub fn view<W: Write>(&self, files: Vec<File>, w: &mut W) -> IOResult<()> {
  14. for file in files {
  15. let name_cell = FileName::new(&file, LinkStyle::FullLinkPaths, self.classify, &self.colours).paint();
  16. writeln!(w, "{}", ANSIStrings(&name_cell))?;
  17. }
  18. Ok(())
  19. }
  20. }