pub trait Packageable {
// Required methods
fn list_packages(&self) -> &[PackageInfo];
fn install_package(&mut self, package: &Package) -> Result<(), PackageError>;
fn uninstall_package(
&mut self,
package_id: &str,
) -> Result<(), PackageError>;
// Provided method
fn is_installed(&self, package_id: &str) -> bool { ... }
}Expand description
Trait for components that support package installation.
Implementing this trait allows a component to have packages installed that modify its behavior.
§Contract
list_packages()returns currently installed packagesinstall_package()adds new behavior from a packageuninstall_package()removes installed package behavior
Required Methods§
Sourcefn list_packages(&self) -> &[PackageInfo]
fn list_packages(&self) -> &[PackageInfo]
Returns the list of installed packages.
Sourcefn install_package(&mut self, package: &Package) -> Result<(), PackageError>
fn install_package(&mut self, package: &Package) -> Result<(), PackageError>
Sourcefn uninstall_package(&mut self, package_id: &str) -> Result<(), PackageError>
fn uninstall_package(&mut self, package_id: &str) -> Result<(), PackageError>
Provided Methods§
Sourcefn is_installed(&self, package_id: &str) -> bool
fn is_installed(&self, package_id: &str) -> bool
Returns whether a package is installed.