diff options
Diffstat (limited to 'crates/shirabe/src/repository/platform_repository.rs')
| -rw-r--r-- | crates/shirabe/src/repository/platform_repository.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/crates/shirabe/src/repository/platform_repository.rs b/crates/shirabe/src/repository/platform_repository.rs index e4d93d3b..30164237 100644 --- a/crates/shirabe/src/repository/platform_repository.rs +++ b/crates/shirabe/src/repository/platform_repository.rs @@ -1866,11 +1866,15 @@ impl PlatformRepository { } impl crate::repository::RepositoryInterface for PlatformRepository { - fn count(&self) -> anyhow::Result<usize> { + // PHP's ArrayRepository::count()/hasPackage() call $this->initialize(), which + // virtual-dispatches to PlatformRepository::initialize(); the guard restores that. + fn count(&mut self) -> anyhow::Result<usize> { + self.ensure_initialized()?; self.inner.count() } - fn has_package(&self, package: PackageInterfaceHandle) -> bool { + fn has_package(&mut self, package: PackageInterfaceHandle) -> anyhow::Result<bool> { + self.ensure_initialized()?; self.inner.has_package(package) } |
