pub struct UniqueCrateData { /* private fields */ }Expand description
The crate data from which we derive the Crate.
We want this to contain as little data as possible, because if it contains dependencies and something changes, this crate and all of its dependencies ids are invalidated, which causes pretty much everything to be recomputed. If the crate id is not invalidated, only this crate’s information needs to be recomputed.
Most different crates have different root files (actually, pretty much all of them). Still, it is possible to have crates distinguished by other factors (e.g. dependencies). So we store only the root file - unless we find that this crate has the same root file as another crate, in which case we store all data for one of them (if one is a dependency of the other, we store for it, because it has more dependencies to be invalidated).
Trait Implementations§
Source§impl Clone for UniqueCrateData
impl Clone for UniqueCrateData
Source§fn clone(&self) -> UniqueCrateData
fn clone(&self) -> UniqueCrateData
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for UniqueCrateData
impl Debug for UniqueCrateData
Source§impl Hash for UniqueCrateData
impl Hash for UniqueCrateData
Source§impl PartialEq for UniqueCrateData
impl PartialEq for UniqueCrateData
impl Eq for UniqueCrateData
impl StructuralPartialEq for UniqueCrateData
Auto Trait Implementations§
impl Freeze for UniqueCrateData
impl RefUnwindSafe for UniqueCrateData
impl Send for UniqueCrateData
impl Sync for UniqueCrateData
impl Unpin for UniqueCrateData
impl UnwindSafe for UniqueCrateData
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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