use std::fs::DirEntry; use std::path::PathBuf; fn _find_event_mouses() -> Option> { PathBuf::from("/dev/input/by-path") .read_dir() .ok()? .filter_map(|x: Result| x.ok()) .filter(|x: &DirEntry| x.file_name().to_str().unwrap_or("").contains("event-mouse")) .map(|x: DirEntry| x.path()) .collect::>() .into() } pub fn find_event_mouses() -> Vec { _find_event_mouses().unwrap_or_else(Vec::new) } pub fn find_event_mouse() -> Option { find_event_mouses().into_iter().next() }