use crate::{
find::Find,
pm::{Categorizable, Category, PmInfo, find_all_pms},
};
pub struct Asdf;
impl Asdf {
const NAME: &'static str = "asdf";
}
impl Find for Asdf {
type Output = PmInfo;
fn name(&self) -> &'static str {
Self::NAME
}
fn search_paths(&self) -> &'static [&'static str] {
&["~/.asdf/bin/asdf"]
}
fn find(&self) -> Vec<PmInfo> {
find_all_pms(Self::NAME)
.into_iter()
.map(|mut pm_info| {
if let Some(version) = pm_info.version.split_whitespace().nth(2) {
pm_info.version = version.to_string();
}
pm_info
})
.collect()
}
}
impl Categorizable for Asdf {
fn category(&self) -> Category {
Category::Versioner
}
}