diff --git a/src/blob.rs b/src/blob.rs index 5e74adffc..64fde4520 100644 --- a/src/blob.rs +++ b/src/blob.rs @@ -155,7 +155,7 @@ impl<'a> BlobObject<'a> { return Err(format_err!("bad blob name: {}", rel_path.display())); } let name = rel_path.to_str().context("wrong name")?; - BlobObject::from_name(context, name.to_string()) + BlobObject::from_name(context, name) } /// Returns a [BlobObject] for an existing blob. @@ -164,13 +164,13 @@ impl<'a> BlobObject<'a> { /// prefixed, as returned by [BlobObject::as_name]. This is how /// you want to create a [BlobObject] for a filename read from the /// database. - pub fn from_name(context: &'a Context, name: String) -> Result> { - let name: String = match name.starts_with("$BLOBDIR/") { - true => name.splitn(2, '/').last().unwrap().to_string(), + pub fn from_name(context: &'a Context, name: &str) -> Result> { + let name = match name.starts_with("$BLOBDIR/") { + true => name.splitn(2, '/').last().unwrap(), false => name, }; - if !BlobObject::is_acceptible_blob_name(&name) { - return Err(format_err!("not an acceptable blob name: {}", &name)); + if !BlobObject::is_acceptible_blob_name(name) { + return Err(format_err!("not an acceptable blob name: {}", name)); } Ok(BlobObject { blobdir: context.get_blobdir(), diff --git a/src/mimefactory.rs b/src/mimefactory.rs index def21ce03..f728ce77c 100644 --- a/src/mimefactory.rs +++ b/src/mimefactory.rs @@ -1699,7 +1699,7 @@ async fn build_body_file(context: &Context, msg: &Message) -> Result Result { let blob = match path.starts_with("$BLOBDIR/") { - true => BlobObject::from_name(context, path.to_string())?, + true => BlobObject::from_name(context, path)?, false => BlobObject::from_path(context, path.as_ref())?, }; let body = fs::read(blob.to_abs_path()).await?; diff --git a/src/net/http.rs b/src/net/http.rs index 3184ecb1f..e863e8f99 100644 --- a/src/net/http.rs +++ b/src/net/http.rs @@ -167,7 +167,7 @@ async fn http_cache_get(context: &Context, url: &str) -> Result stale_timestamp; - let blob_object = BlobObject::from_name(context, blob_name)?; + let blob_object = BlobObject::from_name(context, &blob_name)?; let blob_abs_path = blob_object.to_abs_path(); let blob = match fs::read(blob_abs_path) .await diff --git a/src/param.rs b/src/param.rs index 2e61d6a69..e5c712569 100644 --- a/src/param.rs +++ b/src/param.rs @@ -367,7 +367,7 @@ impl Params { return Ok(None); }; ensure!(val.starts_with("$BLOBDIR/")); - let blob = BlobObject::from_name(context, val.to_string())?; + let blob = BlobObject::from_name(context, val)?; Ok(Some(blob)) }