From 10f9db4335928636234562d6e4e6770fde512893 Mon Sep 17 00:00:00 2001 From: yihong0618 Date: Thu, 16 Jan 2025 09:08:10 +0800 Subject: [PATCH] refactor: refactor some unnecessary clone and use next_back to make clippy happy Signed-off-by: yihong0618 --- core/benches/vs_s3/src/main.rs | 6 +++--- core/src/raw/http_util/header.rs | 2 +- core/src/raw/path.rs | 2 +- core/src/services/azblob/error.rs | 3 ++- core/src/services/s3/error.rs | 5 +++-- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/core/benches/vs_s3/src/main.rs b/core/benches/vs_s3/src/main.rs index 91b1be90495f..324b2bbad98c 100644 --- a/core/benches/vs_s3/src/main.rs +++ b/core/benches/vs_s3/src/main.rs @@ -69,7 +69,7 @@ fn bench_read(c: &mut Criterion, op: Operator, s3_client: aws_sdk_s3::Client, bu let mut group = c.benchmark_group("read"); group.throughput(criterion::Throughput::Bytes(16 * 1024 * 1024)); - TEST_RUNTIME.block_on(prepare(op.clone())); + TEST_RUNTIME.block_on(prepare(&op)); group.bench_function("opendal_s3_reader", |b| { b.to_async(&*TEST_RUNTIME).iter(|| async { @@ -118,10 +118,10 @@ fn bench_read(c: &mut Criterion, op: Operator, s3_client: aws_sdk_s3::Client, bu group.finish() } -async fn prepare(op: Operator) { +async fn prepare(op: &Operator) { let mut rng = thread_rng(); let mut content = vec![0; 16 * 1024 * 1024]; rng.fill_bytes(&mut content); - op.write("file", content.clone()).await.unwrap(); + op.write("file", content).await.unwrap(); } diff --git a/core/src/raw/http_util/header.rs b/core/src/raw/http_util/header.rs index 2da77a4b08dc..2db92e9efcad 100644 --- a/core/src/raw/http_util/header.rs +++ b/core/src/raw/http_util/header.rs @@ -129,7 +129,7 @@ where .with_operation("http_util::parse_header_to_str") })?; - let value = if let Some(v) = headers.get(name.clone()) { + let value = if let Some(v) = headers.get(&name) { v } else { return Ok(None); diff --git a/core/src/raw/path.rs b/core/src/raw/path.rs index fb3c4ad07abc..79b44951495b 100644 --- a/core/src/raw/path.rs +++ b/core/src/raw/path.rs @@ -157,7 +157,7 @@ pub fn get_basename(path: &str) -> &str { if !path.ends_with('/') { return path .split('/') - .last() + .next_back() .expect("file path without name is invalid"); } diff --git a/core/src/services/azblob/error.rs b/core/src/services/azblob/error.rs index 1ea38ad8755e..14eb6de6e028 100644 --- a/core/src/services/azblob/error.rs +++ b/core/src/services/azblob/error.rs @@ -76,7 +76,8 @@ pub(super) fn parse_error(resp: Response) -> Error { _ => (ErrorKind::Unexpected, false), }; - let mut message = match de::from_reader::<_, AzblobError>(bs.clone().reader()) { + let bs_content = bs.chunk(); + let mut message = match de::from_reader::<_, AzblobError>(bs_content.reader()) { Ok(azblob_err) => format!("{azblob_err:?}"), Err(_) => String::from_utf8_lossy(&bs).into_owned(), }; diff --git a/core/src/services/s3/error.rs b/core/src/services/s3/error.rs index 503ca4ecbd77..eaa5e25b3a46 100644 --- a/core/src/services/s3/error.rs +++ b/core/src/services/s3/error.rs @@ -49,9 +49,10 @@ pub(super) fn parse_error(resp: Response) -> Error { _ => (ErrorKind::Unexpected, false), }; - let (message, s3_err) = de::from_reader::<_, S3Error>(body.clone().reader()) + let body_content = body.chunk(); + let (message, s3_err) = de::from_reader::<_, S3Error>(body_content.reader()) .map(|s3_err| (format!("{s3_err:?}"), Some(s3_err))) - .unwrap_or_else(|_| (String::from_utf8_lossy(body.chunk()).into_owned(), None)); + .unwrap_or_else(|_| (String::from_utf8_lossy(body_content).into_owned(), None)); if let Some(s3_err) = s3_err { (kind, retryable) = parse_s3_error_code(s3_err.code.as_str()).unwrap_or((kind, retryable));