pub struct ResolverContext {
pub age: usize,
pub activations: HashMap<(InternedString, SourceId, SemverCompatibility), (Summary, usize)>,
pub resolve_features: HashMap<PackageId, Rc<BTreeSet<InternedString>>>,
pub links: HashMap<InternedString, PackageId>,
pub parents: Graph<PackageId, HashSet<Dependency>>,
}
Fields§
§age: usize
§activations: HashMap<(InternedString, SourceId, SemverCompatibility), (Summary, usize)>
§resolve_features: HashMap<PackageId, Rc<BTreeSet<InternedString>>>
list the features that are activated for each package
links: HashMap<InternedString, PackageId>
get the package that will be linking to a native library by its links attribute
parents: Graph<PackageId, HashSet<Dependency>>
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§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>
§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>
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