libkelp/lib/structs/
pm.rs

1use anyhow::Result;
2/// Base trait for PM integrations
3pub trait PackageManager {
4    fn install_packages(&mut self, packages: Vec<String>) -> Result<()>;
5    fn install_package(&mut self, package: &str) -> Result<()>;
6    fn new() -> Self;
7}
8/// Packages managers such as NPM or cargo
9pub trait ExternalPackageManager: PackageManager {
10    fn install_on_distro<T: PackageManager>(&mut self, pm: T) -> Result<()>;
11}