pub struct ResolverContext {
pub age: usize,
pub activations: HashMap<ActivationsKey, (Summary, usize), FxBuildHasher>,
pub resolve_features: HashMap<PackageId, Rc<BTreeSet<InternedString>>, FxBuildHasher>,
pub links: HashMap<InternedString, PackageId, FxBuildHasher>,
pub parents: Graph<PackageId, HashSet<Dependency, FxBuildHasher>>,
}Fields§
§age: usize§activations: HashMap<ActivationsKey, (Summary, usize), FxBuildHasher>§resolve_features: HashMap<PackageId, Rc<BTreeSet<InternedString>>, FxBuildHasher>list the features that are activated for each package
links: HashMap<InternedString, PackageId, FxBuildHasher>get the package that will be linking to a native library by its links attribute
parents: Graph<PackageId, HashSet<Dependency, FxBuildHasher>>a way to look up for a package in activations what packages required it and all of the exact deps that it fulfilled.
Implementations§
Source§impl ResolverContext
impl ResolverContext
pub fn new() -> ResolverContext
Sourcepub fn flag_activated(
&mut self,
summary: &Summary,
opts: &ResolveOpts,
parent: Option<(&Summary, &Dependency)>,
) -> ActivateResult<bool>
pub fn flag_activated( &mut self, summary: &Summary, opts: &ResolveOpts, parent: Option<(&Summary, &Dependency)>, ) -> ActivateResult<bool>
Activate this summary by inserting it into our list of known activations.
The parent passed in here is the parent summary/dependency edge which
cased summary to get activated. This may not be present for the root
crate, for example.
Returns true if this summary with the given features is already activated.
Sourcepub fn is_active(&self, id: PackageId) -> Option<usize>
pub fn is_active(&self, id: PackageId) -> Option<usize>
If the package is active returns the ContextAge when it was added
Sourcepub fn is_conflicting(
&self,
parent: Option<PackageId>,
conflicting_activations: &BTreeMap<PackageId, ConflictReason>,
) -> Option<usize>
pub fn is_conflicting( &self, parent: Option<PackageId>, conflicting_activations: &BTreeMap<PackageId, ConflictReason>, ) -> Option<usize>
Checks whether all of parent and the keys of conflicting activations
are still active.
If so returns the ContextAge when the newest one was added.
pub fn resolve_replacements( &self, registry: &RegistryQueryer<'_>, ) -> HashMap<PackageId, PackageId>
pub fn graph(&self) -> Graph<PackageId, HashSet<Dependency>>
Trait Implementations§
Source§impl Clone for ResolverContext
impl Clone for ResolverContext
Source§fn clone(&self) -> ResolverContext
fn clone(&self) -> ResolverContext
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ResolverContext
impl RefUnwindSafe for ResolverContext
impl !Send for ResolverContext
impl !Sync for ResolverContext
impl Unpin for ResolverContext
impl UnwindSafe for ResolverContext
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 96 bytes