The obvious implementation of SearchPath::files is a Vec<PathBuf>. But it is searched repeatedly by find_library_crate, and the searches involve checking the prefix and suffix of the filename of each PathBuf. This is doable, but very slow, because it involves calls to file_name and extension that are themselves slow.