struct Downloads<'gctx> {
pending: HashMap<usize, (Download<'gctx>, EasyHandle)>,
pending_paths: HashSet<PathBuf>,
sleeping: SleepTracker<(Download<'gctx>, Easy)>,
results: HashMap<PathBuf, CargoResult<CompletedDownload>>,
next: usize,
progress: RefCell<Option<Progress<'gctx>>>,
downloads_finished: usize,
blocking_calls: usize,
}Expand description
State for currently pending index file downloads.
Fields§
§pending: HashMap<usize, (Download<'gctx>, EasyHandle)>When a download is started, it is added to this map. The key is a
“token” (see Download::token). It is removed once the download is
finished.
pending_paths: HashSet<PathBuf>Set of paths currently being downloaded.
This should stay in sync with the pending field.
sleeping: SleepTracker<(Download<'gctx>, Easy)>Downloads that have failed and are waiting to retry again later.
results: HashMap<PathBuf, CargoResult<CompletedDownload>>The final result of each download.
next: usizeThe next ID to use for creating a token (see Download::token).
progress: RefCell<Option<Progress<'gctx>>>Progress bar.
downloads_finished: usizeNumber of downloads that have successfully finished.
blocking_calls: usizeNumber of times the caller has requested blocking. This is used for an estimate of progress.
Implementations§
Auto Trait Implementations§
impl<'gctx> !Freeze for Downloads<'gctx>
impl<'gctx> !RefUnwindSafe for Downloads<'gctx>
impl<'gctx> !Send for Downloads<'gctx>
impl<'gctx> !Sync for Downloads<'gctx>
impl<'gctx> Unpin for Downloads<'gctx>
impl<'gctx> !UnwindSafe for Downloads<'gctx>
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>
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>
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>
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,
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: 328 bytes