]> git.lizzy.rs Git - rust.git/commitdiff
Define the unavailable target just once and re-use it
authorAndrea Canciani <ranma42@gmail.com>
Tue, 25 Apr 2017 14:11:18 +0000 (16:11 +0200)
committerAndrea Canciani <ranma42@gmail.com>
Tue, 25 Apr 2017 14:11:18 +0000 (16:11 +0200)
The same unavailable target value is used in two different places.
Abstracting it makes it easier to update it and recognise its purpose.

src/tools/build-manifest/src/main.rs

index c6f6b2dbc0f2153f403c72153d06c2e0bc9ad50a..574af1246361d3573d1ad5faf99cad70c685126a 100644 (file)
@@ -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 @@ fn build_manifest(&mut self) -> Manifest {
             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 @@ fn package(&mut self,
             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 {