Struct pubgrub::solver::OfflineDependencyProvider
source · pub struct OfflineDependencyProvider<P: Package, VS: VersionSet> { /* private fields */ }
Expand description
A basic implementation of DependencyProvider.
Implementations§
source§impl<P: Package, VS: VersionSet> OfflineDependencyProvider<P, VS>
impl<P: Package, VS: VersionSet> OfflineDependencyProvider<P, VS>
sourcepub fn add_dependencies<I: IntoIterator<Item = (P, VS)>>(
&mut self,
package: P,
version: impl Into<VS::V>,
dependencies: I
)
pub fn add_dependencies<I: IntoIterator<Item = (P, VS)>>( &mut self, package: P, version: impl Into<VS::V>, dependencies: I )
Registers the dependencies of a package and version pair. Dependencies must be added with a single call to add_dependencies. All subsequent calls to add_dependencies for a given package version pair will replace the dependencies by the new ones.
The API does not allow to add dependencies one at a time to uphold an assumption that OfflineDependencyProvider.get_dependencies(p, v) provides all dependencies of a given package (p) and version (v) pair.
Trait Implementations§
source§impl<P: Clone + Package, VS: Clone + VersionSet> Clone for OfflineDependencyProvider<P, VS>
impl<P: Clone + Package, VS: Clone + VersionSet> Clone for OfflineDependencyProvider<P, VS>
source§fn clone(&self) -> OfflineDependencyProvider<P, VS>
fn clone(&self) -> OfflineDependencyProvider<P, VS>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<P: Debug + Package, VS: Debug + VersionSet> Debug for OfflineDependencyProvider<P, VS>
impl<P: Debug + Package, VS: Debug + VersionSet> Debug for OfflineDependencyProvider<P, VS>
source§impl<P: Default + Package, VS: Default + VersionSet> Default for OfflineDependencyProvider<P, VS>
impl<P: Default + Package, VS: Default + VersionSet> Default for OfflineDependencyProvider<P, VS>
source§fn default() -> OfflineDependencyProvider<P, VS>
fn default() -> OfflineDependencyProvider<P, VS>
source§impl<P: Package, VS: VersionSet> DependencyProvider for OfflineDependencyProvider<P, VS>
impl<P: Package, VS: VersionSet> DependencyProvider for OfflineDependencyProvider<P, VS>
An implementation of DependencyProvider that contains all dependency information available in memory. Currently packages are picked with the fewest versions contained in the constraints first. But, that may change in new versions if better heuristics are found. Versions are picked with the newest versions first.
§type V = <VS as VersionSet>::V
type V = <VS as VersionSet>::V
§type VS = VS
type VS = VS
§type Err = Infallible
type Err = Infallible
source§fn choose_version(
&self,
package: &P,
range: &VS
) -> Result<Option<VS::V>, Infallible>
fn choose_version( &self, package: &P, range: &VS ) -> Result<Option<VS::V>, Infallible>
Priority
package from all potential valid
packages, it needs to know what vertion of that package to use. The most common pattern
is to select the largest vertion that the range contains.§type Priority = Reverse<usize>
type Priority = Reverse<usize>
prioritize
. The resolver does not care what type this is
as long as it can pick a largest one and clone it. Read more