//! ref: composer/src/Composer/Repository/LockArrayRepository.php use crate::package::BasePackage; use crate::package::PackageInterface; use crate::repository::ArrayRepository; use crate::repository::CanonicalPackagesTrait; use crate::repository::{ FindPackageConstraint, LoadPackagesResult, ProviderInfo, RepositoryInterface, SearchResult, }; use indexmap::IndexMap; use shirabe_php_shim::Countable; use shirabe_semver::constraint::ConstraintInterface; #[derive(Debug)] pub struct LockArrayRepository { inner: ArrayRepository, } impl CanonicalPackagesTrait for LockArrayRepository { fn get_packages(&self) -> Vec> { todo!() } } impl LockArrayRepository { pub fn clone_box(&self) -> Box { 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: &str, constraint: FindPackageConstraint, ) -> Option> { self.inner.find_package(name, constraint) } fn find_packages( &self, name: &str, constraint: Option, ) -> Vec> { self.inner.find_packages(name, constraint) } fn get_packages(&self) -> Vec> { RepositoryInterface::get_packages(&self.inner) } fn load_packages( &self, package_name_map: IndexMap>>, acceptable_stabilities: IndexMap, stability_flags: IndexMap, already_loaded: IndexMap>>, ) -> LoadPackagesResult { self.inner.load_packages( package_name_map, acceptable_stabilities, stability_flags, already_loaded, ) } fn search(&self, query: String, mode: i64, r#type: Option) -> Vec { self.inner.search(query, mode, r#type) } fn get_providers(&self, package_name: String) -> IndexMap { 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 } }