This is an automated email from the ASF dual-hosted git repository.

xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opendal.git


The following commit(s) were added to refs/heads/main by this push:
     new 753d4a83c refactor: refactor all body.copy_to_bytes(body.remaining()) 
(#5561)
753d4a83c is described below

commit 753d4a83cc9e2401414e3aaa65d3eee487ab5f6c
Author: yihong <[email protected]>
AuthorDate: Fri Jan 17 14:33:33 2025 +0800

    refactor: refactor all body.copy_to_bytes(body.remaining()) (#5561)
    
    Co-authored-by: Xuanwo <[email protected]>
---
 core/src/services/aliyun_drive/error.rs     | 4 ++--
 core/src/services/alluxio/error.rs          | 4 ++--
 core/src/services/azdls/error.rs            | 4 ++--
 core/src/services/azfile/error.rs           | 4 ++--
 core/src/services/b2/error.rs               | 4 ++--
 core/src/services/chainsafe/error.rs        | 4 ++--
 core/src/services/cloudflare_kv/error.rs    | 4 ++--
 core/src/services/cos/error.rs              | 4 ++--
 core/src/services/d1/backend.rs             | 5 ++---
 core/src/services/d1/error.rs               | 4 ++--
 core/src/services/dbfs/error.rs             | 5 ++---
 core/src/services/dropbox/error.rs          | 5 ++---
 core/src/services/gdrive/error.rs           | 5 ++---
 core/src/services/ghac/error.rs             | 5 ++---
 core/src/services/github/error.rs           | 4 ++--
 core/src/services/http/error.rs             | 5 ++---
 core/src/services/huggingface/error.rs      | 5 ++---
 core/src/services/icloud/core.rs            | 4 ++--
 core/src/services/ipfs/error.rs             | 5 ++---
 core/src/services/ipmfs/error.rs            | 5 ++---
 core/src/services/koofr/error.rs            | 5 ++---
 core/src/services/lakefs/error.rs           | 5 ++---
 core/src/services/libsql/error.rs           | 5 ++---
 core/src/services/obs/error.rs              | 4 ++--
 core/src/services/onedrive/error.rs         | 5 ++---
 core/src/services/onedrive/writer.rs        | 2 +-
 core/src/services/oss/error.rs              | 4 ++--
 core/src/services/pcloud/error.rs           | 5 ++---
 core/src/services/s3/backend.rs             | 4 ++--
 core/src/services/seafile/error.rs          | 4 ++--
 core/src/services/supabase/error.rs         | 5 ++---
 core/src/services/swift/error.rs            | 4 ++--
 core/src/services/upyun/error.rs            | 4 ++--
 core/src/services/vercel_artifacts/error.rs | 5 ++---
 core/src/services/vercel_blob/error.rs      | 4 ++--
 core/src/services/webdav/error.rs           | 5 ++---
 core/src/services/webhdfs/error.rs          | 5 ++---
 core/src/services/yandex_disk/error.rs      | 4 ++--
 38 files changed, 75 insertions(+), 93 deletions(-)

diff --git a/core/src/services/aliyun_drive/error.rs 
b/core/src/services/aliyun_drive/error.rs
index 8c06b988a..fc90cfcd8 100644
--- a/core/src/services/aliyun_drive/error.rs
+++ b/core/src/services/aliyun_drive/error.rs
@@ -28,8 +28,8 @@ struct AliyunDriveError {
 }
 
 pub(super) fn parse_error(res: Response<Buffer>) -> Error {
-    let (parts, mut body) = res.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = res.into_parts();
+    let bs = body.to_bytes();
     let (code, message) = serde_json::from_reader::<_, 
AliyunDriveError>(bs.clone().reader())
         .map(|err| (Some(err.code), err.message))
         .unwrap_or((None, String::from_utf8_lossy(&bs).into_owned()));
diff --git a/core/src/services/alluxio/error.rs 
b/core/src/services/alluxio/error.rs
index 6b7da11d2..71935cee7 100644
--- a/core/src/services/alluxio/error.rs
+++ b/core/src/services/alluxio/error.rs
@@ -32,8 +32,8 @@ struct AlluxioError {
 }
 
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let mut kind = match parts.status.as_u16() {
         500 => ErrorKind::Unexpected,
diff --git a/core/src/services/azdls/error.rs b/core/src/services/azdls/error.rs
index 95e09bf88..7ba598160 100644
--- a/core/src/services/azdls/error.rs
+++ b/core/src/services/azdls/error.rs
@@ -60,8 +60,8 @@ impl Debug for AzdlsError {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/azfile/error.rs 
b/core/src/services/azfile/error.rs
index 63f8b933f..bd0cf9042 100644
--- a/core/src/services/azfile/error.rs
+++ b/core/src/services/azfile/error.rs
@@ -60,8 +60,8 @@ impl Debug for AzfileError {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/b2/error.rs b/core/src/services/b2/error.rs
index 678b5bb83..4c2328269 100644
--- a/core/src/services/b2/error.rs
+++ b/core/src/services/b2/error.rs
@@ -33,8 +33,8 @@ struct B2Error {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (mut kind, mut retryable) = match parts.status.as_u16() {
         403 => (ErrorKind::PermissionDenied, false),
diff --git a/core/src/services/chainsafe/error.rs 
b/core/src/services/chainsafe/error.rs
index 2a546c314..87f78e40c 100644
--- a/core/src/services/chainsafe/error.rs
+++ b/core/src/services/chainsafe/error.rs
@@ -37,8 +37,8 @@ struct ChainsafeSubError {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status.as_u16() {
         401 | 403 => (ErrorKind::PermissionDenied, false),
diff --git a/core/src/services/cloudflare_kv/error.rs 
b/core/src/services/cloudflare_kv/error.rs
index 79a7b0dfc..b04eb3e57 100644
--- a/core/src/services/cloudflare_kv/error.rs
+++ b/core/src/services/cloudflare_kv/error.rs
@@ -27,8 +27,8 @@ use crate::*;
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (mut kind, mut retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/cos/error.rs b/core/src/services/cos/error.rs
index df5f95df5..4d767e277 100644
--- a/core/src/services/cos/error.rs
+++ b/core/src/services/cos/error.rs
@@ -37,8 +37,8 @@ struct CosError {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/d1/backend.rs b/core/src/services/d1/backend.rs
index a86d47ab8..b6897aa3e 100644
--- a/core/src/services/d1/backend.rs
+++ b/core/src/services/d1/backend.rs
@@ -18,7 +18,6 @@
 use std::fmt::Debug;
 use std::fmt::Formatter;
 
-use bytes::Buf;
 use http::header;
 use http::Request;
 use http::StatusCode;
@@ -287,8 +286,8 @@ impl kv::Adapter for Adapter {
         let status = resp.status();
         match status {
             StatusCode::OK | StatusCode::PARTIAL_CONTENT => {
-                let mut body = resp.into_body();
-                let bs = body.copy_to_bytes(body.remaining());
+                let body = resp.into_body();
+                let bs = body.to_bytes();
                 let d1_response = D1Response::parse(&bs)?;
                 Ok(d1_response.get_result(&self.value_field))
             }
diff --git a/core/src/services/d1/error.rs b/core/src/services/d1/error.rs
index f9cdf66b2..37f6b9556 100644
--- a/core/src/services/d1/error.rs
+++ b/core/src/services/d1/error.rs
@@ -27,8 +27,8 @@ use crate::*;
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (mut kind, mut retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/dbfs/error.rs b/core/src/services/dbfs/error.rs
index ca5b3a2c2..666466b72 100644
--- a/core/src/services/dbfs/error.rs
+++ b/core/src/services/dbfs/error.rs
@@ -17,7 +17,6 @@
 
 use std::fmt::Debug;
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 use serde::Deserialize;
@@ -44,8 +43,8 @@ impl Debug for DbfsError {
 }
 
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/dropbox/error.rs 
b/core/src/services/dropbox/error.rs
index ec242c6f7..715d029ed 100644
--- a/core/src/services/dropbox/error.rs
+++ b/core/src/services/dropbox/error.rs
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 use serde::Deserialize;
@@ -31,8 +30,8 @@ pub struct DropboxErrorResponse {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (mut kind, mut retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/gdrive/error.rs 
b/core/src/services/gdrive/error.rs
index 94e00789f..199e82e26 100644
--- a/core/src/services/gdrive/error.rs
+++ b/core/src/services/gdrive/error.rs
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 use serde::Deserialize;
@@ -35,8 +34,8 @@ struct GdriveInnerError {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (mut kind, mut retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/ghac/error.rs b/core/src/services/ghac/error.rs
index a2736e05b..7efafe1f6 100644
--- a/core/src/services/ghac/error.rs
+++ b/core/src/services/ghac/error.rs
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 
@@ -24,7 +23,7 @@ use crate::*;
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
+    let (parts, body) = resp.into_parts();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND | StatusCode::NO_CONTENT => 
(ErrorKind::NotFound, false),
@@ -38,7 +37,7 @@ pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
         _ => (ErrorKind::Unexpected, false),
     };
 
-    let bs = body.copy_to_bytes(body.remaining());
+    let bs = body.to_bytes();
     let message = String::from_utf8_lossy(&bs);
 
     let mut err = Error::new(kind, message);
diff --git a/core/src/services/github/error.rs 
b/core/src/services/github/error.rs
index 3109370ad..cfc259c11 100644
--- a/core/src/services/github/error.rs
+++ b/core/src/services/github/error.rs
@@ -37,8 +37,8 @@ struct GithubSubError {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status.as_u16() {
         401 | 403 => (ErrorKind::PermissionDenied, false),
diff --git a/core/src/services/http/error.rs b/core/src/services/http/error.rs
index e2c2947f8..091500892 100644
--- a/core/src/services/http/error.rs
+++ b/core/src/services/http/error.rs
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 
@@ -24,8 +23,8 @@ use crate::*;
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/huggingface/error.rs 
b/core/src/services/huggingface/error.rs
index 61abc2c25..e69a70a25 100644
--- a/core/src/services/huggingface/error.rs
+++ b/core/src/services/huggingface/error.rs
@@ -17,7 +17,6 @@
 
 use std::fmt::Debug;
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 use serde::Deserialize;
@@ -41,8 +40,8 @@ impl Debug for HuggingfaceError {
 }
 
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/icloud/core.rs b/core/src/services/icloud/core.rs
index 1028ba9f6..328a30af3 100644
--- a/core/src/services/icloud/core.rs
+++ b/core/src/services/icloud/core.rs
@@ -569,8 +569,8 @@ impl PathQuery for IcloudPathQuery {
 }
 
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let mut kind = match parts.status.as_u16() {
         421 | 450 | 500 => ErrorKind::NotFound,
diff --git a/core/src/services/ipfs/error.rs b/core/src/services/ipfs/error.rs
index 9f7e18316..e47eda369 100644
--- a/core/src/services/ipfs/error.rs
+++ b/core/src/services/ipfs/error.rs
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 
@@ -24,8 +23,8 @@ use crate::*;
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/ipmfs/error.rs b/core/src/services/ipmfs/error.rs
index 780e3388a..395b4e710 100644
--- a/core/src/services/ipmfs/error.rs
+++ b/core/src/services/ipmfs/error.rs
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 use serde::Deserialize;
@@ -45,8 +44,8 @@ struct IpfsError {
 ///
 /// ref: https://docs.ipfs.tech/reference/kubo/rpc/#http-status-codes
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let ipfs_error = de::from_slice::<IpfsError>(&bs).ok();
 
diff --git a/core/src/services/koofr/error.rs b/core/src/services/koofr/error.rs
index 7929c2de3..760f20119 100644
--- a/core/src/services/koofr/error.rs
+++ b/core/src/services/koofr/error.rs
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use bytes::Buf;
 use http::Response;
 
 use crate::raw::*;
@@ -23,8 +22,8 @@ use crate::*;
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status.as_u16() {
         403 => (ErrorKind::PermissionDenied, false),
diff --git a/core/src/services/lakefs/error.rs 
b/core/src/services/lakefs/error.rs
index 32c75d888..69934d747 100644
--- a/core/src/services/lakefs/error.rs
+++ b/core/src/services/lakefs/error.rs
@@ -17,7 +17,6 @@
 
 use std::fmt::Debug;
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 use serde::Deserialize;
@@ -41,8 +40,8 @@ impl Debug for LakefsError {
 }
 
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/libsql/error.rs 
b/core/src/services/libsql/error.rs
index 8019ce29a..54af90a53 100644
--- a/core/src/services/libsql/error.rs
+++ b/core/src/services/libsql/error.rs
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 
@@ -24,8 +23,8 @@ use crate::*;
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/obs/error.rs b/core/src/services/obs/error.rs
index f67afdae5..21ddd5f97 100644
--- a/core/src/services/obs/error.rs
+++ b/core/src/services/obs/error.rs
@@ -37,8 +37,8 @@ struct ObsError {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/onedrive/error.rs 
b/core/src/services/onedrive/error.rs
index ab396a499..8564eedc6 100644
--- a/core/src/services/onedrive/error.rs
+++ b/core/src/services/onedrive/error.rs
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 
@@ -24,8 +23,8 @@ use crate::*;
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/onedrive/writer.rs 
b/core/src/services/onedrive/writer.rs
index f2a35d1e5..c6ed61f22 100644
--- a/core/src/services/onedrive/writer.rs
+++ b/core/src/services/onedrive/writer.rs
@@ -122,7 +122,7 @@ impl OneDriveWriter {
     }
 
     async fn create_upload_session(&self) -> 
Result<OneDriveUploadSessionCreationResponseBody> {
-        let file_name_from_path = self.path.split('/').last().ok_or_else(|| {
+        let file_name_from_path = 
self.path.split('/').next_back().ok_or_else(|| {
             Error::new(
                 ErrorKind::Unexpected,
                 "connection string must have AccountName",
diff --git a/core/src/services/oss/error.rs b/core/src/services/oss/error.rs
index 3cfeb66b0..9173d5026 100644
--- a/core/src/services/oss/error.rs
+++ b/core/src/services/oss/error.rs
@@ -36,8 +36,8 @@ struct OssError {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/pcloud/error.rs 
b/core/src/services/pcloud/error.rs
index 2b1f3edbe..1234df1e2 100644
--- a/core/src/services/pcloud/error.rs
+++ b/core/src/services/pcloud/error.rs
@@ -18,7 +18,6 @@
 use std::fmt::Debug;
 use std::fmt::Formatter;
 
-use bytes::Buf;
 use http::Response;
 use serde::Deserialize;
 
@@ -43,8 +42,8 @@ impl Debug for PcloudError {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
     let message = String::from_utf8_lossy(&bs).into_owned();
 
     let mut err = Error::new(ErrorKind::Unexpected, message);
diff --git a/core/src/services/s3/backend.rs b/core/src/services/s3/backend.rs
index 3f3f00521..9145f22a7 100644
--- a/core/src/services/s3/backend.rs
+++ b/core/src/services/s3/backend.rs
@@ -751,10 +751,10 @@ impl Builder for S3Builder {
         let checksum_algorithm = match 
self.config.checksum_algorithm.as_deref() {
             Some("crc32c") => Some(ChecksumAlgorithm::Crc32c),
             None => None,
-            _ => {
+            v => {
                 return Err(Error::new(
                     ErrorKind::ConfigInvalid,
-                    "{v} is not a supported checksum_algorithm.",
+                    format!("{:?} is not a supported checksum_algorithm.", v),
                 ))
             }
         };
diff --git a/core/src/services/seafile/error.rs 
b/core/src/services/seafile/error.rs
index ab0bf6588..47a7bde53 100644
--- a/core/src/services/seafile/error.rs
+++ b/core/src/services/seafile/error.rs
@@ -31,8 +31,8 @@ struct SeafileError {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, _retryable) = match parts.status.as_u16() {
         403 => (ErrorKind::PermissionDenied, false),
diff --git a/core/src/services/supabase/error.rs 
b/core/src/services/supabase/error.rs
index c2316eab8..273addb90 100644
--- a/core/src/services/supabase/error.rs
+++ b/core/src/services/supabase/error.rs
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 use serde::Deserialize;
@@ -35,8 +34,8 @@ struct SupabaseError {
 
 /// Parse the supabase error type to the OpenDAL error type
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     // Check HTTP status code first/
     let (mut kind, mut retryable) = match parts.status.as_u16() {
diff --git a/core/src/services/swift/error.rs b/core/src/services/swift/error.rs
index 73afa4164..3bbb25f88 100644
--- a/core/src/services/swift/error.rs
+++ b/core/src/services/swift/error.rs
@@ -33,8 +33,8 @@ struct ErrorResponse {
 }
 
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/upyun/error.rs b/core/src/services/upyun/error.rs
index 317ea061d..3a8567cd7 100644
--- a/core/src/services/upyun/error.rs
+++ b/core/src/services/upyun/error.rs
@@ -34,8 +34,8 @@ struct UpyunError {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status.as_u16() {
         403 => (ErrorKind::PermissionDenied, false),
diff --git a/core/src/services/vercel_artifacts/error.rs 
b/core/src/services/vercel_artifacts/error.rs
index ab396a499..8564eedc6 100644
--- a/core/src/services/vercel_artifacts/error.rs
+++ b/core/src/services/vercel_artifacts/error.rs
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 
@@ -24,8 +23,8 @@ use crate::*;
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/vercel_blob/error.rs 
b/core/src/services/vercel_blob/error.rs
index 29ecced51..58f9420a1 100644
--- a/core/src/services/vercel_blob/error.rs
+++ b/core/src/services/vercel_blob/error.rs
@@ -39,8 +39,8 @@ struct VercelBlobErrorDetail {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status.as_u16() {
         403 => (ErrorKind::PermissionDenied, false),
diff --git a/core/src/services/webdav/error.rs 
b/core/src/services/webdav/error.rs
index 0fa32efe8..bc3f2f4b3 100644
--- a/core/src/services/webdav/error.rs
+++ b/core/src/services/webdav/error.rs
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use bytes::Buf;
 use http::Response;
 use http::StatusCode;
 
@@ -24,8 +23,8 @@ use crate::*;
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status {
         StatusCode::NOT_FOUND => (ErrorKind::NotFound, false),
diff --git a/core/src/services/webhdfs/error.rs 
b/core/src/services/webhdfs/error.rs
index 1a3a486f7..2dd8ecb66 100644
--- a/core/src/services/webhdfs/error.rs
+++ b/core/src/services/webhdfs/error.rs
@@ -15,7 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use bytes::Buf;
 use http::response::Parts;
 use http::Response;
 use http::StatusCode;
@@ -41,8 +40,8 @@ struct WebHdfsError {
 }
 
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
     let s = String::from_utf8_lossy(&bs);
     parse_error_msg(parts, &s)
 }
diff --git a/core/src/services/yandex_disk/error.rs 
b/core/src/services/yandex_disk/error.rs
index 1f3628445..78c397548 100644
--- a/core/src/services/yandex_disk/error.rs
+++ b/core/src/services/yandex_disk/error.rs
@@ -34,8 +34,8 @@ struct YandexDiskError {
 
 /// Parse error response into Error.
 pub(super) fn parse_error(resp: Response<Buffer>) -> Error {
-    let (parts, mut body) = resp.into_parts();
-    let bs = body.copy_to_bytes(body.remaining());
+    let (parts, body) = resp.into_parts();
+    let bs = body.to_bytes();
 
     let (kind, retryable) = match parts.status.as_u16() {
         410 | 403 => (ErrorKind::PermissionDenied, false),

Reply via email to