struct SourceIdInner {
url: Url,
canonical_url: CanonicalUrl,
kind: SourceKind,
precise: Option<Precise>,
registry_key: Option<KeyOf>,
}Expand description
The interned version of SourceId to avoid excessive clones and borrows.
Values are cached in SOURCE_ID_CACHE once created.
Fields§
§url: UrlThe source URL.
canonical_url: CanonicalUrlThe canonical version of the above url. See CanonicalUrl to learn
why it is needed and how it normalizes a URL.
kind: SourceKindThe source kind.
precise: Option<Precise>For example, the exact Git revision of the specified branch for a Git Source.
registry_key: Option<KeyOf>Name of the remote registry.
WARNING: this is not always set when the name is not known,
e.g. registry coming from --index or Cargo.lock
Trait Implementations§
Source§impl Clone for SourceIdInner
impl Clone for SourceIdInner
Source§fn clone(&self) -> SourceIdInner
fn clone(&self) -> SourceIdInner
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SourceIdInner
impl Debug for SourceIdInner
Source§impl Hash for SourceIdInner
The hash of SourceIdInner is used to retrieve its interned value from
SOURCE_ID_CACHE. We only care about fields that make SourceIdInner
unique. Optional fields not affecting the uniqueness must be excluded,
such as registry_key. That’s why this is not derived.
impl Hash for SourceIdInner
The hash of SourceIdInner is used to retrieve its interned value from
SOURCE_ID_CACHE. We only care about fields that make SourceIdInner
unique. Optional fields not affecting the uniqueness must be excluded,
such as registry_key. That’s why this is not derived.
Source§impl PartialEq for SourceIdInner
This implementation must be synced with SourceIdInner::hash.
impl PartialEq for SourceIdInner
This implementation must be synced with SourceIdInner::hash.
impl Eq for SourceIdInner
Auto Trait Implementations§
impl Freeze for SourceIdInner
impl RefUnwindSafe for SourceIdInner
impl Send for SourceIdInner
impl Sync for SourceIdInner
impl Unpin for SourceIdInner
impl UnwindSafe for SourceIdInner
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
§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<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: 344 bytes