struct RemainingCandidates {
    remaining: RcVecIter<Summary>,
    has_another: Option<Summary>,
}
Expand description

A helper “iterator” used to extract candidates within a current Context of a dependency graph.

This struct doesn’t literally implement the Iterator trait (requires a few more inputs) but in general acts like one. Each RemainingCandidates is created with a list of candidates to choose from. When attempting to iterate over the list of candidates only valid candidates are returned. Validity is defined within a Context.

Candidates passed to new may not be returned from next as they could be filtered out, and as they are filtered the causes will be added to conflicting_prev_active.

Fields§

§remaining: RcVecIter<Summary>§has_another: Option<Summary>

Implementations§

source§

impl RemainingCandidates

source

fn new(candidates: &Rc<Vec<Summary>>) -> RemainingCandidates

source

fn next( &mut self, conflicting_prev_active: &mut BTreeMap<PackageId, ConflictReason>, cx: &Context, dep: &Dependency, parent: PackageId ) -> Option<(Summary, bool)>

Attempts to find another candidate to check from this list.

This method will attempt to move this iterator forward, returning a candidate that’s possible to activate. The cx argument is the current context which determines validity for candidates returned, and the dep is the dependency listing that we’re activating for.

If successful a (Candidate, bool) pair will be returned. The Candidate is the candidate to attempt to activate, and the bool is an indicator of whether there are remaining candidates to try of if we’ve reached the end of iteration.

If we’ve reached the end of the iterator here then Err will be returned. The error will contain a map of package ID to conflict reason, where each package ID caused a candidate to be filtered out from the original list for the reason listed.

Trait Implementations§

source§

impl Clone for RemainingCandidates

source§

fn clone(&self) -> RemainingCandidates

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

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: 32 bytes