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: Url
The source URL.
canonical_url: CanonicalUrl
The canonical version of the above url. See CanonicalUrl
to learn
why it is needed and how it normalizes a URL.
kind: SourceKind
The 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
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
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§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<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: 344 bytes