From cd25c3e193f05a5e89bca2a1c706c85fdc9c9155 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 6 Jun 2026 02:13:59 +0900 Subject: refactor(repository): make read methods fallible and take &mut self Change RepositoryInterface and WritableRepositoryInterface read methods (find_package, find_packages, get_packages, load_packages, search, get_providers, get_canonical_packages) to take &mut self and return anyhow::Result, so lazy-loading repositories such as ComposerRepository can perform fallible I/O and mutate internal state on access. Update all implementors and call sites to propagate the Result and pass mutable references. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/shirabe/src/command/update_command.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'crates/shirabe/src/command/update_command.rs') diff --git a/crates/shirabe/src/command/update_command.rs b/crates/shirabe/src/command/update_command.rs index 7fcfa4d..e28d407 100644 --- a/crates/shirabe/src/command/update_command.rs +++ b/crates/shirabe/src/command/update_command.rs @@ -212,8 +212,8 @@ impl UpdateCommand { .get_locker() .borrow_mut() .get_locked_repository(true)? - .borrow() - .get_canonical_packages() + .borrow_mut() + .get_canonical_packages()? { if package.is_dev() { continue; @@ -498,19 +498,17 @@ impl UpdateCommand { let mut autocompleter_values: IndexMap = IndexMap::new(); let installed_packages: Vec = if composer_ref.get_locker().borrow_mut().is_locked() { - CanonicalPackagesTrait::get_packages( - &*composer_ref - .get_locker() - .borrow_mut() - .get_locked_repository(true)? - .borrow(), - ) + let locked_repo = composer_ref + .get_locker() + .borrow_mut() + .get_locked_repository(true)?; + locked_repo.borrow_mut().get_canonical_packages()? } else { composer_ref .get_repository_manager() .borrow() .get_local_repository() - .get_packages() + .get_packages()? }; let mut version_selector = self.create_version_selector(composer)?; for package in &installed_packages { -- cgit v1.3.1