pub(super) struct ConflictCache {
con_from_dep: FxHashMap<Dependency, ConflictStoreTrie>,
dep_from_pid: FxHashMap<PackageId, FxHashSet<Dependency>>,
}
Fields§
§con_from_dep: FxHashMap<Dependency, ConflictStoreTrie>
§dep_from_pid: FxHashMap<PackageId, FxHashSet<Dependency>>
Implementations§
Source§impl ConflictCache
impl ConflictCache
pub fn new() -> ConflictCache
pub fn find( &self, dep: &Dependency, is_active: &impl Fn(PackageId) -> Option<usize>, must_contain: Option<PackageId>, max_age: usize, ) -> Option<&BTreeMap<PackageId, ConflictReason>>
Sourcepub fn find_conflicting(
&self,
cx: &ResolverContext,
dep: &Dependency,
must_contain: Option<PackageId>,
) -> Option<&BTreeMap<PackageId, ConflictReason>>
pub fn find_conflicting( &self, cx: &ResolverContext, dep: &Dependency, must_contain: Option<PackageId>, ) -> Option<&BTreeMap<PackageId, ConflictReason>>
Finds any known set of conflicts, if any,
which are activated in cx
and contain PackageId
specified.
If more than one are activated, then it will return
one that will allow for the most jump-back.
pub fn conflicting( &self, cx: &ResolverContext, dep: &Dependency, ) -> Option<&BTreeMap<PackageId, ConflictReason>>
Sourcepub fn insert(
&mut self,
dep: &Dependency,
con: &BTreeMap<PackageId, ConflictReason>,
)
pub fn insert( &mut self, dep: &Dependency, con: &BTreeMap<PackageId, ConflictReason>, )
Adds to the cache a conflict of the form:
dep
is known to be unresolvable if
all the PackageId
entries are activated.
pub fn dependencies_conflicting_with( &self, pid: PackageId, ) -> Option<&FxHashSet<Dependency>>
Auto Trait Implementations§
impl Freeze for ConflictCache
impl RefUnwindSafe for ConflictCache
impl Send for ConflictCache
impl Sync for ConflictCache
impl Unpin for ConflictCache
impl UnwindSafe for ConflictCache
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
Mutably borrows from an owned value. Read more
§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: 64 bytes