From f419c7d4e2c500f980e9e44ac2f1eaa033be0314 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 15 May 2026 01:05:02 +0900 Subject: feat(port): port NoopInstaller.php --- .../shirabe/src/installer/installer_interface.rs | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'crates/shirabe/src/installer/installer_interface.rs') diff --git a/crates/shirabe/src/installer/installer_interface.rs b/crates/shirabe/src/installer/installer_interface.rs index fa48f80..fc651bb 100644 --- a/crates/shirabe/src/installer/installer_interface.rs +++ b/crates/shirabe/src/installer/installer_interface.rs @@ -1 +1,25 @@ //! ref: composer/src/Composer/Installer/InstallerInterface.php + +use shirabe_external_packages::react::promise::promise_interface::PromiseInterface; +use crate::package::package_interface::PackageInterface; +use crate::repository::installed_repository_interface::InstalledRepositoryInterface; + +pub trait InstallerInterface { + fn supports(&self, package_type: &str) -> bool; + + fn is_installed(&self, repo: &dyn InstalledRepositoryInterface, package: &dyn PackageInterface) -> bool; + + fn download(&self, package: &dyn PackageInterface, prev_package: Option<&dyn PackageInterface>) -> anyhow::Result>>; + + fn prepare(&self, r#type: &str, package: &dyn PackageInterface, prev_package: Option<&dyn PackageInterface>) -> anyhow::Result>>; + + fn install(&self, repo: &mut dyn InstalledRepositoryInterface, package: &dyn PackageInterface) -> anyhow::Result>>; + + fn update(&self, repo: &mut dyn InstalledRepositoryInterface, initial: &dyn PackageInterface, target: &dyn PackageInterface) -> anyhow::Result>>; + + fn uninstall(&self, repo: &mut dyn InstalledRepositoryInterface, package: &dyn PackageInterface) -> anyhow::Result>>; + + fn cleanup(&self, r#type: &str, package: &dyn PackageInterface, prev_package: Option<&dyn PackageInterface>) -> anyhow::Result>>; + + fn get_install_path(&self, package: &dyn PackageInterface) -> Option; +} -- cgit v1.3.1