From 8cc1ba8a02c0318b65658f1634de378c780392b9 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 10 May 2026 00:32:08 +0900 Subject: refactor(workspace): consolidate crates into mozart-core Merged mozart-archiver, mozart-autoload, mozart-registry, mozart-sat-resolver, and mozart-vcs into mozart-core to align the source layout with Composer's structure. Co-Authored-By: Claude Sonnet 4.6 --- crates/mozart-registry/src/repository/vcs_repo.rs | 63 ----------------------- 1 file changed, 63 deletions(-) delete mode 100644 crates/mozart-registry/src/repository/vcs_repo.rs (limited to 'crates/mozart-registry/src/repository/vcs_repo.rs') diff --git a/crates/mozart-registry/src/repository/vcs_repo.rs b/crates/mozart-registry/src/repository/vcs_repo.rs deleted file mode 100644 index fff5f6f..0000000 --- a/crates/mozart-registry/src/repository/vcs_repo.rs +++ /dev/null @@ -1,63 +0,0 @@ -//! [`Repository`] for VCS-type repositories. -//! -//! Wraps [`crate::vcs_bridge::scan_vcs_repositories`] + [`crate::vcs_bridge::vcs_to_packagist_version`]. -//! Scanning is expensive (clones / fetches), so we do it once at construction -//! and serve subsequent queries from the in-memory cache. Mirrors -//! `Composer\Repository\Vcs\VcsRepository`'s lazy-then-memoized behavior. - -use super::{LoadResult, NamedPackagistVersion, PackageQuery, Repository}; -use crate::packagist::PackagistVersion; -use crate::vcs_bridge::{scan_vcs_repositories, vcs_to_packagist_version}; -use mozart_core::package::RawRepository; - -pub struct VcsRepository { - id: String, - versions: Vec<(String, PackagistVersion)>, -} - -impl VcsRepository { - /// Scan every VCS-type entry in `repositories` and cache the resulting - /// versions. Non-VCS entries are ignored. This performs network I/O. - pub async fn from_repositories(repositories: &[RawRepository]) -> Self { - let scanned = scan_vcs_repositories(repositories).await; - let versions = scanned - .iter() - .map(|v| (v.name.clone(), vcs_to_packagist_version(v))) - .collect(); - Self { - id: "vcs".to_string(), - versions, - } - } - - pub fn version_count(&self) -> usize { - self.versions.len() - } -} - -#[async_trait::async_trait] -impl Repository for VcsRepository { - fn id(&self) -> &str { - &self.id - } - - async fn load_packages(&self, queries: &[PackageQuery<'_>]) -> anyhow::Result { - let mut result = LoadResult::default(); - for query in queries { - let mut found_any = false; - for (name, version) in &self.versions { - if name == query.name { - found_any = true; - result.packages.push(NamedPackagistVersion { - name: name.clone(), - version: version.clone(), - }); - } - } - if found_any { - result.names_found.push(query.name.to_string()); - } - } - Ok(result) - } -} -- cgit v1.3.1