/
githubmirror
/
fd
Обзор
Документация
Войти
/
githubmirror
/
fd
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/filetypes.rs
43 строки
2 KB
Christian Göttsche
Support character and block device file types
21 окт 2023, 14:56
21 окт 2023, 14:56
36bc840
Код
Авторство
О чём код?
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 } } }