pub struct PackageRegistry { /* private fields */ }Expand description
A registry of known packages and their versions/dependencies.
This serves as the DependencyProvider for pubgrub resolution.
In v1, packages are registered in-memory (from lockfiles, local dirs, etc.).
Implementations§
Source§impl PackageRegistry
impl PackageRegistry
Sourcepub fn register(
&mut self,
name: &str,
version: &str,
deps: BTreeMap<String, String>,
) -> Result<(), PkgError>
pub fn register( &mut self, name: &str, version: &str, deps: BTreeMap<String, String>, ) -> Result<(), PkgError>
Register a package version with its dependencies.
Dependencies are given as name → version_req pairs (e.g., "^1.0").
Sourcepub fn register_with_meta(
&mut self,
name: &str,
version: &str,
meta: PackageVersionMeta,
) -> Result<(), PkgError>
pub fn register_with_meta( &mut self, name: &str, version: &str, meta: PackageVersionMeta, ) -> Result<(), PkgError>
Register a package version with full metadata including targets and features.
Sourcepub fn available_versions(&self, name: &str) -> Vec<&Version>
pub fn available_versions(&self, name: &str) -> Vec<&Version>
List all available versions for a package.
Sourcepub fn has_package(&self, name: &str) -> bool
pub fn has_package(&self, name: &str) -> bool
Check if a package exists in the registry.
Sourcepub fn resolve(
&self,
root_name: &str,
root_version: &str,
direct_deps: &BTreeMap<String, String>,
) -> Result<ResolvedDeps, PkgError>
pub fn resolve( &self, root_name: &str, root_version: &str, direct_deps: &BTreeMap<String, String>, ) -> Result<ResolvedDeps, PkgError>
Resolve dependencies starting from a root package with given direct dependencies.
Returns the resolved set of packages and their versions.
Sourcepub fn resolve_for_target(
&self,
root_name: &str,
root_version: &str,
direct_deps: &BTreeMap<String, String>,
target: &str,
) -> Result<ResolvedDeps, PkgError>
pub fn resolve_for_target( &self, root_name: &str, root_version: &str, direct_deps: &BTreeMap<String, String>, target: &str, ) -> Result<ResolvedDeps, PkgError>
Resolve dependencies for a specific build target.
Packages whose supported_targets don’t include target are skipped
during version selection.
Sourcepub fn unify_features(
&self,
root_dep_features: &BTreeMap<String, Vec<String>>,
resolved: &ResolvedDeps,
) -> UnifiedFeatures
pub fn unify_features( &self, root_dep_features: &BTreeMap<String, Vec<String>>, resolved: &ResolvedDeps, ) -> UnifiedFeatures
Unify features requested for each dependency across the dependency graph.
When multiple paths in the dep graph request different features of the same package, the union of all requested feature sets is returned.
Trait Implementations§
Source§impl Clone for PackageRegistry
impl Clone for PackageRegistry
Source§fn clone(&self) -> PackageRegistry
fn clone(&self) -> PackageRegistry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more