Replace with option syntaxic sugar

This commit is contained in:
Quentin
2020-11-11 16:12:42 +01:00
parent 045009da9b
commit 5a5592c176
5 changed files with 35 additions and 82 deletions
+6 -14
View File
@@ -21,25 +21,20 @@ pub async fn handle_copy(
source_bucket: &str,
source_key: &str,
) -> Result<Response<Body>, Error> {
let source_object = match garage
let source_object = garage
.object_table
.get(&source_bucket.to_string(), &source_key.to_string())
.await?
{
None => return Err(Error::NotFound),
Some(o) => o,
};
.ok_or(Error::NotFound)?;
let source_last_v = match source_object
let source_last_v = source_object
.versions()
.iter()
.rev()
.filter(|v| v.is_complete())
.next()
{
Some(v) => v,
None => return Err(Error::NotFound),
};
.ok_or(Error::NotFound)?;
let source_last_state = match &source_last_v.state {
ObjectVersionState::Complete(x) => x,
_ => unreachable!(),
@@ -69,10 +64,7 @@ pub async fn handle_copy(
.version_table
.get(&source_last_v.uuid, &EmptyKey)
.await?;
let source_version = match source_version {
Some(v) => v,
None => return Err(Error::NotFound),
};
let source_version = source_version.ok_or(Error::NotFound)?;
let dest_version = Version::new(
new_uuid,