feat: check for multiple dependencies and return a vector

This commit is contained in:
Gabriele Musco 2023-06-03 20:05:27 +02:00
commit 15f4548999

View file

@ -1,17 +1,25 @@
use std::{env, path::Path}; use std::{env, path::Path};
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum DepType { pub enum DepType {
SharedObject, SharedObject,
Executable, Executable,
Include, Include,
} }
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Dependency { pub struct Dependency {
pub name: String, pub name: String,
pub dep_type: DepType, pub dep_type: DepType,
pub filename: String, pub filename: String,
} }
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct DependencyCheckResult {
pub dependency: Dependency,
pub found: bool,
}
fn shared_obj_paths() -> Vec<String> { fn shared_obj_paths() -> Vec<String> {
vec![ vec![
"/lib".to_string(), "/lib".to_string(),
@ -48,6 +56,15 @@ pub fn check_dependency(dep: Dependency) -> bool {
return false; return false;
} }
pub fn check_dependencies(deps: Vec<Dependency>) -> Vec<DependencyCheckResult> {
deps.iter()
.map(|dep| DependencyCheckResult {
dependency: dep.clone(),
found: check_dependency(dep.clone()),
})
.collect()
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::{check_dependency, DepType, Dependency}; use super::{check_dependency, DepType, Dependency};