Skip to main content

Packageable

Trait Packageable 

Source
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 packages
  • install_package() adds new behavior from a package
  • uninstall_package() removes installed package behavior

Required Methods§

Source

fn list_packages(&self) -> &[PackageInfo]

Returns the list of installed packages.

Source

fn install_package(&mut self, package: &Package) -> Result<(), PackageError>

Installs a package.

§Errors

Returns PackageError if installation fails.

Source

fn uninstall_package(&mut self, package_id: &str) -> Result<(), PackageError>

Uninstalls a package by ID.

§Errors

Returns PackageError if uninstallation fails.

Provided Methods§

Source

fn is_installed(&self, package_id: &str) -> bool

Returns whether a package is installed.

Implementors§