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