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>
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>
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 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>
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§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,
impl<T> MaybeSendSync for T
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