use crate::file::WinmdFile;
use std::path::{Path, PathBuf};
pub fn from_os() -> Vec<WinmdFile> {
let windir = std::env::var("windir").expect("No `windir` environent variable set");
let mut path = PathBuf::from(windir);
path.push(super::SYSTEM32);
path.push("winmetadata");
from_dir(path)
}
pub fn from_dir<P: AsRef<Path>>(directory: P) -> Vec<WinmdFile> {
let files = std::fs::read_dir(directory)
.unwrap()
.filter_map(|value| value.ok())
.map(|value| value.path());
from_files(files)
}
pub fn from_files<P: IntoIterator<Item = PathBuf>>(filenames: P) -> Vec<WinmdFile> {
filenames.into_iter().map(WinmdFile::new).collect()
}