Răsfoiți Sursa

Make the views non-Copy

This has to be done for when ignore patterns get introduced and have to be stored in a Vec.
Ben S 9 ani în urmă
părinte
comite
a6712994c5
6 a modificat fișierele cu 14 adăugiri și 14 ștergeri
  1. 4 4
      src/exa.rs
  2. 1 1
      src/options/filter.rs
  3. 3 3
      src/options/mod.rs
  4. 4 4
      src/options/view.rs
  5. 1 1
      src/output/details.rs
  6. 1 1
      src/output/grid_details.rs

+ 4 - 4
src/exa.rs

@@ -155,10 +155,10 @@ impl<'w, W: Write + 'w> Exa<'w, W> {
     fn print_files(&mut self, dir: Option<&Dir>, files: Vec<File>) -> IOResult<()> {
         if !files.is_empty() {
             match self.options.view {
-                View::Grid(g)         => g.view(&files, self.writer),
-                View::Details(d)      => d.view(dir, files, self.writer),
-                View::GridDetails(gd) => gd.view(dir, files, self.writer),
-                View::Lines(l)        => l.view(files, self.writer),
+                View::Grid(ref g)         => g.view(&files, self.writer),
+                View::Details(ref d)      => d.view(dir, files, self.writer),
+                View::GridDetails(ref gd) => gd.view(dir, files, self.writer),
+                View::Lines(ref l)        => l.view(files, self.writer),
             }
         }
         else {

+ 1 - 1
src/options/filter.rs

@@ -11,7 +11,7 @@ use options::misfire::Misfire;
 /// The **file filter** processes a vector of files before outputting them,
 /// filtering and sorting the files depending on the user’s command-line
 /// flags.
-#[derive(Default, PartialEq, Debug, Copy, Clone)]
+#[derive(Default, PartialEq, Debug, Clone)]
 pub struct FileFilter {
 
     /// Whether directories should be listed first, and other types of file

+ 3 - 3
src/options/mod.rs

@@ -23,7 +23,7 @@ pub use self::view::View;
 
 /// These **options** represent a parsed, error-checked versions of the
 /// user’s command-line options.
-#[derive(PartialEq, Debug, Copy, Clone)]
+#[derive(PartialEq, Debug, Clone)]
 pub struct Options {
 
     /// The action to perform when encountering a directory rather than a
@@ -137,12 +137,12 @@ impl Options {
     fn deduce(matches: &getopts::Matches) -> Result<Options, Misfire> {
         let dir_action = try!(DirAction::deduce(&matches));
         let filter = try!(FileFilter::deduce(&matches));
-        let view = try!(View::deduce(&matches, filter, dir_action));
+        let view = try!(View::deduce(&matches, filter.clone(), dir_action));
 
         Ok(Options {
             dir_action: dir_action,
             view:       view,
-            filter:     filter,
+            filter:     filter,  // TODO: clone
         })
     }
 }

+ 4 - 4
src/options/view.rs

@@ -11,7 +11,7 @@ use fs::feature::xattr;
 
 
 /// The **view** contains all information about how to format output.
-#[derive(PartialEq, Debug, Copy, Clone)]
+#[derive(PartialEq, Debug, Clone)]
 pub enum View {
     Details(Details),
     Grid(Grid),
@@ -51,7 +51,7 @@ impl View {
                     columns: Some(try!(Columns::deduce(matches))),
                     header: matches.opt_present("header"),
                     recurse: dir_action.recurse_options(),
-                    filter: filter,
+                    filter: filter.clone(),
                     xattr: xattr::ENABLED && matches.opt_present("extended"),
                     colours: colours,
                 };
@@ -109,7 +109,7 @@ impl View {
                         columns: None,
                         header: false,
                         recurse: dir_action.recurse_options(),
-                        filter: filter,
+                        filter: filter.clone(),  // TODO: clone
                         xattr: false,
                         colours: colours,
                     };
@@ -142,7 +142,7 @@ impl View {
                         columns: None,
                         header: false,
                         recurse: dir_action.recurse_options(),
-                        filter: filter,
+                        filter: filter.clone(),
                         xattr: false,
                         colours: colours,
                     };

+ 1 - 1
src/output/details.rs

@@ -115,7 +115,7 @@ use super::filename;
 ///
 /// Almost all the heavy lifting is done in a Table object, which handles the
 /// columns for each row.
-#[derive(PartialEq, Debug, Copy, Clone, Default)]
+#[derive(PartialEq, Debug, Clone, Default)]
 pub struct Details {
 
     /// A Columns object that says which columns should be included in the

+ 1 - 1
src/output/grid_details.rs

@@ -13,7 +13,7 @@ use output::column::Column;
 use output::details::{Details, Table, Environment};
 use output::grid::Grid;
 
-#[derive(PartialEq, Debug, Copy, Clone)]
+#[derive(PartialEq, Debug, Clone)]
 pub struct GridDetails {
     pub grid: Grid,
     pub details: Details,