Merge pull request #357 from tamird/assert-matches

Replace matches crate with assert_matches
diff --git a/interop-tests/Cargo.toml b/interop-tests/Cargo.toml
index dfc75d1..ea1b165 100644
--- a/interop-tests/Cargo.toml
+++ b/interop-tests/Cargo.toml
@@ -21,8 +21,8 @@
 walkdir = "2.3.2"
 
 [dev-dependencies]
+assert_matches = "1.5.0"
 futures-util = { version = "0.3.1", features = [ "io" ] }
-matches = "0.1.8"
 pretty_assertions = "1"
 tempfile = "3"
 
diff --git a/interop-tests/tests/test.rs b/interop-tests/tests/test.rs
index 4e17b26..ccd8ca7 100644
--- a/interop-tests/tests/test.rs
+++ b/interop-tests/tests/test.rs
@@ -34,9 +34,9 @@
 //! step name, that just contains the name of the step. This is used to verify that we can still
 //! download targets at each step of the test.
 
+use assert_matches::assert_matches;
 use futures_executor::block_on;
 use futures_util::io::AsyncReadExt;
-use matches::assert_matches;
 use pretty_assertions::assert_eq;
 use std::collections::BTreeMap;
 use std::path::{Path, PathBuf};
diff --git a/tuf/Cargo.toml b/tuf/Cargo.toml
index 231f81c..0e7675f 100644
--- a/tuf/Cargo.toml
+++ b/tuf/Cargo.toml
@@ -38,10 +38,10 @@
 url = "2"
 
 [dev-dependencies]
+assert_matches = "1.5.0"
 futures-executor = "0.3.1"
 lazy_static = "1"
 maplit = "1"
-matches = "0.1.8"
 pretty_assertions = "1"
 
 [features]
diff --git a/tuf/src/client.rs b/tuf/src/client.rs
index 3bac58c..3738672 100644
--- a/tuf/src/client.rs
+++ b/tuf/src/client.rs
@@ -1200,11 +1200,11 @@
     use crate::repository::{
         fetch_metadata_to_string, EphemeralRepository, ErrorRepository, Track, TrackRepository,
     };
+    use assert_matches::assert_matches;
     use chrono::prelude::*;
     use futures_executor::block_on;
     use lazy_static::lazy_static;
     use maplit::hashmap;
-    use matches::assert_matches;
     use pretty_assertions::assert_eq;
     use serde_json::json;
     use std::collections::HashMap;
diff --git a/tuf/src/crypto.rs b/tuf/src/crypto.rs
index 4758d37..b706ada 100644
--- a/tuf/src/crypto.rs
+++ b/tuf/src/crypto.rs
@@ -1085,7 +1085,7 @@
 #[cfg(test)]
 mod test {
     use super::*;
-    use matches::assert_matches;
+    use assert_matches::assert_matches;
     use pretty_assertions::assert_eq;
     use serde_json::{self, json};
 
diff --git a/tuf/src/database.rs b/tuf/src/database.rs
index e931b74..c90095d 100644
--- a/tuf/src/database.rs
+++ b/tuf/src/database.rs
@@ -984,8 +984,8 @@
         RawSignedMetadataSetBuilder, RootMetadataBuilder, SnapshotMetadataBuilder,
         TargetsMetadataBuilder, TimestampMetadataBuilder,
     };
+    use assert_matches::assert_matches;
     use lazy_static::lazy_static;
-    use matches::assert_matches;
     use std::iter::once;
 
     lazy_static! {
diff --git a/tuf/src/metadata.rs b/tuf/src/metadata.rs
index c52d64f..14ffae0 100644
--- a/tuf/src/metadata.rs
+++ b/tuf/src/metadata.rs
@@ -2146,10 +2146,10 @@
     use crate::crypto::Ed25519PrivateKey;
     use crate::interchange::Json;
     use crate::verify::verify_signatures;
+    use assert_matches::assert_matches;
     use chrono::prelude::*;
     use futures_executor::block_on;
     use maplit::{hashmap, hashset};
-    use matches::assert_matches;
     use pretty_assertions::assert_eq;
     use serde_json::json;
     use std::str::FromStr;
diff --git a/tuf/src/repo_builder.rs b/tuf/src/repo_builder.rs
index 7aa664a..46ce6d0 100644
--- a/tuf/src/repo_builder.rs
+++ b/tuf/src/repo_builder.rs
@@ -1324,6 +1324,7 @@
             metadata::SignedMetadata,
             repository::EphemeralRepository,
         },
+        assert_matches::assert_matches,
         chrono::{
             offset::{TimeZone as _, Utc},
             DateTime,
@@ -1332,7 +1333,6 @@
         futures_util::io::{AsyncReadExt, Cursor},
         lazy_static::lazy_static,
         maplit::hashmap,
-        matches::assert_matches,
         pretty_assertions::assert_eq,
         std::collections::BTreeMap,
     };
diff --git a/tuf/src/repository.rs b/tuf/src/repository.rs
index 4e20470..6f80c06 100644
--- a/tuf/src/repository.rs
+++ b/tuf/src/repository.rs
@@ -471,7 +471,7 @@
             self.repository.fetch_target(target_path).await?
         };
 
-        Ok(target.check_length_and_hash(length, hashes)?)
+        target.check_length_and_hash(length, hashes)
     }
 }
 
@@ -516,8 +516,8 @@
     use crate::interchange::Json;
     use crate::metadata::{MetadataPath, MetadataVersion, Role, RootMetadata, SnapshotMetadata};
     use crate::repository::EphemeralRepository;
+    use assert_matches::assert_matches;
     use futures_executor::block_on;
-    use matches::assert_matches;
 
     #[test]
     fn repository_forwards_not_found_error() {
diff --git a/tuf/src/repository/ephemeral.rs b/tuf/src/repository/ephemeral.rs
index 44f3aa2..938cbb8 100644
--- a/tuf/src/repository/ephemeral.rs
+++ b/tuf/src/repository/ephemeral.rs
@@ -215,8 +215,8 @@
     use super::*;
     use crate::interchange::Json;
     use crate::repository::{fetch_metadata_to_string, fetch_target_to_string};
+    use assert_matches::assert_matches;
     use futures_executor::block_on;
-    use matches::assert_matches;
 
     #[test]
     fn ephemeral_repo_targets() {
diff --git a/tuf/src/repository/file_system.rs b/tuf/src/repository/file_system.rs
index 537829a..bea4ed3 100644
--- a/tuf/src/repository/file_system.rs
+++ b/tuf/src/repository/file_system.rs
@@ -349,9 +349,9 @@
     use crate::interchange::Json;
     use crate::metadata::{Role, RootMetadata};
     use crate::repository::{fetch_metadata_to_string, fetch_target_to_string, Repository};
+    use assert_matches::assert_matches;
     use futures_executor::block_on;
     use futures_util::io::AsyncReadExt;
-    use matches::assert_matches;
     use tempfile;
 
     #[test]
diff --git a/tuf/tests/integration.rs b/tuf/tests/integration.rs
index 892aeb9..0edf478 100644
--- a/tuf/tests/integration.rs
+++ b/tuf/tests/integration.rs
@@ -1,6 +1,6 @@
+use assert_matches::assert_matches;
 use futures_executor::block_on;
 use maplit::hashmap;
-use matches::assert_matches;
 use tuf::crypto::{Ed25519PrivateKey, HashAlgorithm, PrivateKey};
 use tuf::interchange::Json;
 use tuf::metadata::{