aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/repository/filesystem_repository.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/repository/filesystem_repository.rs')
-rw-r--r--crates/shirabe/src/repository/filesystem_repository.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/crates/shirabe/src/repository/filesystem_repository.rs b/crates/shirabe/src/repository/filesystem_repository.rs
index d4b9b72e..9186a836 100644
--- a/crates/shirabe/src/repository/filesystem_repository.rs
+++ b/crates/shirabe/src/repository/filesystem_repository.rs
@@ -716,11 +716,15 @@ impl FilesystemRepository {
}
impl RepositoryInterface for FilesystemRepository {
- fn count(&self) -> anyhow::Result<usize> {
+ // PHP's ArrayRepository::count()/hasPackage() call $this->initialize(), which
+ // virtual-dispatches to FilesystemRepository::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)
}