diff --git a/src/client.rs b/src/client.rs
index 7edea98..d804b98 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -158,10 +158,10 @@
         let tuf = Tuf::from_root(&root)?;
 
         Ok(Client {
-            tuf: tuf,
-            config: config,
-            local: local,
-            remote: remote,
+            tuf,
+            config,
+            local,
+            remote,
         })
     }
 
@@ -205,10 +205,10 @@
         let tuf = Tuf::from_root_pinned(root, trusted_root_keys)?;
 
         Ok(Client {
-            tuf: tuf,
-            config: config,
-            local: local,
-            remote: remote,
+            tuf,
+            config,
+            local,
+            remote,
         })
     }
 
@@ -758,7 +758,7 @@
             max_timestamp_size: self.max_timestamp_size,
             min_bytes_per_second: self.min_bytes_per_second,
             max_delegation_depth: self.max_delegation_depth,
-            path_translator: path_translator,
+            path_translator,
         }
     }
 }
diff --git a/src/crypto.rs b/src/crypto.rs
index ec73de8..25618ad 100644
--- a/src/crypto.rs
+++ b/src/crypto.rs
@@ -445,8 +445,8 @@
         let private = PrivateKeyType::Ed25519(key);
 
         Ok(PrivateKey {
-            private: private,
-            public: public,
+            private,
+            public,
         })
     }
 
@@ -475,15 +475,15 @@
 
         let public = PublicKey {
             typ: KeyType::Rsa,
-            scheme: scheme,
+            scheme,
             key_id: calculate_key_id(&write_spki(&pub_key, &KeyType::Rsa)?),
             value: PublicKeyValue(pub_key),
         };
         let private = PrivateKeyType::Rsa(Arc::new(key));
 
         Ok(PrivateKey {
-            private: private,
-            public: public,
+            private,
+            public,
         })
     }
 
@@ -524,7 +524,7 @@
 
         Ok(Signature {
             key_id: self.key_id().clone(),
-            value: value,
+            value,
         })
     }
 
@@ -617,9 +617,9 @@
 
         let key_id = calculate_key_id(der_bytes);
         Ok(PublicKey {
-            typ: typ,
-            key_id: key_id,
-            scheme: scheme,
+            typ,
+            key_id,
+            scheme,
             value: PublicKeyValue(value),
         })
     }
diff --git a/src/metadata.rs b/src/metadata.rs
index dd782fe..9b77bac 100644
--- a/src/metadata.rs
+++ b/src/metadata.rs
@@ -524,14 +524,14 @@
         }
 
         Ok(RootMetadata {
-            version: version,
-            expires: expires,
-            consistent_snapshot: consistent_snapshot,
-            keys: keys,
-            root: root,
-            snapshot: snapshot,
-            targets: targets,
-            timestamp: timestamp,
+            version,
+            expires,
+            consistent_snapshot,
+            keys,
+            root,
+            snapshot,
+            targets,
+            timestamp,
         })
     }
 
@@ -633,8 +633,8 @@
         }
 
         Ok(RoleDefinition {
-            threshold: threshold,
-            key_ids: key_ids,
+            threshold,
+            key_ids,
         })
     }
 
@@ -786,9 +786,9 @@
         }
 
         Ok(TimestampMetadata {
-            version: version,
-            expires: expires,
-            snapshot: snapshot,
+            version,
+            expires,
+            snapshot,
         })
     }
 
@@ -864,9 +864,9 @@
         }
 
         Ok(MetadataDescription {
-            version: version,
+            version,
             size: size as usize,
-            hashes: hashes,
+            hashes,
         })
     }
 
@@ -890,9 +890,9 @@
         }
 
         Ok(MetadataDescription {
-            version: version,
-            size: size,
-            hashes: hashes,
+            version,
+            size,
+            hashes,
         })
     }
 
@@ -944,9 +944,9 @@
         }
 
         Ok(SnapshotMetadata {
-            version: version,
-            expires: expires,
-            meta: meta,
+            version,
+            expires,
+            meta,
         })
     }
 
@@ -1152,8 +1152,8 @@
         }
 
         Ok(TargetDescription {
-            size: size,
-            hashes: hashes,
+            size,
+            hashes,
         })
     }
 
@@ -1193,8 +1193,8 @@
     {
         let (size, hashes) = crypto::calculate_hashes(read, hash_algs)?;
         Ok(TargetDescription {
-            size: size,
-            hashes: hashes,
+            size,
+            hashes,
         })
     }
 
@@ -1243,10 +1243,10 @@
         }
 
         Ok(TargetsMetadata {
-            version: version,
-            expires: expires,
-            targets: targets,
-            delegations: delegations,
+            version,
+            expires,
+            targets,
+            delegations,
         })
     }
 
@@ -1334,7 +1334,7 @@
                 .cloned()
                 .map(|k| (k.key_id().clone(), k))
                 .collect(),
-            roles: roles,
+            roles,
         })
     }
 
@@ -1399,18 +1399,18 @@
             return Err(Error::IllegalArgument("Cannot have threshold < 1".into()));
         }
 
-        if (key_ids.len() as u64) < (threshold as u64) {
+        if (key_ids.len() as u64) < u64::from(threshold) {
             return Err(Error::IllegalArgument(
                 "Cannot have threshold less than number of keys".into(),
             ));
         }
 
         Ok(Delegation {
-            role: role,
-            terminating: terminating,
-            threshold: threshold,
-            key_ids: key_ids,
-            paths: paths,
+            role,
+            terminating,
+            threshold,
+            key_ids,
+            paths,
         })
     }
 
diff --git a/src/repository.rs b/src/repository.rs
index 0dfe366..410d45c 100644
--- a/src/repository.rs
+++ b/src/repository.rs
@@ -110,7 +110,7 @@
     /// Create a new repository on the local file system.
     pub fn new(local_path: PathBuf) -> Self {
         FileSystemRepository {
-            local_path: local_path,
+            local_path,
             interchange: PhantomData,
         }
     }
@@ -285,10 +285,10 @@
         };
 
         HttpRepository {
-            url: url,
-            client: client,
-            user_agent: user_agent,
-            metadata_prefix: metadata_prefix,
+            url,
+            client,
+            user_agent,
+            metadata_prefix,
             interchange: PhantomData,
         }
     }
diff --git a/src/shims.rs b/src/shims.rs
index a4842c8..cb7197a 100644
--- a/src/shims.rs
+++ b/src/shims.rs
@@ -53,7 +53,7 @@
             version: meta.version(),
             expires: format_datetime(&meta.expires()),
             consistent_snapshot: meta.consistent_snapshot(),
-            keys: keys,
+            keys,
             root: meta.root().clone(),
             snapshot: meta.snapshot().clone(),
             targets: meta.targets().clone(),
@@ -98,7 +98,7 @@
 
         Ok(RoleDefinition {
             threshold: role.threshold(),
-            key_ids: key_ids,
+            key_ids,
         })
     }
 
@@ -244,8 +244,8 @@
         public_key_bytes: &[u8],
     ) -> Self {
         PublicKey {
-            typ: typ,
-            scheme: scheme,
+            typ,
+            scheme,
             public_key: BASE64URL.encode(public_key_bytes),
         }
     }
@@ -289,8 +289,8 @@
             role: meta.role().clone(),
             terminating: meta.terminating(),
             threshold: meta.threshold(),
-            key_ids: key_ids,
-            paths: paths,
+            key_ids,
+            paths,
         }
     }
 
@@ -332,7 +332,7 @@
         keys.sort();
 
         Delegations {
-            keys: keys,
+            keys,
             roles: delegations.roles().clone(),
         }
     }
diff --git a/src/tuf.rs b/src/tuf.rs
index a13d5c6..56dda7b 100644
--- a/src/tuf.rs
+++ b/src/tuf.rs
@@ -60,7 +60,7 @@
             ),
         )?;
         Ok(Tuf {
-            root: root,
+            root,
             snapshot: None,
             targets: None,
             timestamp: None,
diff --git a/src/util.rs b/src/util.rs
index b34bdce..0845e8e 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -55,9 +55,9 @@
 
         Ok(SafeReader {
             inner: read,
-            max_size: max_size,
-            min_bytes_per_second: min_bytes_per_second,
-            hasher: hasher,
+            max_size,
+            min_bytes_per_second,
+            hasher,
             start_time: None,
             bytes_read: 0,
         })
