You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by xu...@apache.org on 2024/05/03 04:10:01 UTC

(opendal) 01/01: chore: Make rust 1.78 happy

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

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

commit 6aca44db6ef3eac737ae381808e79d02671a8052
Author: Xuanwo <gi...@xuanwo.io>
AuthorDate: Fri May 3 12:09:38 2024 +0800

    chore: Make rust 1.78 happy
    
    Signed-off-by: Xuanwo <gi...@xuanwo.io>
---
 core/src/lib.rs                              |  7 ++++++-
 core/src/services/b2/core.rs                 |  2 +-
 core/src/services/dropbox/core.rs            |  2 +-
 core/src/services/gcs/lister.rs              |  2 +-
 core/src/services/gdrive/core.rs             |  2 +-
 core/src/services/swift/lister.rs            |  2 +-
 core/src/services/webhdfs/lister.rs          |  3 ++-
 core/src/types/read/buffer_stream.rs         |  8 ++++++--
 core/src/types/read/futures_async_reader.rs  |  8 ++++++--
 core/src/types/read/futures_bytes_stream.rs  |  8 ++++++--
 core/src/types/read/reader.rs                | 12 ++++++++++--
 core/src/types/write/buffer_sink.rs          |  8 ++++++--
 core/src/types/write/futures_async_writer.rs |  8 ++++++--
 core/src/types/write/futures_bytes_sink.rs   |  8 ++++++--
 core/tests/behavior/utils.rs                 |  6 ++++++
 15 files changed, 65 insertions(+), 21 deletions(-)

diff --git a/core/src/lib.rs b/core/src/lib.rs
index 714d667ff9..46e408f51d 100644
--- a/core/src/lib.rs
+++ b/core/src/lib.rs
@@ -160,7 +160,6 @@ mod tests {
         assert_eq!(24, size_of::<Scheme>());
     }
 
-    /// This is used to make sure our public API implement Send + Sync
     trait AssertSendSync: Send + Sync {}
     impl AssertSendSync for Entry {}
     impl AssertSendSync for Capability {}
@@ -173,4 +172,10 @@ mod tests {
     impl AssertSendSync for BlockingWriter {}
     impl AssertSendSync for BlockingLister {}
     impl AssertSendSync for BlockingOperator {}
+
+    /// This is used to make sure our public API implement Send + Sync
+    #[test]
+    fn test_trait() {
+        let _: Box<dyn AssertSendSync> = Box::new(Writer::new(Box::new(())));
+    }
 }
diff --git a/core/src/services/b2/core.rs b/core/src/services/b2/core.rs
index edcd8bc1bb..6d30586c24 100644
--- a/core/src/services/b2/core.rs
+++ b/core/src/services/b2/core.rs
@@ -289,7 +289,7 @@ impl B2Core {
         };
 
         if let Some(mime) = args.content_type() {
-            start_large_file_request.content_type = mime.to_owned();
+            mime.clone_into(&mut start_large_file_request.content_type)
         }
 
         let body =
diff --git a/core/src/services/dropbox/core.rs b/core/src/services/dropbox/core.rs
index 1c7179cb61..ec953c8a48 100644
--- a/core/src/services/dropbox/core.rs
+++ b/core/src/services/dropbox/core.rs
@@ -108,7 +108,7 @@ impl DropboxCore {
             serde_json::from_reader(body.reader()).map_err(new_json_deserialize_error)?;
 
         // Update signer after token refreshed.
-        signer.access_token = token.access_token.clone();
+        signer.access_token.clone_from(&token.access_token);
 
         // Refresh it 2 minutes earlier.
         signer.expires_in = Utc::now()
diff --git a/core/src/services/gcs/lister.rs b/core/src/services/gcs/lister.rs
index 17c98452ed..b1674db533 100644
--- a/core/src/services/gcs/lister.rs
+++ b/core/src/services/gcs/lister.rs
@@ -86,7 +86,7 @@ impl oio::PageList for GcsLister {
             serde_json::from_reader(bytes.reader()).map_err(new_json_deserialize_error)?;
 
         if let Some(token) = &output.next_page_token {
-            ctx.token = token.clone();
+            ctx.token.clone_from(token);
         } else {
             ctx.done = true;
         }
diff --git a/core/src/services/gdrive/core.rs b/core/src/services/gdrive/core.rs
index 4a7af676f3..0b72e1c9db 100644
--- a/core/src/services/gdrive/core.rs
+++ b/core/src/services/gdrive/core.rs
@@ -313,7 +313,7 @@ impl GdriveSigner {
                     let resp_body = resp.into_body();
                     let token: GdriveTokenResponse = serde_json::from_reader(resp_body.reader())
                         .map_err(new_json_deserialize_error)?;
-                    self.access_token = token.access_token.clone();
+                    self.access_token.clone_from(&token.access_token);
                     self.expires_in = Utc::now()
                         + chrono::TimeDelta::try_seconds(token.expires_in)
                             .expect("expires_in must be valid seconds")
diff --git a/core/src/services/swift/lister.rs b/core/src/services/swift/lister.rs
index 703780d71f..50a9edff99 100644
--- a/core/src/services/swift/lister.rs
+++ b/core/src/services/swift/lister.rs
@@ -67,7 +67,7 @@ impl oio::PageList for SwiftLister {
                 ListOpResponse::Subdir { subdir } => subdir,
                 ListOpResponse::FileInfo { name, .. } => name,
             };
-            ctx.token = path.clone();
+            ctx.token.clone_from(path);
         } else {
             ctx.done = true;
         }
diff --git a/core/src/services/webhdfs/lister.rs b/core/src/services/webhdfs/lister.rs
index fe758c4142..e7f714e29a 100644
--- a/core/src/services/webhdfs/lister.rs
+++ b/core/src/services/webhdfs/lister.rs
@@ -74,7 +74,8 @@ impl oio::PageList for WebhdfsLister {
                     if directory_listing.remaining_entries == 0 {
                         ctx.done = true;
                     } else if !file_statuses.is_empty() {
-                        ctx.token = file_statuses.last().unwrap().path_suffix.clone();
+                        ctx.token
+                            .clone_from(&file_statuses.last().unwrap().path_suffix);
                     }
 
                     file_statuses
diff --git a/core/src/types/read/buffer_stream.rs b/core/src/types/read/buffer_stream.rs
index 61d608b26a..62331f6eab 100644
--- a/core/src/types/read/buffer_stream.rs
+++ b/core/src/types/read/buffer_stream.rs
@@ -150,8 +150,12 @@ mod tests {
 
     use super::*;
 
-    trait AssertTrait: Unpin + MaybeSend + 'static {}
-    impl AssertTrait for BufferStream {}
+    #[test]
+    fn test_trait() {
+        let v = BufferStream::new(Arc::new(Buffer::new()), OpReader::new(), 4..8);
+
+        let _: Box<dyn Unpin + MaybeSend + 'static> = Box::new(v);
+    }
 
     #[test]
     fn test_future_iterator() {
diff --git a/core/src/types/read/futures_async_reader.rs b/core/src/types/read/futures_async_reader.rs
index 48204b5df7..2156fc36c0 100644
--- a/core/src/types/read/futures_async_reader.rs
+++ b/core/src/types/read/futures_async_reader.rs
@@ -182,8 +182,12 @@ mod tests {
 
     use super::*;
 
-    trait AssertTrait: Unpin + MaybeSend + Sync + 'static {}
-    impl AssertTrait for FuturesAsyncReader {}
+    #[test]
+    fn test_trait() {
+        let v = FuturesAsyncReader::new(Arc::new(Buffer::new()), OpReader::new(), 4..8);
+
+        let _: Box<dyn Unpin + MaybeSend + Sync + 'static> = Box::new(v);
+    }
 
     #[tokio::test]
     async fn test_futures_async_read() {
diff --git a/core/src/types/read/futures_bytes_stream.rs b/core/src/types/read/futures_bytes_stream.rs
index 51ef2d73fc..4301a3aa6e 100644
--- a/core/src/types/read/futures_bytes_stream.rs
+++ b/core/src/types/read/futures_bytes_stream.rs
@@ -87,8 +87,12 @@ mod tests {
 
     use super::*;
 
-    trait AssertTrait: Unpin + MaybeSend + Sync + 'static {}
-    impl AssertTrait for FuturesBytesStream {}
+    #[test]
+    fn test_trait() {
+        let v = FuturesBytesStream::new(Arc::new(Buffer::new()), OpReader::new(), 4..8);
+
+        let _: Box<dyn Unpin + MaybeSend + Sync + 'static> = Box::new(v);
+    }
 
     #[tokio::test]
     async fn test_futures_bytes_stream() {
diff --git a/core/src/types/read/reader.rs b/core/src/types/read/reader.rs
index 8b06c0cfd7..27f0657ee6 100644
--- a/core/src/types/read/reader.rs
+++ b/core/src/types/read/reader.rs
@@ -284,14 +284,22 @@ mod tests {
     use rand::rngs::ThreadRng;
     use rand::Rng;
     use rand::RngCore;
+    use std::sync::Arc;
 
     use super::*;
     use crate::raw::MaybeSend;
     use crate::services;
     use crate::Operator;
 
-    trait AssertTrait: Unpin + MaybeSend + Sync + 'static {}
-    impl AssertTrait for Reader {}
+    #[test]
+    fn test_trait() {
+        let v = Reader {
+            inner: Arc::new(Buffer::new()),
+            options: OpReader::new(),
+        };
+
+        let _: Box<dyn Unpin + MaybeSend + Sync + 'static> = Box::new(v);
+    }
 
     fn gen_random_bytes() -> Vec<u8> {
         let mut rng = ThreadRng::default();
diff --git a/core/src/types/write/buffer_sink.rs b/core/src/types/write/buffer_sink.rs
index ef94eacb80..f6115a6c68 100644
--- a/core/src/types/write/buffer_sink.rs
+++ b/core/src/types/write/buffer_sink.rs
@@ -162,6 +162,10 @@ mod tests {
     use crate::raw::MaybeSend;
     use crate::BufferSink;
 
-    trait AssertTrait: Unpin + MaybeSend + Sync + 'static {}
-    impl AssertTrait for BufferSink {}
+    #[test]
+    fn test_trait() {
+        let v = BufferSink::new(Box::new(()));
+
+        let _: Box<dyn Unpin + MaybeSend + Sync + 'static> = Box::new(v);
+    }
 }
diff --git a/core/src/types/write/futures_async_writer.rs b/core/src/types/write/futures_async_writer.rs
index da985daeb0..47f6e0542f 100644
--- a/core/src/types/write/futures_async_writer.rs
+++ b/core/src/types/write/futures_async_writer.rs
@@ -113,6 +113,10 @@ mod tests {
     use super::*;
     use crate::raw::MaybeSend;
 
-    trait AssertTrait: Unpin + MaybeSend + Sync + 'static {}
-    impl AssertTrait for FuturesAsyncWriter {}
+    #[test]
+    fn test_trait() {
+        let v = FuturesAsyncWriter::new(Box::new(()));
+
+        let _: Box<dyn Unpin + MaybeSend + Sync + 'static> = Box::new(v);
+    }
 }
diff --git a/core/src/types/write/futures_bytes_sink.rs b/core/src/types/write/futures_bytes_sink.rs
index c8c1d1d093..67a7dfd50c 100644
--- a/core/src/types/write/futures_bytes_sink.rs
+++ b/core/src/types/write/futures_bytes_sink.rs
@@ -78,6 +78,10 @@ mod tests {
     use super::*;
     use crate::raw::MaybeSend;
 
-    trait AssertTrait: Unpin + MaybeSend + Sync + 'static {}
-    impl AssertTrait for FuturesBytesStream {}
+    #[test]
+    fn test_trait() {
+        let v = FuturesBytesSink::new(Box::new(()));
+
+        let _: Box<dyn Unpin + MaybeSend + Sync + 'static> = Box::new(v);
+    }
 }
diff --git a/core/tests/behavior/utils.rs b/core/tests/behavior/utils.rs
index a35b4e86b4..f877ae612a 100644
--- a/core/tests/behavior/utils.rs
+++ b/core/tests/behavior/utils.rs
@@ -109,6 +109,12 @@ pub struct Fixture {
     pub paths: Mutex<Vec<String>>,
 }
 
+impl Default for Fixture {
+    fn default() -> Self {
+        Self::new()
+    }
+}
+
 impl Fixture {
     /// Create a new fixture
     pub const fn new() -> Self {