diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-19 00:10:22 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-19 00:11:03 +0900 |
| commit | c839244d8d09f3036ebfee8eef7eb6b147e593ab (patch) | |
| tree | fe48c94f2c2e62468beef5ff1a8f3cff6adeef4f /crates/shirabe/src/util/sync_helper.rs | |
| parent | 48839250146b217e2756ed3c0e624fd341b54d6c (diff) | |
| download | php-shirabe-c839244d8d09f3036ebfee8eef7eb6b147e593ab.tar.gz php-shirabe-c839244d8d09f3036ebfee8eef7eb6b147e593ab.tar.zst php-shirabe-c839244d8d09f3036ebfee8eef7eb6b147e593ab.zip | |
fix(compile): fix various compile errors
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/util/sync_helper.rs')
| -rw-r--r-- | crates/shirabe/src/util/sync_helper.rs | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/crates/shirabe/src/util/sync_helper.rs b/crates/shirabe/src/util/sync_helper.rs index 1be9075..22e4f1f 100644 --- a/crates/shirabe/src/util/sync_helper.rs +++ b/crates/shirabe/src/util/sync_helper.rs @@ -9,7 +9,7 @@ use shirabe_external_packages::react::promise::promise_interface::PromiseInterfa pub enum DownloaderOrManager<'a> { Interface(&'a dyn DownloaderInterface), - Manager(&'a DownloadManager), + Manager(&'a std::rc::Rc<std::cell::RefCell<DownloadManager>>), } impl<'a> DownloaderOrManager<'a> { @@ -21,7 +21,7 @@ impl<'a> DownloaderOrManager<'a> { ) -> Box<dyn PromiseInterface> { match self { Self::Interface(d) => d.download(package, path, prev_package), - Self::Manager(d) => d.download(package, path, prev_package), + Self::Manager(d) => d.borrow().download(package, path, prev_package), } } @@ -34,14 +34,14 @@ impl<'a> DownloaderOrManager<'a> { ) -> 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), + Self::Manager(d) => d.borrow().prepare(r#type, package, path, prev_package), } } fn install(&self, package: &dyn PackageInterface, path: &str) -> Box<dyn PromiseInterface> { match self { Self::Interface(d) => d.install(package, path), - Self::Manager(d) => d.install(package, path), + Self::Manager(d) => d.borrow().install(package, path), } } @@ -53,7 +53,7 @@ impl<'a> DownloaderOrManager<'a> { ) -> Box<dyn PromiseInterface> { match self { Self::Interface(d) => d.update(package, prev_package, path), - Self::Manager(d) => d.update(package, prev_package, path), + Self::Manager(d) => d.borrow().update(package, prev_package, path), } } @@ -66,7 +66,7 @@ impl<'a> DownloaderOrManager<'a> { ) -> 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), + Self::Manager(d) => d.borrow().cleanup(r#type, package, path, prev_package), } } } @@ -75,7 +75,7 @@ pub struct SyncHelper; impl SyncHelper { pub fn download_and_install_package_sync( - r#loop: &Loop, + r#loop: &std::rc::Rc<std::cell::RefCell<Loop>>, downloader: DownloaderOrManager<'_>, path: String, package: &dyn PackageInterface, @@ -121,9 +121,12 @@ impl SyncHelper { Ok(()) } - pub fn r#await(r#loop: &Loop, promise: Option<Box<dyn PromiseInterface>>) -> Result<()> { + pub fn r#await( + r#loop: &std::rc::Rc<std::cell::RefCell<Loop>>, + promise: Option<Box<dyn PromiseInterface>>, + ) -> Result<()> { if let Some(promise) = promise { - r#loop.wait(vec![promise]); + r#loop.borrow_mut().wait(vec![promise], None)?; } Ok(()) } |
