// use crate::dir_entry; // use crate::filesystem; // // use faccess::PathExt; // // /// Whether or not to show // #[derive(Default)] // pub struct FileTypes { // pub files: bool, // pub directories: bool, // pub symlinks: bool, // pub block_devices: bool, // pub char_devices: bool, // pub sockets: bool, // pub pipes: bool, // pub executables_only: bool, // pub empty_only: bool, // } // // impl FileTypes { // pub fn should_ignore(&self, entry: &dir_entry::DirEntry) -> bool { // if let Some(ref entry_type) = entry.file_type() { // (!self.files && entry_type.is_file()) // || (!self.directories && entry_type.is_dir()) // || (!self.symlinks && entry_type.is_symlink()) // || (!self.block_devices && filesystem::is_block_device(*entry_type)) // || (!self.char_devices && filesystem::is_char_device(*entry_type)) // || (!self.sockets && filesystem::is_socket(*entry_type)) // || (!self.pipes && filesystem::is_pipe(*entry_type)) // || (self.executables_only && !entry.path().executable()) // || (self.empty_only && !filesystem::is_empty(entry)) // || !(entry_type.is_file() // || entry_type.is_dir() // || entry_type.is_symlink() // || filesystem::is_block_device(*entry_type) // || filesystem::is_char_device(*entry_type) // || filesystem::is_socket(*entry_type) // || filesystem::is_pipe(*entry_type)) // } else { // true // } // } // }