Sfoglia il codice sorgente

This makes exa work on other platforms than linux and macosx.

Michael Neumann 10 anni fa
parent
commit
6317417a98
1 ha cambiato i file con 15 aggiunte e 1 eliminazioni
  1. 15 1
      src/feature/xattr.rs

+ 15 - 1
src/feature/xattr.rs

@@ -12,6 +12,7 @@ pub trait FileAttributes {
     fn symlink_attributes(&self) -> io::Result<Vec<Attribute>>;
 }
 
+#[cfg(any(target_os = "macos", target_os = "linux"))]
 impl FileAttributes for Path {
     fn attributes(&self) -> io::Result<Vec<Attribute>> {
         list_attrs(lister::Lister::new(FollowSymlinks::Yes), &self)
@@ -22,7 +23,19 @@ impl FileAttributes for Path {
     }
 }
 
+#[cfg(not(any(target_os = "macos", target_os = "linux")))]
+impl FileAttributes for Path {
+    fn attributes(&self) -> io::Result<Vec<Attribute>> {
+        Ok(vec![])
+    }
+
+    fn symlink_attributes(&self) -> io::Result<Vec<Attribute>> {
+        Ok(vec![])
+    }
+}
+
 /// Attributes which can be passed to `Attribute::list_with_flags`
+#[cfg(any(target_os = "macos", target_os = "linux"))]
 #[derive(Copy, Clone)]
 pub enum FollowSymlinks {
     Yes,
@@ -36,6 +49,7 @@ pub struct Attribute {
     pub size: usize,
 }
 
+#[cfg(any(target_os = "macos", target_os = "linux"))]
 pub fn list_attrs(lister: lister::Lister, path: &Path) -> io::Result<Vec<Attribute>> {
     let c_path = match path.as_os_str().to_cstring() {
         Some(cstring) => cstring,
@@ -235,4 +249,4 @@ mod lister {
             }
         }
     }
-}
+}