use std::ffi::OsString;
use crate::plugins::NamedTool;
use crate::plugins::binaries::{Fd, Rg};
pub fn is_rg_available() -> bool {
Rg::system().probe_success(vec![OsString::from("--version")])
}
#[allow(dead_code)]
pub fn is_fd_available() -> bool {
Fd::system().probe_success(vec![OsString::from("--version")])
}
#[allow(dead_code)]
trait BoolHelper {
fn is_bool(&self) -> bool;
}
impl BoolHelper for bool {
fn is_bool(&self) -> bool {
true
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn availability_check_returns_bool() {
let _rg = is_rg_available();
let _fd = is_fd_available();
}
#[test]
fn availability_checks_are_safe() {
assert!(is_rg_available().is_bool() || !is_rg_available().is_bool());
assert!(is_fd_available().is_bool() || !is_fd_available().is_bool());
}
}