diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-23 03:07:15 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-23 15:48:00 +0900 |
| commit | e068a9d644fde6659a88accd55b3f1d0d9d7cf46 (patch) | |
| tree | bb719a70eb8c840957a94a5601df8961055ceb0f /crates/shirabe/src/downloader/path_downloader.rs | |
| parent | 60eb89529c8af2e4477e0bb65ed9e0f2dc7d3dd7 (diff) | |
| download | php-shirabe-e068a9d644fde6659a88accd55b3f1d0d9d7cf46.tar.gz php-shirabe-e068a9d644fde6659a88accd55b3f1d0d9d7cf46.tar.zst php-shirabe-e068a9d644fde6659a88accd55b3f1d0d9d7cf46.zip | |
refactor(promise): rewrite promise bodies to async/await
Mechanically convert promise-returning function bodies to async/await:
resolve() returns the value directly, forwarding calls get .await, and
simple .then chains become await sequences. Also collapse the installer
double-Option (Result<Option<Option<PhpMixed>>> -> Result<Option<PhpMixed>>).
Hard spots that depend on the Loop::wait / job-machine boundary
(accept/reject orchestration, closures capturing &mut self, batch waits)
are left intact and marked with TODO(phase-c-promise) for manual porting.
The crate does not compile yet; traits still need #[async_trait].
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/downloader/path_downloader.rs')
| -rw-r--r-- | crates/shirabe/src/downloader/path_downloader.rs | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/crates/shirabe/src/downloader/path_downloader.rs b/crates/shirabe/src/downloader/path_downloader.rs index 3da4915..f677a50 100644 --- a/crates/shirabe/src/downloader/path_downloader.rs +++ b/crates/shirabe/src/downloader/path_downloader.rs @@ -93,7 +93,7 @@ impl PathDownloader { let real_url = real_url.unwrap(); if realpath(&path).as_deref() == Some(&real_url) { - return Ok(shirabe_external_packages::react::promise::resolve(None)); + return Ok(None); } if format!( @@ -119,7 +119,7 @@ impl PathDownloader { .into()); } - Ok(shirabe_external_packages::react::promise::resolve(None)) + Ok(None) } pub async fn install( @@ -155,7 +155,7 @@ impl PathDownloader { ); } - return Ok(shirabe_external_packages::react::promise::resolve(None)); + return Ok(None); } // Get the transport options with default values @@ -290,7 +290,7 @@ impl PathDownloader { self.inner.io.write_error3("", true, io_interface::NORMAL); } - Ok(shirabe_external_packages::react::promise::resolve(None)) + Ok(None) } pub async fn remove( @@ -339,7 +339,7 @@ impl PathDownloader { .into()); } - return Ok(shirabe_external_packages::react::promise::resolve(None)); + return Ok(None); } let url = package.get_dist_url().ok_or_else(|| RuntimeException { @@ -378,10 +378,10 @@ impl PathDownloader { ); } - return Ok(shirabe_external_packages::react::promise::resolve(None)); + return Ok(None); } - self.inner.remove(package, &path, output) + self.inner.remove(package, &path, output).await } pub fn get_vcs_reference(&self, package: &dyn PackageInterface, path: &str) -> Option<String> { @@ -549,7 +549,9 @@ impl DownloaderInterface for PathDownloader { prev_package: Option<&dyn PackageInterface>, output: bool, ) -> Result<Option<PhpMixed>> { - self.inner.download(package, path, prev_package, output) + self.inner + .download(package, path, prev_package, output) + .await } async fn prepare( @@ -559,7 +561,9 @@ impl DownloaderInterface for PathDownloader { path: &str, prev_package: Option<&dyn PackageInterface>, ) -> Result<Option<PhpMixed>> { - self.inner.prepare(r#type, package, path, prev_package) + self.inner + .prepare(r#type, package, path, prev_package) + .await } async fn install( @@ -568,7 +572,7 @@ impl DownloaderInterface for PathDownloader { path: &str, output: bool, ) -> Result<Option<PhpMixed>> { - self.inner.install(package, path, output) + self.inner.install(package, path, output).await } async fn update( @@ -577,7 +581,7 @@ impl DownloaderInterface for PathDownloader { target: &dyn PackageInterface, path: &str, ) -> Result<Option<PhpMixed>> { - self.inner.update(initial, target, path) + self.inner.update(initial, target, path).await } async fn remove( @@ -586,7 +590,7 @@ impl DownloaderInterface for PathDownloader { path: &str, output: bool, ) -> Result<Option<PhpMixed>> { - self.inner.remove(package, path, output) + self.inner.remove(package, path, output).await } async fn cleanup( @@ -596,6 +600,8 @@ impl DownloaderInterface for PathDownloader { path: &str, prev_package: Option<&dyn PackageInterface>, ) -> Result<Option<PhpMixed>> { - self.inner.cleanup(r#type, package, path, prev_package) + self.inner + .cleanup(r#type, package, path, prev_package) + .await } } |
