From e068a9d644fde6659a88accd55b3f1d0d9d7cf46 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 23 May 2026 03:07:15 +0900 Subject: 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>> -> Result>). 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 --- crates/shirabe/src/downloader/xz_downloader.rs | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'crates/shirabe/src/downloader/xz_downloader.rs') diff --git a/crates/shirabe/src/downloader/xz_downloader.rs b/crates/shirabe/src/downloader/xz_downloader.rs index 6cc960e..d15287d 100644 --- a/crates/shirabe/src/downloader/xz_downloader.rs +++ b/crates/shirabe/src/downloader/xz_downloader.rs @@ -64,7 +64,7 @@ impl XzDownloader { (), )? == 0 { - return Ok(shirabe_external_packages::react::promise::resolve(None)); + return Ok(None); } let process_error = format!( @@ -89,7 +89,9 @@ impl crate::downloader::DownloaderInterface for XzDownloader { prev_package: Option<&dyn PackageInterface>, output: bool, ) -> Result> { - self.inner.download(package, path, prev_package, output) + self.inner + .download(package, path, prev_package, output) + .await } async fn prepare( @@ -99,7 +101,9 @@ impl crate::downloader::DownloaderInterface for XzDownloader { path: &str, prev_package: Option<&dyn PackageInterface>, ) -> Result> { - self.inner.prepare(r#type, package, path, prev_package) + self.inner + .prepare(r#type, package, path, prev_package) + .await } async fn install( @@ -108,7 +112,7 @@ impl crate::downloader::DownloaderInterface for XzDownloader { path: &str, output: bool, ) -> Result> { - self.inner.install(package, path, output) + self.inner.install(package, path, output).await } async fn update( @@ -117,7 +121,7 @@ impl crate::downloader::DownloaderInterface for XzDownloader { target: &dyn PackageInterface, path: &str, ) -> Result> { - self.inner.update(initial, target, path) + self.inner.update(initial, target, path).await } async fn remove( @@ -126,7 +130,7 @@ impl crate::downloader::DownloaderInterface for XzDownloader { path: &str, output: bool, ) -> Result> { - self.inner.remove(package, path, output) + self.inner.remove(package, path, output).await } async fn cleanup( @@ -136,6 +140,8 @@ impl crate::downloader::DownloaderInterface for XzDownloader { path: &str, prev_package: Option<&dyn PackageInterface>, ) -> Result> { - self.inner.cleanup(r#type, package, path, prev_package) + self.inner + .cleanup(r#type, package, path, prev_package) + .await } } -- cgit v1.3.1