[][src]Struct pubgrub::solver::OfflineDependencyProvider

pub struct OfflineDependencyProvider<P: Package, V: Version> { /* fields omitted */ }

A basic implementation of DependencyProvider.

Implementations

impl<P: Package, V: Version> OfflineDependencyProvider<P, V>[src]

pub fn new() -> Self[src]

Creates an empty OfflineDependencyProvider with no dependencies.

pub fn add_dependencies<I: IntoIterator<Item = (P, Range<V>)>>(
    &mut self,
    package: P,
    version: impl Into<V>,
    dependencies: I
)
[src]

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.

pub fn packages(&self) -> impl Iterator<Item = &P>[src]

Lists packages that have bean saved.

pub fn versions(&self, package: &P) -> Option<impl Iterator<Item = &V>>[src]

Lists versions of saved packages in sorted order. Returns None if no information is available regarding that package.

Trait Implementations

impl<P: Clone + Package, V: Clone + Version> Clone for OfflineDependencyProvider<P, V>[src]

impl<P: Debug + Package, V: Debug + Version> Debug for OfflineDependencyProvider<P, V>[src]

impl<P: Default + Package, V: Default + Version> Default for OfflineDependencyProvider<P, V>[src]

impl<P: Package, V: Version> DependencyProvider<P, V> for OfflineDependencyProvider<P, V>[src]

An implementation of DependencyProvider that contains all dependency information available in memory. Packages are picked with the fewest versions contained in the constraints first. Versions are picked with the newest versions first.

Auto Trait Implementations

impl<P, V> RefUnwindSafe for OfflineDependencyProvider<P, V> where
    P: RefUnwindSafe,
    V: RefUnwindSafe

impl<P, V> Send for OfflineDependencyProvider<P, V> where
    P: Send,
    V: Send

impl<P, V> Sync for OfflineDependencyProvider<P, V> where
    P: Sync,
    V: Sync

impl<P, V> Unpin for OfflineDependencyProvider<P, V> where
    P: Unpin,
    V: Unpin

impl<P, V> UnwindSafe for OfflineDependencyProvider<P, V> where
    P: RefUnwindSafe + UnwindSafe,
    V: RefUnwindSafe + UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.