diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-14 23:41:16 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-14 23:41:16 +0900 |
| commit | a857e40c1ce4100217c26603f5d1adbea3ab930c (patch) | |
| tree | 70bb1928d779d39a5fa49d17356310807029b60f /crates/shirabe/src | |
| parent | 785aa18c39f9629b7931e547ba9da6d080ac64b2 (diff) | |
| download | php-shirabe-a857e40c1ce4100217c26603f5d1adbea3ab930c.tar.gz php-shirabe-a857e40c1ce4100217c26603f5d1adbea3ab930c.tar.zst php-shirabe-a857e40c1ce4100217c26603f5d1adbea3ab930c.zip | |
feat(port): port DownloaderInterface.php
Diffstat (limited to 'crates/shirabe/src')
| -rw-r--r-- | crates/shirabe/src/downloader/downloader_interface.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/crates/shirabe/src/downloader/downloader_interface.rs b/crates/shirabe/src/downloader/downloader_interface.rs index 2e7aada..c78a094 100644 --- a/crates/shirabe/src/downloader/downloader_interface.rs +++ b/crates/shirabe/src/downloader/downloader_interface.rs @@ -1 +1,21 @@ //! ref: composer/src/Composer/Downloader/DownloaderInterface.php + +use shirabe_external_packages::react::promise::promise_interface::PromiseInterface; + +use crate::package::package_interface::PackageInterface; + +pub trait DownloaderInterface { + fn get_installation_source(&self) -> String; + + fn download(&self, package: &dyn PackageInterface, path: &str, prev_package: Option<&dyn PackageInterface>) -> anyhow::Result<Box<dyn PromiseInterface>>; + + fn prepare(&self, r#type: &str, package: &dyn PackageInterface, path: &str, prev_package: Option<&dyn PackageInterface>) -> anyhow::Result<Box<dyn PromiseInterface>>; + + fn install(&self, package: &dyn PackageInterface, path: &str) -> anyhow::Result<Box<dyn PromiseInterface>>; + + fn update(&self, initial: &dyn PackageInterface, target: &dyn PackageInterface, path: &str) -> anyhow::Result<Box<dyn PromiseInterface>>; + + fn remove(&self, package: &dyn PackageInterface, path: &str) -> anyhow::Result<Box<dyn PromiseInterface>>; + + fn cleanup(&self, r#type: &str, package: &dyn PackageInterface, path: &str, prev_package: Option<&dyn PackageInterface>) -> anyhow::Result<Box<dyn PromiseInterface>>; +} |
