aboutsummaryrefslogtreecommitdiffstats
path: root/src/archive.rs
diff options
context:
space:
mode:
authorboasting-squirrel <boasting.squirrel@gmail.com>2019-03-12 18:23:22 +0000
committerboasting-squirrel <boasting.squirrel@gmail.com>2019-03-12 18:23:22 +0000
commit67d771fc3a954ea439e77afac092c84c5489d074 (patch)
tree2316eaa7ee80299abbc5fbb066cf1663e44e3461 /src/archive.rs
parentStarted to add helpful messages for errors which could occur during archiving (diff)
downloadminiserve-67d771fc3a954ea439e77afac092c84c5489d074.tar.gz
miniserve-67d771fc3a954ea439e77afac092c84c5489d074.zip
Added some error messages + reworked the print_error_chain method
Diffstat (limited to 'src/archive.rs')
-rw-r--r--src/archive.rs17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/archive.rs b/src/archive.rs
index afbcc6b..556fd69 100644
--- a/src/archive.rs
+++ b/src/archive.rs
@@ -126,12 +126,17 @@ fn tar(
/// Compresses a stream of bytes using the GZIP algorithm
fn gzip(mut data: &[u8]) -> Result<Vec<u8>, errors::CompressionError> {
let mut encoder =
- Encoder::new(Vec::new()).context(errors::CompressionErrorKind::GZipBuildingError)?;
- io::copy(&mut data, &mut encoder).context(errors::CompressionErrorKind::GZipBuildingError)?;
- let data = encoder
- .finish()
- .into_result()
- .context(errors::CompressionErrorKind::GZipBuildingError)?;
+ Encoder::new(Vec::new()).context(errors::CompressionErrorKind::GZipBuildingError {
+ message: "failed to create GZIP encoder".to_string(),
+ })?;
+ io::copy(&mut data, &mut encoder).context(errors::CompressionErrorKind::GZipBuildingError {
+ message: "failed to write GZIP data".to_string(),
+ })?;
+ let data = encoder.finish().into_result().context(
+ errors::CompressionErrorKind::GZipBuildingError {
+ message: "failed to write GZIP trailer".to_string(),
+ },
+ )?;
Ok(data)
}