]> git.proxmox.com Git - cargo.git/commitdiff
Cleanup some trait impls for SourceId
authorDale Wijnand <dale.wijnand@gmail.com>
Sun, 25 Nov 2018 12:15:57 +0000 (12:15 +0000)
committerDale Wijnand <dale.wijnand@gmail.com>
Thu, 13 Dec 2018 15:24:31 +0000 (15:24 +0000)
src/cargo/core/source/source_id.rs

index d0f093be1b95c987a47c8526bde6d2fe7ae1e772..ba799aa75306e414ca63a1b0e02b406c640b8494 100644 (file)
@@ -395,46 +395,25 @@ fn url_display(url: &Url) -> String {
 
 impl fmt::Display for SourceId {
     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
-        match *self.inner {
-            SourceIdInner {
-                kind: Kind::Path,
-                ref url,
-                ..
-            } => write!(f, "{}", url_display(url)),
-            SourceIdInner {
-                kind: Kind::Git(ref reference),
-                ref url,
-                ref precise,
-                ..
-            } => {
+        match self.inner.kind {
+            Kind::Git(ref reference) => {
                 // Don't replace the URL display for git references,
                 // because those are kind of expected to be URLs.
-                write!(f, "{}", url)?;
+                write!(f, "{}", self.inner.url)?;
                 if let Some(pretty) = reference.pretty_ref() {
                     write!(f, "?{}", pretty)?;
                 }
 
-                if let Some(ref s) = *precise {
+                if let Some(ref s) = self.inner.precise {
                     let len = cmp::min(s.len(), 8);
                     write!(f, "#{}", &s[..len])?;
                 }
                 Ok(())
             }
-            SourceIdInner {
-                kind: Kind::Registry,
-                ref url,
-                ..
-            }
-            | SourceIdInner {
-                kind: Kind::LocalRegistry,
-                ref url,
-                ..
-            } => write!(f, "registry `{}`", url_display(url)),
-            SourceIdInner {
-                kind: Kind::Directory,
-                ref url,
-                ..
-            } => write!(f, "dir {}", url_display(url)),
+            Kind::Path => write!(f, "{}", url_display(&self.inner.url)),
+            Kind::Registry => write!(f, "registry `{}`", url_display(&self.inner.url)),
+            Kind::LocalRegistry => write!(f, "registry `{}`", url_display(&self.inner.url)),
+            Kind::Directory => write!(f, "dir {}", url_display(&self.inner.url)),
         }
     }
 }
@@ -479,7 +458,7 @@ impl Ord for SourceIdInner {
             ord => return ord,
         }
         match (&self.kind, &other.kind) {
-            (&Kind::Git(ref ref1), &Kind::Git(ref ref2)) => {
+            (Kind::Git(ref1), Kind::Git(ref2)) => {
                 (ref1, &self.canonical_url).cmp(&(ref2, &other.canonical_url))
             }
             _ => self.kind.cmp(&other.kind),
@@ -493,12 +472,8 @@ impl Ord for SourceIdInner {
 impl Hash for SourceId {
     fn hash<S: hash::Hasher>(&self, into: &mut S) {
         self.inner.kind.hash(into);
-        match *self.inner {
-            SourceIdInner {
-                kind: Kind::Git(..),
-                ref canonical_url,
-                ..
-            } => canonical_url.as_str().hash(into),
+        match self.inner.kind {
+            Kind::Git(_) => self.inner.canonical_url.as_str().hash(into),
             _ => self.inner.url.as_str().hash(into),
         }
     }