pub mod java;
pub mod nss;
pub mod system;
use std::path::Path;
pub trait TrustStore: Send + Sync {
fn name(&self) -> &str;
fn is_available(&self) -> bool;
fn is_installed(&self, cert_path: &Path) -> bool;
fn install(&self, cert_path: &Path) -> anyhow::Result<()>;
fn uninstall(&self, cert_path: &Path) -> anyhow::Result<()>;
}
pub fn available_stores() -> Vec<Box<dyn TrustStore>> {
vec![
Box::new(system::SystemStore),
Box::new(nss::NssStore),
Box::new(java::JavaStore),
]
}