From 9ee581f8d9d0dd174c54d9c63093c8ed8e68f999 Mon Sep 17 00:00:00 2001 From: Thomas Hurst Date: Tue, 4 Sep 2018 22:29:04 +0100 Subject: Use unwrap_or_else() and unwrap_or_default() This is particularly good for fallbacks which allocate, like String::new() and "bla".to_string(). len() is mostly to shut up clippy. clippy:or_fun_call --- src/lib.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index 237706c..b5f0a92 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -549,9 +549,11 @@ impl Default for ParsedContentType { pub fn parse_content_type(header: &str) -> ParsedContentType { let params = parse_param_content(header); let mimetype = params.value.to_lowercase(); - let charset = params.params.get("charset").cloned().unwrap_or( - "us-ascii".to_string(), - ); + let charset = params + .params + .get("charset") + .cloned() + .unwrap_or_else(|| "us-ascii".to_string()); ParsedContentType { mimetype, @@ -694,7 +696,7 @@ impl<'a> ParsedMail<'a> { pub fn get_body_raw(&self) -> Result, MailParseError> { let transfer_coding = try!(self.headers.get_first_value("Content-Transfer-Encoding")) .map(|s| s.to_lowercase()); - let decoded = match transfer_coding.unwrap_or(String::new()).as_ref() { + let decoded = match transfer_coding.unwrap_or_default().as_ref() { "base64" => { let cleaned = self.body .iter() @@ -791,7 +793,8 @@ pub fn parse_mail(raw_data: &[u8]) -> Result { find_from_u8(raw_data, ix_boundary_end, b"\n").map(|v| v + 1) { // if there is no terminating boundary, assume the part end is the end of the email - let ix_part_end = find_from_u8(raw_data, ix_part_start, boundary.as_bytes()).unwrap_or(raw_data.len()); + let ix_part_end = find_from_u8(raw_data, ix_part_start, boundary.as_bytes()) + .unwrap_or_else(|| raw_data.len()); result.subparts.push(try!(parse_mail( &raw_data[ix_part_start..ix_part_end], -- cgit v1.2.3