aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/repository/lock_array_repository.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-19 00:10:22 +0900
committernsfisis <nsfisis@gmail.com>2026-05-19 00:11:03 +0900
commitc839244d8d09f3036ebfee8eef7eb6b147e593ab (patch)
treefe48c94f2c2e62468beef5ff1a8f3cff6adeef4f /crates/shirabe/src/repository/lock_array_repository.rs
parent48839250146b217e2756ed3c0e624fd341b54d6c (diff)
downloadphp-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/repository/lock_array_repository.rs')
-rw-r--r--crates/shirabe/src/repository/lock_array_repository.rs77
1 files changed, 74 insertions, 3 deletions
diff --git a/crates/shirabe/src/repository/lock_array_repository.rs b/crates/shirabe/src/repository/lock_array_repository.rs
index b44f27d..c0a5034 100644
--- a/crates/shirabe/src/repository/lock_array_repository.rs
+++ b/crates/shirabe/src/repository/lock_array_repository.rs
@@ -1,7 +1,15 @@
//! ref: composer/src/Composer/Repository/LockArrayRepository.php
+use crate::package::base_package::BasePackage;
+use crate::package::package_interface::PackageInterface;
use crate::repository::array_repository::ArrayRepository;
use crate::repository::canonical_packages_trait::CanonicalPackagesTrait;
+use crate::repository::repository_interface::{
+ FindPackageConstraint, LoadPackagesResult, ProviderInfo, RepositoryInterface, SearchResult,
+};
+use indexmap::IndexMap;
+use shirabe_php_shim::Countable;
+use shirabe_semver::constraint::constraint_interface::ConstraintInterface;
#[derive(Debug)]
pub struct LockArrayRepository {
@@ -9,13 +17,76 @@ pub struct LockArrayRepository {
}
impl CanonicalPackagesTrait for LockArrayRepository {
- fn get_packages(&self) -> Vec<Box<dyn crate::package::package_interface::PackageInterface>> {
+ fn get_packages(&self) -> Vec<Box<dyn PackageInterface>> {
todo!()
}
}
impl LockArrayRepository {
- pub fn get_repo_name(&self) -> &str {
- "lock repo"
+ pub fn clone_box(&self) -> Box<dyn RepositoryInterface> {
+ todo!()
+ }
+}
+
+impl Countable for LockArrayRepository {
+ fn count(&self) -> i64 {
+ self.inner.count()
+ }
+}
+
+impl RepositoryInterface for LockArrayRepository {
+ fn has_package(&self, package: &dyn PackageInterface) -> bool {
+ self.inner.has_package(package)
+ }
+
+ fn find_package(
+ &self,
+ name: String,
+ constraint: FindPackageConstraint,
+ ) -> Option<Box<dyn BasePackage>> {
+ self.inner.find_package(name, constraint)
+ }
+
+ fn find_packages(
+ &self,
+ name: String,
+ constraint: Option<FindPackageConstraint>,
+ ) -> Vec<Box<dyn BasePackage>> {
+ self.inner.find_packages(name, constraint)
+ }
+
+ fn get_packages(&self) -> Vec<Box<dyn BasePackage>> {
+ RepositoryInterface::get_packages(&self.inner)
+ }
+
+ fn load_packages(
+ &self,
+ package_name_map: IndexMap<String, Option<Box<dyn ConstraintInterface>>>,
+ acceptable_stabilities: IndexMap<String, i64>,
+ stability_flags: IndexMap<String, i64>,
+ already_loaded: IndexMap<String, IndexMap<String, Box<dyn PackageInterface>>>,
+ ) -> LoadPackagesResult {
+ self.inner.load_packages(
+ package_name_map,
+ acceptable_stabilities,
+ stability_flags,
+ already_loaded,
+ )
+ }
+
+ fn search(&self, query: String, mode: i64, r#type: Option<String>) -> Vec<SearchResult> {
+ self.inner.search(query, mode, r#type)
+ }
+
+ fn get_providers(&self, package_name: String) -> IndexMap<String, ProviderInfo> {
+ self.inner.get_providers(package_name)
+ }
+
+ fn get_repo_name(&self) -> String {
+ "lock repo".to_string()
+ }
+
+ fn as_any(&self) -> &dyn std::any::Any {
+ self
}
}