pub struct Context {
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 public_dependency: Option<PublicDependency>,
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
public_dependency: Option<PublicDependency>
for each package the list of names it can see, then for each name the exact version that name represents and whether the name is public.
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 Context
impl Context
pub fn new(check_public_visible_dependencies: bool) -> Context
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 still_applies(
&self,
id: PackageId,
reason: &ConflictReason
) -> Option<usize>
pub fn still_applies( &self, id: PackageId, reason: &ConflictReason ) -> Option<usize>
If the conflict reason on the package still applies 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§
Auto Trait Implementations§
impl RefUnwindSafe for Context
impl !Send for Context
impl !Sync for Context
impl Unpin for Context
impl UnwindSafe for Context
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> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§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>,
source§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: 120 bytes