pub struct DependencyResolver<'file, 'data: 'file> { /* private fields */ }
Expand description
An entity for resolving dependencies between packages.
Implementations§
source§impl<'file, 'data: 'file> DependencyResolver<'file, 'data>
impl<'file, 'data: 'file> DependencyResolver<'file, 'data>
sourcepub fn load_binary_packages(
&mut self,
files: impl Iterator<Item = &'file BinaryPackageControlFile<'data>>
) -> Result<()>
pub fn load_binary_packages( &mut self, files: impl Iterator<Item = &'file BinaryPackageControlFile<'data>> ) -> Result<()>
Load an iterable of binary packages into the resolver.
This effectively indexes the given binary package definitions and enables them to be discovered during subsequent dependency resolution.
sourcepub fn find_direct_binary_package_dependencies(
&self,
cf: &BinaryPackageControlFile<'_>,
dep: BinaryDependency
) -> Result<BinaryPackageDependenciesResolution<'file, 'data>>
pub fn find_direct_binary_package_dependencies( &self, cf: &BinaryPackageControlFile<'_>, dep: BinaryDependency ) -> Result<BinaryPackageDependenciesResolution<'file, 'data>>
Find direct dependencies given a binary control file and a dependency field.
This will resolve the specified BinaryDependency field to a list of constraints and then find candidate BinaryPackageControlFile satisfying all requirements within.
sourcepub fn find_transitive_binary_package_dependencies(
&self,
cf: &'file BinaryPackageControlFile<'data>,
fields: impl Iterator<Item = BinaryDependency>
) -> Result<BinaryPackageTransitiveDependenciesResolution<'file, 'data>>
pub fn find_transitive_binary_package_dependencies( &self, cf: &'file BinaryPackageControlFile<'data>, fields: impl Iterator<Item = BinaryDependency> ) -> Result<BinaryPackageTransitiveDependenciesResolution<'file, 'data>>
Resolve binary package dependencies transitively.
Given a binary package control file and an iterable of dependency fields to follow, this function will resolve the complete dependency graph for the given package.
It works by resolving direct dependencies. Then for each direct dependency, it resolves its direct dependencies. And this cycle continues until no new packages are discovered.
Only the dependency fields specified by fields
are searched. This allows
callers to e.g. not include Recommends
or Suggests
dependencies in the
returned set. Callers are strongly encouraged to include
BinaryDependency::Depends and BinaryDependency::PreDepends in this
iterable because the dependency graph will be logically incomplete with them.
Trait Implementations§
source§impl<'file, 'data: 'file> Clone for DependencyResolver<'file, 'data>
impl<'file, 'data: 'file> Clone for DependencyResolver<'file, 'data>
source§fn clone(&self) -> DependencyResolver<'file, 'data>
fn clone(&self) -> DependencyResolver<'file, 'data>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more