summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2021-01-19 06:45:25 +0000
committerLars Wirzenius <liw@liw.fi>2021-01-19 06:45:25 +0000
commit093a15c354a71382212bfc2e4a564f81781755a8 (patch)
treec5610dbbb0e568a878c2e18c01d5aaaef2c7639a
parent6fa225df872ea63ddeffbc017f30c0eb96feb8ce (diff)
parent7391e26d18eb6833a6191e6359346f3c0c502607 (diff)
downloadobnam2-093a15c354a71382212bfc2e4a564f81781755a8.tar.gz
Merge branch 'errors' into 'main'
refactor: use ChunkId directly in errors, instead of String See merge request larswirzenius/obnam!68
-rw-r--r--src/client.rs6
-rw-r--r--src/error.rs9
-rw-r--r--src/index.rs4
3 files changed, 10 insertions, 9 deletions
diff --git a/src/client.rs b/src/client.rs
index 23df540..515b8c9 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -227,7 +227,7 @@ impl BackupClient {
let headers = res.headers();
let meta = headers.get("chunk-meta");
if meta.is_none() {
- let err = ObnamError::NoChunkMeta(chunk_id.to_string());
+ let err = ObnamError::NoChunkMeta(chunk_id.clone());
error!("fetching chunk {} failed: {}", chunk_id, err);
return Err(err.into());
}
@@ -240,8 +240,8 @@ impl BackupClient {
let body = body.to_vec();
let actual = sha256(&body);
if actual != meta.sha256() {
- let id = chunk_id.to_string();
- let err = ObnamError::WrongChecksum(id, actual, meta.sha256().to_string());
+ let err =
+ ObnamError::WrongChecksum(chunk_id.clone(), actual, meta.sha256().to_string());
error!("fetching chunk {} failed: {}", chunk_id, err);
return Err(err.into());
}
diff --git a/src/error.rs b/src/error.rs
index a35a99c..d368763 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -1,3 +1,4 @@
+use crate::chunkid::ChunkId;
use std::path::PathBuf;
use thiserror::Error;
@@ -11,14 +12,14 @@ pub enum ObnamError {
TooManyFiles(PathBuf),
#[error("Server response did not have a 'chunk-meta' header for chunk {0}")]
- NoChunkMeta(String),
+ NoChunkMeta(ChunkId),
#[error("Wrong checksum for chunk {0}, got {1}, expected {2}")]
- WrongChecksum(String, String, String),
+ WrongChecksum(ChunkId, String, String),
#[error("Chunk is missing: {0}")]
- MissingChunk(String),
+ MissingChunk(ChunkId),
#[error("Chunk is in store too many times: {0}")]
- DuplicateChunk(String),
+ DuplicateChunk(ChunkId),
}
diff --git a/src/index.rs b/src/index.rs
index fd38611..d527839 100644
--- a/src/index.rs
+++ b/src/index.rs
@@ -189,14 +189,14 @@ mod sql {
eprintln!("lookup: meta={:?}", meta);
metas.push(meta);
} else {
- let err = ObnamError::DuplicateChunk(id.to_string());
+ let err = ObnamError::DuplicateChunk(id.clone());
error!("{}", err);
return Err(err.into());
}
}
if metas.len() == 0 {
eprintln!("lookup: no hits");
- return Err(ObnamError::MissingChunk(format!("{}", id)).into());
+ return Err(ObnamError::MissingChunk(id.clone()).into());
}
let r = metas[0].clone();
Ok(r)