about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndrea Canciani <ranma42@gmail.com>2017-04-25 16:11:18 +0200
committerAndrea Canciani <ranma42@gmail.com>2017-04-25 16:11:18 +0200
commit5439c9b4ec975083cb1bc2000a5faa21f737997a (patch)
tree3ecc820e252338024f3f116c11db51fd4442c813
parentac8892bdb227e135ed7e5c3f8bb34b6b031a4579 (diff)
downloadrust-5439c9b4ec975083cb1bc2000a5faa21f737997a.tar.gz
rust-5439c9b4ec975083cb1bc2000a5faa21f737997a.zip
Define the unavailable target just once and re-use it
The same unavailable target value is used in two different places.
Abstracting it makes it easier to update it and recognise its purpose.
-rw-r--r--src/tools/build-manifest/src/main.rs30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs
index c6f6b2dbc0f..574af124636 100644
--- a/src/tools/build-manifest/src/main.rs
+++ b/src/tools/build-manifest/src/main.rs
@@ -120,6 +120,18 @@ struct Target {
     extensions: Option<Vec<Component>>,
 }
 
+impl Target {
+    fn unavailable() -> Target {
+        Target {
+            available: false,
+            url: None,
+            hash: None,
+            components: None,
+            extensions: None,
+        }
+    }
+}
+
 #[derive(RustcEncodable)]
 struct Component {
     pkg: String,
@@ -242,13 +254,7 @@ impl Builder {
             let digest = match self.digests.remove(&filename) {
                 Some(digest) => digest,
                 None => {
-                    pkg.target.insert(host.to_string(), Target {
-                        available: false,
-                        url: None,
-                        hash: None,
-                        components: None,
-                        extensions: None,
-                    });
+                    pkg.target.insert(host.to_string(), Target::unavailable());
                     continue
                 }
             };
@@ -312,15 +318,7 @@ impl Builder {
             let filename = self.filename(pkgname, name);
             let digest = match self.digests.remove(&filename) {
                 Some(digest) => digest,
-                None => {
-                    return (name.to_string(), Target {
-                        available: false,
-                        url: None,
-                        hash: None,
-                        components: None,
-                        extensions: None,
-                    })
-                }
+                None => return (name.to_string(), Target::unavailable()),
             };
 
             (name.to_string(), Target {