struct Cache {
cache_location: Option<PathBuf>,
dirty: bool,
data: CacheData,
}
Expand description
It is a well known fact that rustc
is not the fastest compiler in the
world. What is less known is that even rustc --version --verbose
takes
about a hundred milliseconds! Because we need compiler version info even
for no-op builds, we cache it here, based on compiler’s mtime and rustup’s
current toolchain.
https://github.com/rust-lang/cargo/issues/5315 https://github.com/rust-lang/rust/issues/49761
Fields§
§cache_location: Option<PathBuf>
§dirty: bool
§data: CacheData
Implementations§
source§impl Cache
impl Cache
fn load( wrapper: Option<&Path>, workspace_wrapper: Option<&Path>, rustc: &Path, rustup_rustc: &Path, cache_location: Option<PathBuf>, gctx: &GlobalContext, ) -> Cache
fn cached_output( &mut self, cmd: &ProcessBuilder, extra_fingerprint: u64, ) -> CargoResult<(String, String)>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Cache
impl RefUnwindSafe for Cache
impl Send for Cache
impl Sync for Cache
impl Unpin for Cache
impl UnwindSafe for Cache
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: 136 bytes