//! Finding files in the file system use crate::regexes::EXTENSIONS; use ignore::Walk; use std::path::PathBuf; /// Find files recursively and append /// /// # Panics /// /// This function panics when a file extension cannot be converted to a string. pub fn find_files(dir: &PathBuf, files: &mut Vec) { // Recursive walk of passed directory (ignore errors, symlinks and non-dirs) for entry in Walk::new(dir).filter_map(std::result::Result::ok) { // If entry is file and has accepted extension, push to files if entry.file_type().unwrap().is_file() { let file = entry.path(); if let Some(ext_osstr) = file.extension() { let ext = ext_osstr.to_str().unwrap(); if EXTENSIONS.contains(&ext) { files.push(file.to_path_buf()); } } } } }