pub trait Backend {
// Required methods
fn install(&mut self, package: PackageName) -> Result<(), Error>;
fn uninstall(&mut self, package: PackageName) -> Result<(), Error>;
fn upgrade(&mut self, package: PackageName) -> Result<(), Error>;
fn get_installed_packages(&self) -> Result<Vec<PackageName>, Error>;
}