aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/util/sync_helper.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-17 02:53:53 +0900
committernsfisis <nsfisis@gmail.com>2026-05-17 02:53:53 +0900
commita1c7e6908a26e10f6e1f23a51721664b5e2d838d (patch)
treec575c76f1b43359ed74913da4c6a2636643f1ba0 /crates/shirabe/src/util/sync_helper.rs
parent7f606f36fef0c0467c3c0db3d0da33af486dae8a (diff)
downloadphp-shirabe-a1c7e6908a26e10f6e1f23a51721664b5e2d838d.tar.gz
php-shirabe-a1c7e6908a26e10f6e1f23a51721664b5e2d838d.tar.zst
php-shirabe-a1c7e6908a26e10f6e1f23a51721664b5e2d838d.zip
chore(style): cargo fmt
Diffstat (limited to 'crates/shirabe/src/util/sync_helper.rs')
-rw-r--r--crates/shirabe/src/util/sync_helper.rs60
1 files changed, 49 insertions, 11 deletions
diff --git a/crates/shirabe/src/util/sync_helper.rs b/crates/shirabe/src/util/sync_helper.rs
index c5ab889..1be9075 100644
--- a/crates/shirabe/src/util/sync_helper.rs
+++ b/crates/shirabe/src/util/sync_helper.rs
@@ -1,11 +1,11 @@
//! ref: composer/src/Composer/Util/SyncHelper.php
-use anyhow::Result;
-use shirabe_external_packages::react::promise::promise_interface::PromiseInterface;
use crate::downloader::download_manager::DownloadManager;
use crate::downloader::downloader_interface::DownloaderInterface;
use crate::package::package_interface::PackageInterface;
use crate::util::r#loop::Loop;
+use anyhow::Result;
+use shirabe_external_packages::react::promise::promise_interface::PromiseInterface;
pub enum DownloaderOrManager<'a> {
Interface(&'a dyn DownloaderInterface),
@@ -13,14 +13,25 @@ pub enum DownloaderOrManager<'a> {
}
impl<'a> DownloaderOrManager<'a> {
- fn download(&self, package: &dyn PackageInterface, path: &str, prev_package: Option<&dyn PackageInterface>) -> Box<dyn PromiseInterface> {
+ fn download(
+ &self,
+ package: &dyn PackageInterface,
+ path: &str,
+ prev_package: Option<&dyn PackageInterface>,
+ ) -> Box<dyn PromiseInterface> {
match self {
Self::Interface(d) => d.download(package, path, prev_package),
Self::Manager(d) => d.download(package, path, prev_package),
}
}
- fn prepare(&self, r#type: &str, package: &dyn PackageInterface, path: &str, prev_package: Option<&dyn PackageInterface>) -> Box<dyn PromiseInterface> {
+ fn prepare(
+ &self,
+ r#type: &str,
+ package: &dyn PackageInterface,
+ path: &str,
+ prev_package: Option<&dyn PackageInterface>,
+ ) -> Box<dyn PromiseInterface> {
match self {
Self::Interface(d) => d.prepare(r#type, package, path, prev_package),
Self::Manager(d) => d.prepare(r#type, package, path, prev_package),
@@ -34,14 +45,25 @@ impl<'a> DownloaderOrManager<'a> {
}
}
- fn update(&self, package: &dyn PackageInterface, prev_package: &dyn PackageInterface, path: &str) -> Box<dyn PromiseInterface> {
+ fn update(
+ &self,
+ package: &dyn PackageInterface,
+ prev_package: &dyn PackageInterface,
+ path: &str,
+ ) -> Box<dyn PromiseInterface> {
match self {
Self::Interface(d) => d.update(package, prev_package, path),
Self::Manager(d) => d.update(package, prev_package, path),
}
}
- fn cleanup(&self, r#type: &str, package: &dyn PackageInterface, path: &str, prev_package: Option<&dyn PackageInterface>) -> Box<dyn PromiseInterface> {
+ fn cleanup(
+ &self,
+ r#type: &str,
+ package: &dyn PackageInterface,
+ path: &str,
+ prev_package: Option<&dyn PackageInterface>,
+ ) -> Box<dyn PromiseInterface> {
match self {
Self::Interface(d) => d.cleanup(r#type, package, path, prev_package),
Self::Manager(d) => d.cleanup(r#type, package, path, prev_package),
@@ -59,11 +81,21 @@ impl SyncHelper {
package: &dyn PackageInterface,
prev_package: Option<&dyn PackageInterface>,
) -> Result<()> {
- let r#type = if prev_package.is_some() { "update" } else { "install" };
+ let r#type = if prev_package.is_some() {
+ "update"
+ } else {
+ "install"
+ };
let result: Result<()> = (|| {
- Self::r#await(r#loop, Some(downloader.download(package, &path, prev_package)))?;
- Self::r#await(r#loop, Some(downloader.prepare(r#type, package, &path, prev_package)))?;
+ Self::r#await(
+ r#loop,
+ Some(downloader.download(package, &path, prev_package)),
+ )?;
+ Self::r#await(
+ r#loop,
+ Some(downloader.prepare(r#type, package, &path, prev_package)),
+ )?;
if r#type == "update" {
if let Some(prev) = prev_package {
Self::r#await(r#loop, Some(downloader.update(package, prev, &path)))?;
@@ -75,11 +107,17 @@ impl SyncHelper {
})();
if result.is_err() {
- Self::r#await(r#loop, Some(downloader.cleanup(r#type, package, &path, prev_package)))?;
+ Self::r#await(
+ r#loop,
+ Some(downloader.cleanup(r#type, package, &path, prev_package)),
+ )?;
return result;
}
- Self::r#await(r#loop, Some(downloader.cleanup(r#type, package, &path, prev_package)))?;
+ Self::r#await(
+ r#loop,
+ Some(downloader.cleanup(r#type, package, &path, prev_package)),
+ )?;
Ok(())
}