Skip to main content

Resolution

Struct Resolution 

Source
pub struct Resolution {
    pub config: Config,
    pub snapshot: Snapshot,
    pub index: PackageIndex<Shared>,
    pub index_packages: HashMap<Id, Vec<SemVer>>,
}
Expand description

Stores the result of resolving version constraints to exact versions.

Fields§

§config: Config§snapshot: Snapshot

The snapshot (of path and git packages) that was used to construct this resolution. Note that path and git packages are not “resolved”; they have fixed versions. The snapshot is only used to collect index dependencies of git and path packages.

§index: PackageIndex<Shared>§index_packages: HashMap<Id, Vec<SemVer>>

All the index packages in the dependency tree.

Each package id can resolve to multiple versions, but those versions should all fall into disjoint semantic-version buckets.

Implementations§

Source§

impl Resolution

Source

pub fn precise(&self, dep: &Dependency) -> PrecisePkg

Finds the precise resolved version of this dependency.

§Panics

Panics if the dependency was not part of the dependency tree that this resolution was generated for.

Source

pub fn sorted_dependencies( &self, pkg: &PrecisePkg, ) -> Result<Vec<(Ident, Dependency, PrecisePkg)>, Error>

Returns the dependencies of a package.

§Panics

Panics if the package was not part of the dependency tree that this resolution was generated for.

Source

pub fn package_map(&self, manifest: &ManifestFile) -> Result<PackageMap, Error>

Returns a package map containing the entire dependency tree.

Source

pub fn dependencies( &self, pkg: &PrecisePkg, ) -> Result<HashMap<Ident, PrecisePkg>, Error>

Returns all the dependencies of a package, along with their package-local names.

Source

pub fn all_packages(&self) -> Vec<PrecisePkg>

Returns all the resolved packages in the dependency tree.

Trait Implementations§

Source§

impl Debug for Resolution

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T, U> ExactFrom<T> for U
where U: TryFrom<T>,

Source§

fn exact_from(value: T) -> U

Source§

impl<T, U> ExactInto<U> for T
where U: ExactFrom<T>,

Source§

fn exact_into(self) -> U

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> OverflowingInto<U> for T
where U: OverflowingFrom<T>,

Source§

impl<T, U> RoundingInto<U> for T
where U: RoundingFrom<T>,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> SaturatingInto<U> for T
where U: SaturatingFrom<T>,

Source§

impl<'ast, S, T> ToAst<'ast, T> for S
where T: FromMainline<'ast, S>,

Source§

fn to_ast(&self, alloc: &'ast AstAlloc, pos_table: &PosTable) -> T

Source§

impl<T> ToDebugString for T
where T: Debug,

Source§

fn to_debug_string(&self) -> String

Returns the String produced by Ts Debug implementation.

§Examples
use malachite_base::strings::ToDebugString;

assert_eq!([1, 2, 3].to_debug_string(), "[1, 2, 3]");
assert_eq!(
    [vec![2, 3], vec![], vec![4]].to_debug_string(),
    "[[2, 3], [], [4]]"
);
assert_eq!(Some(5).to_debug_string(), "Some(5)");
Source§

impl<S, T> ToMainline<T> for S
where T: FromAst<S>,

Source§

fn to_mainline(&self, pos_table: &mut PosTable) -> T

Source§

impl<T, U> TryConvert<'_, T> for U
where U: TryFrom<T>,

Source§

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

Source§

fn try_convert( _: &AstAlloc, from: T, ) -> Result<U, <U as TryConvert<'_, T>>::Error>

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U> WrappingInto<U> for T
where U: WrappingFrom<T>,

Source§

fn wrapping_into(self) -> U