pub struct RemainingDeps {
time: u32,
data: OrdSet<(DepsFrame, u32)>,
}
Expand description
Note that an OrdSet
is used for the remaining dependencies that need
activation. This set is sorted by how many candidates each dependency has.
This helps us get through super constrained portions of the dependency graph quickly and hopefully lock down what later larger dependencies can use (those with more candidates).
Fields§
§time: u32
a monotonic counter, increased for each new insertion.
data: OrdSet<(DepsFrame, u32)>
the data is augmented by the insertion time. This insures that no two items will cmp eq. Forcing the OrdSet into a multi set.
Implementations§
source§impl RemainingDeps
impl RemainingDeps
pub fn new() -> RemainingDeps
pub fn push(&mut self, x: DepsFrame)
pub fn pop_most_constrained( &mut self ) -> Option<(bool, (Summary, (Dependency, Rc<Vec<Summary>>, Rc<BTreeSet<InternedString>>)))>
pub fn iter(&mut self) -> impl Iterator<Item = (PackageId, Dependency)> + '_
Trait Implementations§
source§impl Clone for RemainingDeps
impl Clone for RemainingDeps
source§fn clone(&self) -> RemainingDeps
fn clone(&self) -> RemainingDeps
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 RemainingDeps
impl RefUnwindSafe for RemainingDeps
impl !Send for RemainingDeps
impl !Sync for RemainingDeps
impl Unpin for RemainingDeps
impl UnwindSafe for RemainingDeps
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
§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: 24 bytes