clippy: clean up match and "if let"
diff --git a/src/client.rs b/src/client.rs
index d804b98..b9933c0 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -479,9 +479,8 @@
                 }
             };
 
-            match targets.targets().get(target) {
-                Some(t) => return (default_terminate, Ok(t.clone())),
-                None => (),
+            if let Some(t) = targets.targets().get(target) {
+                return (default_terminate, Ok(t.clone()));
             }
 
             let delegations = match targets.delegations() {
diff --git a/src/crypto.rs b/src/crypto.rs
index 25618ad..7227abf 100644
--- a/src/crypto.rs
+++ b/src/crypto.rs
@@ -74,10 +74,10 @@
     let mut size = 0;
     let mut hashes = HashMap::new();
     for alg in hash_algs {
-        let context = match alg {
-            &HashAlgorithm::Sha256 => digest::Context::new(&SHA256),
-            &HashAlgorithm::Sha512 => digest::Context::new(&SHA512),
-            &HashAlgorithm::Unknown(ref s) => return Err(Error::IllegalArgument(
+        let context = match *alg {
+            HashAlgorithm::Sha256 => digest::Context::new(&SHA256),
+            HashAlgorithm::Sha512 => digest::Context::new(&SHA512),
+            HashAlgorithm::Unknown(ref s) => return Err(Error::IllegalArgument(
                 format!("Unknown hash algorithm: {}", s)
             )),
         };
@@ -278,10 +278,10 @@
     }
 
     fn as_oid(&self) -> Result<&'static [u8]> {
-        match self {
-            &KeyType::Rsa => Ok(RSA_SPKI_OID),
-            &KeyType::Ed25519 => Ok(ED25519_SPKI_OID),
-            &KeyType::Unknown(ref s) => Err(Error::UnknownKeyType(s.clone())),
+        match *self {
+            KeyType::Rsa => Ok(RSA_SPKI_OID),
+            KeyType::Ed25519 => Ok(ED25519_SPKI_OID),
+            KeyType::Unknown(ref s) => Err(Error::UnknownKeyType(s.clone())),
         }
     }
 }
@@ -300,10 +300,10 @@
 
 impl ToString for KeyType {
     fn to_string(&self) -> String {
-        match self {
-            &KeyType::Ed25519 => "ed25519".to_string(),
-            &KeyType::Rsa => "rsa".to_string(),
-            &KeyType::Unknown(ref s) => s.to_string(),
+        match *self {
+            KeyType::Ed25519 => "ed25519".to_string(),
+            KeyType::Rsa => "rsa".to_string(),
+            KeyType::Unknown(ref s) => s.to_string(),
         }
     }
 }
@@ -333,9 +333,9 @@
 
 impl Debug for PrivateKeyType {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        let s = match self {
-            &PrivateKeyType::Ed25519(_) => "ed25519",
-            &PrivateKeyType::Rsa(_) => "rsa",
+        let s = match *self {
+            PrivateKeyType::Ed25519(_) => "ed25519",
+            PrivateKeyType::Rsa(_) => "rsa",
         };
         write!(f, "PrivateKeyType {{ \"{}\" }}", s)
     }
@@ -451,13 +451,10 @@
     }
 
     fn rsa_from_pkcs8(der_key: &[u8], scheme: SignatureScheme) -> Result<Self> {
-        match &scheme {
-            &SignatureScheme::Ed25519 => {
-                return Err(Error::IllegalArgument(
-                    "RSA keys do not support the Ed25519 signing scheme".into(),
-                ))
-            }
-            _ => (),
+        if let SignatureScheme::Ed25519 = scheme {
+            return Err(Error::IllegalArgument(
+                "RSA keys do not support the Ed25519 signing scheme".into(),
+            ));
         }
 
         let key = RSAKeyPair::from_pkcs8(Input::from(der_key)).map_err(|_| {
@@ -648,11 +645,11 @@
 
     /// Use this key to verify a message with a signature.
     pub fn verify(&self, msg: &[u8], sig: &Signature) -> Result<()> {
-        let alg: &ring::signature::VerificationAlgorithm = match &self.scheme {
-            &SignatureScheme::Ed25519 => &ED25519,
-            &SignatureScheme::RsaSsaPssSha256 => &RSA_PSS_2048_8192_SHA256,
-            &SignatureScheme::RsaSsaPssSha512 => &RSA_PSS_2048_8192_SHA512,
-            &SignatureScheme::Unknown(ref s) => return Err(Error::IllegalArgument(
+        let alg: &ring::signature::VerificationAlgorithm = match self.scheme {
+            SignatureScheme::Ed25519 => &ED25519,
+            SignatureScheme::RsaSsaPssSha256 => &RSA_PSS_2048_8192_SHA256,
+            SignatureScheme::RsaSsaPssSha512 => &RSA_PSS_2048_8192_SHA512,
+            SignatureScheme::Unknown(ref s) => return Err(Error::IllegalArgument(
                 format!("Unknown signature scheme: {}", s)
             )),
         };
diff --git a/src/interchange/cjson.rs b/src/interchange/cjson.rs
index 2071fb6..5f2d947 100644
--- a/src/interchange/cjson.rs
+++ b/src/interchange/cjson.rs
@@ -20,27 +20,37 @@
 
 impl Value {
     fn write(&self, mut buf: &mut Vec<u8>) -> Result<(), String> {
-        match self {
-            &Value::Null => Ok(buf.extend(b"null")),
-            &Value::Bool(true) => Ok(buf.extend(b"true")),
-            &Value::Bool(false) => Ok(buf.extend(b"false")),
-            &Value::Number(Number::I64(n)) => {
+        match *self {
+            Value::Null => {
+                buf.extend(b"null");
+                Ok(())
+            }
+            Value::Bool(true) => {
+                buf.extend(b"true");
+                Ok(())
+            }
+            Value::Bool(false) => {
+                buf.extend(b"false");
+                Ok(())
+            }
+            Value::Number(Number::I64(n)) => {
                 itoa::write(buf, n).map(|_| ()).map_err(|err| {
                     format!("Write error: {}", err)
                 })
             }
-            &Value::Number(Number::U64(n)) => {
+            Value::Number(Number::U64(n)) => {
                 itoa::write(buf, n).map(|_| ()).map_err(|err| {
                     format!("Write error: {}", err)
                 })
             }
-            &Value::String(ref s) => {
+            Value::String(ref s) => {
                 // this mess is abusing serde_json to get json escaping
                 let s = json::Value::String(s.clone());
                 let s = json::to_string(&s).map_err(|e| format!("{:?}", e))?;
-                Ok(buf.extend(s.as_bytes()))
+                buf.extend(s.as_bytes());
+                Ok(())
             }
-            &Value::Array(ref arr) => {
+            Value::Array(ref arr) => {
                 buf.push(b'[');
                 let mut first = true;
                 for a in arr.iter() {
@@ -50,9 +60,10 @@
                     a.write(&mut buf)?;
                     first = false;
                 }
-                Ok(buf.push(b']'))
+                buf.push(b']');
+                Ok(())
             }
-            &Value::Object(ref obj) => {
+            Value::Object(ref obj) => {
                 buf.push(b'{');
                 let mut first = true;
                 for (k, v) in obj.iter() {
@@ -69,7 +80,8 @@
                     buf.push(b':');
                     v.write(&mut buf)?;
                 }
-                Ok(buf.push(b'}'))
+                buf.push(b'}');
+                Ok(())
             }
         }
     }
@@ -81,31 +93,31 @@
 }
 
 fn convert(jsn: &json::Value) -> Result<Value, String> {
-    match jsn {
-        &json::Value::Null => Ok(Value::Null),
-        &json::Value::Bool(b) => Ok(Value::Bool(b)),
-        &json::Value::Number(ref n) => {
+    match *jsn {
+        json::Value::Null => Ok(Value::Null),
+        json::Value::Bool(b) => Ok(Value::Bool(b)),
+        json::Value::Number(ref n) => {
             n.as_i64()
                 .map(Number::I64)
-                .or(n.as_u64().map(Number::U64))
+                .or_else(|| n.as_u64().map(Number::U64))
                 .map(Value::Number)
                 .ok_or_else(|| String::from("only i64 and u64 are supported"))
         }
-        &json::Value::Array(ref arr) => {
+        json::Value::Array(ref arr) => {
             let mut out = Vec::new();
             for res in arr.iter().map(|v| convert(v)) {
                 out.push(res?)
             }
             Ok(Value::Array(out))
         }
-        &json::Value::Object(ref obj) => {
+        json::Value::Object(ref obj) => {
             let mut out = BTreeMap::new();
             for (k, v) in obj.iter() {
                 let _ = out.insert(k.clone(), convert(v)?);
             }
             Ok(Value::Object(out))
         }
-        &json::Value::String(ref s) => Ok(Value::String(s.clone())),
+        json::Value::String(ref s) => Ok(Value::String(s.clone())),
     }
 }
 
diff --git a/src/metadata.rs b/src/metadata.rs
index 9b77bac..90a1c36 100644
--- a/src/metadata.rs
+++ b/src/metadata.rs
@@ -168,12 +168,12 @@
     /// assert!(!Role::Root.fuzzy_matches_path(&MetadataPath::new("wat".into()).unwrap()));
     /// ```
     pub fn fuzzy_matches_path(&self, path: &MetadataPath) -> bool {
-        match self {
-            &Role::Root if &path.0 == "root" => true,
-            &Role::Snapshot if &path.0 == "snapshot" => true,
-            &Role::Timestamp if &path.0 == "timestamp" => true,
-            &Role::Targets if &path.0 == "targets" => true,
-            &Role::Targets if !&["root", "snapshot", "targets"].contains(&path.0.as_str()) => true,
+        match *self {
+            Role::Root if &path.0 == "root" => true,
+            Role::Snapshot if &path.0 == "snapshot" => true,
+            Role::Timestamp if &path.0 == "timestamp" => true,
+            Role::Targets if &path.0 == "targets" => true,
+            Role::Targets if !&["root", "snapshot", "targets"].contains(&path.0.as_str()) => true,
             _ => false,
         }
     }
@@ -181,11 +181,11 @@
 
 impl Display for Role {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        match self {
-            &Role::Root => write!(f, "root"),
-            &Role::Snapshot => write!(f, "snapshot"),
-            &Role::Targets => write!(f, "targets"),
-            &Role::Timestamp => write!(f, "timestamp"),
+        match *self {
+            Role::Root => write!(f, "root"),
+            Role::Snapshot => write!(f, "snapshot"),
+            Role::Targets => write!(f, "targets"),
+            Role::Timestamp => write!(f, "timestamp"),
         }
     }
 }
@@ -204,10 +204,10 @@
 impl MetadataVersion {
     /// Converts this struct into the string used for addressing metadata.
     pub fn prefix(&self) -> String {
-        match self {
-            &MetadataVersion::None => String::new(),
-            &MetadataVersion::Number(ref x) => format!("{}.", x),
-            &MetadataVersion::Hash(ref v) => format!("{}.", v),
+        match *self {
+            MetadataVersion::None => String::new(),
+            MetadataVersion::Number(ref x) => format!("{}.", x),
+            MetadataVersion::Hash(ref v) => format!("{}.", v),
         }
     }
 }
diff --git a/src/repository.rs b/src/repository.rs
index 410d45c..e0d36a8 100644
--- a/src/repository.rs
+++ b/src/repository.rs
@@ -302,7 +302,7 @@
             let mut segments = url.path_segments_mut().map_err(|_| {
                 Error::IllegalArgument(format!("URL was 'cannot-be-a-base': {:?}", self.url))
             })?;
-            if let &Some(ref prefix) = prefix {
+            if let Some(ref prefix) = prefix {
                 segments.extend(prefix);
             }
             segments.extend(components);
diff --git a/src/tuf.rs b/src/tuf.rs
index 56dda7b..777ed5d 100644
--- a/src/tuf.rs
+++ b/src/tuf.rs
@@ -535,37 +535,37 @@
     }
 
     fn safe_snapshot_ref(&self) -> Result<&SnapshotMetadata> {
-        match &self.snapshot {
-            &Some(ref snapshot) => {
+        match self.snapshot {
+            Some(ref snapshot) => {
                 if snapshot.expires() <= &Utc::now() {
                     return Err(Error::ExpiredMetadata(Role::Snapshot));
                 }
                 Ok(snapshot)
             }
-            &None => Err(Error::MissingMetadata(Role::Snapshot)),
+            None => Err(Error::MissingMetadata(Role::Snapshot)),
         }
     }
 
     fn safe_targets_ref(&self) -> Result<&TargetsMetadata> {
-        match &self.targets {
-            &Some(ref targets) => {
+        match self.targets {
+            Some(ref targets) => {
                 if targets.expires() <= &Utc::now() {
                     return Err(Error::ExpiredMetadata(Role::Targets));
                 }
                 Ok(targets)
             }
-            &None => Err(Error::MissingMetadata(Role::Targets)),
+            None => Err(Error::MissingMetadata(Role::Targets)),
         }
     }
     fn safe_timestamp_ref(&self) -> Result<&TimestampMetadata> {
-        match &self.timestamp {
-            &Some(ref timestamp) => {
+        match self.timestamp {
+            Some(ref timestamp) => {
                 if timestamp.expires() <= &Utc::now() {
                     return Err(Error::ExpiredMetadata(Role::Timestamp));
                 }
                 Ok(timestamp)
             }
-            &None => Err(Error::MissingMetadata(Role::Timestamp)),
+            None => Err(Error::MissingMetadata(Role::Timestamp)),
         }
     }
 }
diff --git a/src/util.rs b/src/util.rs
index 0845e8e..ea0f5b2 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -41,10 +41,10 @@
     ) -> Result<Self> {
         let hasher = match hash_data {
             Some((alg, value)) => {
-                let ctx = match alg {
-                    &HashAlgorithm::Sha256 => digest::Context::new(&SHA256),
-                    &HashAlgorithm::Sha512 => digest::Context::new(&SHA512),
-                    &HashAlgorithm::Unknown(ref s) => return Err(Error::IllegalArgument(
+                let ctx = match *alg {
+                    HashAlgorithm::Sha256 => digest::Context::new(&SHA256),
+                    HashAlgorithm::Sha512 => digest::Context::new(&SHA512),
+                    HashAlgorithm::Unknown(ref s) => return Err(Error::IllegalArgument(
                         format!("Unknown hash algorithm: {}", s)
                     )),
                 };
@@ -109,9 +109,8 @@
                     }
                 }
 
-                match self.hasher {
-                    Some((ref mut context, _)) => context.update(&buf[..(read_bytes)]),
-                    None => (),
+                if let Some((ref mut context, _)) = self.hasher {
+                    context.update(&buf[..(read_bytes)]);
                 }
 
                 Ok(read_bytes)