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

mneumann pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-rs-object-store.git


The following commit(s) were added to refs/heads/main by this push:
     new 40d30c6  refactor: `PutMultiPartOpts` => `PutMultiPartOptions` (#406)
40d30c6 is described below

commit 40d30c6710d8d43d11d44e377a51602513f6dfac
Author: Marco Neumann <[email protected]>
AuthorDate: Tue Jun 17 13:09:01 2025 +0200

    refactor: `PutMultiPartOpts` => `PutMultiPartOptions` (#406)
    
    See #339. The old name is kept as a deprecated alias for now.
---
 src/aws/client.rs       |  6 +++---
 src/aws/mod.rs          | 12 ++++++------
 src/azure/client.rs     |  6 +++---
 src/azure/mod.rs        |  6 +++---
 src/buffered.rs         |  6 +++---
 src/chunked.rs          |  4 ++--
 src/gcp/client.rs       |  6 +++---
 src/gcp/mod.rs          |  6 +++---
 src/http/mod.rs         |  5 +++--
 src/lib.rs              | 21 +++++++++++++--------
 src/limit.rs            |  4 ++--
 src/local.rs            |  5 +++--
 src/memory.rs           |  4 ++--
 src/prefix.rs           |  6 +++---
 src/throttle.rs         |  4 ++--
 tests/get_range_file.rs |  2 +-
 16 files changed, 55 insertions(+), 48 deletions(-)

diff --git a/src/aws/client.rs b/src/aws/client.rs
index 2911370..464c143 100644
--- a/src/aws/client.rs
+++ b/src/aws/client.rs
@@ -36,7 +36,7 @@ use crate::client::{GetOptionsExt, HttpClient, HttpError, 
HttpResponse};
 use crate::list::{PaginatedListOptions, PaginatedListResult};
 use crate::multipart::PartId;
 use crate::{
-    Attribute, Attributes, ClientOptions, GetOptions, MultipartId, Path, 
PutMultipartOpts,
+    Attribute, Attributes, ClientOptions, GetOptions, MultipartId, Path, 
PutMultipartOptions,
     PutPayload, PutResult, Result, RetryConfig, TagSet,
 };
 use async_trait::async_trait;
@@ -630,9 +630,9 @@ impl S3Client {
     pub(crate) async fn create_multipart(
         &self,
         location: &Path,
-        opts: PutMultipartOpts,
+        opts: PutMultipartOptions,
     ) -> Result<MultipartId> {
-        let PutMultipartOpts {
+        let PutMultipartOptions {
             tags,
             attributes,
             extensions,
diff --git a/src/aws/mod.rs b/src/aws/mod.rs
index 0a20817..8dac2bd 100644
--- a/src/aws/mod.rs
+++ b/src/aws/mod.rs
@@ -45,7 +45,7 @@ use crate::signer::Signer;
 use crate::util::STRICT_ENCODE_SET;
 use crate::{
     Error, GetOptions, GetResult, ListResult, MultipartId, MultipartUpload, 
ObjectMeta,
-    ObjectStore, Path, PutMode, PutMultipartOpts, PutOptions, PutPayload, 
PutResult, Result,
+    ObjectStore, Path, PutMode, PutMultipartOptions, PutOptions, PutPayload, 
PutResult, Result,
     UploadPart,
 };
 
@@ -231,7 +231,7 @@ impl ObjectStore for AmazonS3 {
     async fn put_multipart_opts(
         &self,
         location: &Path,
-        opts: PutMultipartOpts,
+        opts: PutMultipartOptions,
     ) -> Result<Box<dyn MultipartUpload>> {
         let upload_id = self.client.create_multipart(location, opts).await?;
 
@@ -317,7 +317,7 @@ impl ObjectStore for AmazonS3 {
             Some(S3CopyIfNotExists::Multipart) => {
                 let upload_id = self
                     .client
-                    .create_multipart(to, PutMultipartOpts::default())
+                    .create_multipart(to, PutMultipartOptions::default())
                     .await?;
 
                 let res = async {
@@ -442,7 +442,7 @@ impl MultipartUpload for S3MultiPartUpload {
 impl MultipartStore for AmazonS3 {
     async fn create_multipart(&self, path: &Path) -> Result<MultipartId> {
         self.client
-            .create_multipart(path, PutMultipartOpts::default())
+            .create_multipart(path, PutMultipartOptions::default())
             .await
     }
 
@@ -518,7 +518,7 @@ mod tests {
 
         let str = "test.bin";
         let path = Path::parse(str).unwrap();
-        let opts = PutMultipartOpts::default();
+        let opts = PutMultipartOptions::default();
         let mut upload = store.put_multipart_opts(&path, opts).await.unwrap();
 
         upload
@@ -549,7 +549,7 @@ mod tests {
 
         let str = "test.bin";
         let path = Path::parse(str).unwrap();
-        let opts = PutMultipartOpts::default();
+        let opts = PutMultipartOptions::default();
         let mut upload = store.put_multipart_opts(&path, opts).await.unwrap();
 
         upload
diff --git a/src/azure/client.rs b/src/azure/client.rs
index 428a99b..6a9d38c 100644
--- a/src/azure/client.rs
+++ b/src/azure/client.rs
@@ -29,7 +29,7 @@ use crate::multipart::PartId;
 use crate::util::{deserialize_rfc1123, GetRange};
 use crate::{
     Attribute, Attributes, ClientOptions, GetOptions, ListResult, ObjectMeta, 
Path, PutMode,
-    PutMultipartOpts, PutOptions, PutPayload, PutResult, Result, RetryConfig, 
TagSet,
+    PutMultipartOptions, PutOptions, PutPayload, PutResult, Result, 
RetryConfig, TagSet,
 };
 use async_trait::async_trait;
 use base64::prelude::{BASE64_STANDARD, BASE64_STANDARD_NO_PAD};
@@ -597,9 +597,9 @@ impl AzureClient {
         &self,
         path: &Path,
         parts: Vec<PartId>,
-        opts: PutMultipartOpts,
+        opts: PutMultipartOptions,
     ) -> Result<PutResult> {
-        let PutMultipartOpts {
+        let PutMultipartOptions {
             tags,
             attributes,
             extensions,
diff --git a/src/azure/mod.rs b/src/azure/mod.rs
index d686bac..f65bf9f 100644
--- a/src/azure/mod.rs
+++ b/src/azure/mod.rs
@@ -27,7 +27,7 @@ use crate::{
     path::Path,
     signer::Signer,
     GetOptions, GetResult, ListResult, MultipartId, MultipartUpload, 
ObjectMeta, ObjectStore,
-    PutMultipartOpts, PutOptions, PutPayload, PutResult, Result, UploadPart,
+    PutMultipartOptions, PutOptions, PutPayload, PutResult, Result, UploadPart,
 };
 use async_trait::async_trait;
 use futures::stream::{BoxStream, StreamExt, TryStreamExt};
@@ -99,7 +99,7 @@ impl ObjectStore for MicrosoftAzure {
     async fn put_multipart_opts(
         &self,
         location: &Path,
-        opts: PutMultipartOpts,
+        opts: PutMultipartOptions,
     ) -> Result<Box<dyn MultipartUpload>> {
         Ok(Box::new(AzureMultiPartUpload {
             part_idx: 0,
@@ -221,7 +221,7 @@ impl Signer for MicrosoftAzure {
 struct AzureMultiPartUpload {
     part_idx: usize,
     state: Arc<UploadState>,
-    opts: PutMultipartOpts,
+    opts: PutMultipartOptions,
 }
 
 #[derive(Debug)]
diff --git a/src/buffered.rs b/src/buffered.rs
index a767cb6..f189c53 100644
--- a/src/buffered.rs
+++ b/src/buffered.rs
@@ -19,7 +19,7 @@
 
 use crate::path::Path;
 use crate::{
-    Attributes, ObjectMeta, ObjectStore, PutMultipartOpts, PutOptions, 
PutPayloadMut, TagSet,
+    Attributes, ObjectMeta, ObjectStore, PutMultipartOptions, PutOptions, 
PutPayloadMut, TagSet,
     WriteMultipart,
 };
 use bytes::Bytes;
@@ -337,7 +337,7 @@ impl BufWriter {
                     } else {
                         let buffer = std::mem::take(b);
                         let path = std::mem::take(path);
-                        let opts = PutMultipartOpts {
+                        let opts = PutMultipartOptions {
                             attributes: 
self.attributes.take().unwrap_or_default(),
                             tags: self.tags.take().unwrap_or_default(),
                             extensions: 
self.extensions.take().unwrap_or_default(),
@@ -397,7 +397,7 @@ impl AsyncWrite for BufWriter {
                     if b.content_length().saturating_add(buf.len()) >= cap {
                         let buffer = std::mem::take(b);
                         let path = std::mem::take(path);
-                        let opts = PutMultipartOpts {
+                        let opts = PutMultipartOptions {
                             attributes: 
self.attributes.take().unwrap_or_default(),
                             tags: self.tags.take().unwrap_or_default(),
                             extensions: 
self.extensions.take().unwrap_or_default(),
diff --git a/src/chunked.rs b/src/chunked.rs
index 2bb30b9..8af3b2c 100644
--- a/src/chunked.rs
+++ b/src/chunked.rs
@@ -29,7 +29,7 @@ use futures::StreamExt;
 use crate::path::Path;
 use crate::{
     GetOptions, GetResult, GetResultPayload, ListResult, MultipartUpload, 
ObjectMeta, ObjectStore,
-    PutMultipartOpts, PutOptions, PutResult,
+    PutMultipartOptions, PutOptions, PutResult,
 };
 use crate::{PutPayload, Result};
 
@@ -78,7 +78,7 @@ impl ObjectStore for ChunkedStore {
     async fn put_multipart_opts(
         &self,
         location: &Path,
-        opts: PutMultipartOpts,
+        opts: PutMultipartOptions,
     ) -> Result<Box<dyn MultipartUpload>> {
         self.inner.put_multipart_opts(location, opts).await
     }
diff --git a/src/gcp/client.rs b/src/gcp/client.rs
index 0378843..bd365ca 100644
--- a/src/gcp/client.rs
+++ b/src/gcp/client.rs
@@ -32,7 +32,7 @@ use crate::multipart::PartId;
 use crate::path::Path;
 use crate::util::hex_encode;
 use crate::{
-    Attribute, Attributes, ClientOptions, GetOptions, MultipartId, PutMode, 
PutMultipartOpts,
+    Attribute, Attributes, ClientOptions, GetOptions, MultipartId, PutMode, 
PutMultipartOptions,
     PutOptions, PutPayload, PutResult, Result, RetryConfig,
 };
 use async_trait::async_trait;
@@ -444,9 +444,9 @@ impl GoogleCloudStorageClient {
     pub(crate) async fn multipart_initiate(
         &self,
         path: &Path,
-        opts: PutMultipartOpts,
+        opts: PutMultipartOptions,
     ) -> Result<MultipartId> {
-        let PutMultipartOpts {
+        let PutMultipartOptions {
             // not supported by GCP
             tags: _,
             attributes,
diff --git a/src/gcp/mod.rs b/src/gcp/mod.rs
index dfd638a..442b24f 100644
--- a/src/gcp/mod.rs
+++ b/src/gcp/mod.rs
@@ -42,7 +42,7 @@ use crate::gcp::credential::GCSAuthorizer;
 use crate::signer::Signer;
 use crate::{
     multipart::PartId, path::Path, GetOptions, GetResult, ListResult, 
MultipartId, MultipartUpload,
-    ObjectMeta, ObjectStore, PutMultipartOpts, PutOptions, PutPayload, 
PutResult, Result,
+    ObjectMeta, ObjectStore, PutMultipartOptions, PutOptions, PutPayload, 
PutResult, Result,
     UploadPart,
 };
 use async_trait::async_trait;
@@ -161,7 +161,7 @@ impl ObjectStore for GoogleCloudStorage {
     async fn put_multipart_opts(
         &self,
         location: &Path,
-        opts: PutMultipartOpts,
+        opts: PutMultipartOptions,
     ) -> Result<Box<dyn MultipartUpload>> {
         let upload_id = self.client.multipart_initiate(location, opts).await?;
 
@@ -213,7 +213,7 @@ impl ObjectStore for GoogleCloudStorage {
 impl MultipartStore for GoogleCloudStorage {
     async fn create_multipart(&self, path: &Path) -> Result<MultipartId> {
         self.client
-            .multipart_initiate(path, PutMultipartOpts::default())
+            .multipart_initiate(path, PutMultipartOptions::default())
             .await
     }
 
diff --git a/src/http/mod.rs b/src/http/mod.rs
index 8b1f505..8581f92 100644
--- a/src/http/mod.rs
+++ b/src/http/mod.rs
@@ -46,7 +46,8 @@ use crate::http::client::Client;
 use crate::path::Path;
 use crate::{
     ClientConfigKey, ClientOptions, GetOptions, GetResult, ListResult, 
MultipartUpload, ObjectMeta,
-    ObjectStore, PutMode, PutMultipartOpts, PutOptions, PutPayload, PutResult, 
Result, RetryConfig,
+    ObjectStore, PutMode, PutMultipartOptions, PutOptions, PutPayload, 
PutResult, Result,
+    RetryConfig,
 };
 
 mod client;
@@ -122,7 +123,7 @@ impl ObjectStore for HttpStore {
     async fn put_multipart_opts(
         &self,
         _location: &Path,
-        _opts: PutMultipartOpts,
+        _opts: PutMultipartOptions,
     ) -> Result<Box<dyn MultipartUpload>> {
         Err(crate::Error::NotImplemented)
     }
diff --git a/src/lib.rs b/src/lib.rs
index 80e91d7..06edd33 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -614,7 +614,7 @@ pub trait ObjectStore: std::fmt::Display + Send + Sync + 
Debug + 'static {
     ///
     /// For more advanced multipart uploads see 
[`MultipartStore`](multipart::MultipartStore)
     async fn put_multipart(&self, location: &Path) -> Result<Box<dyn 
MultipartUpload>> {
-        self.put_multipart_opts(location, PutMultipartOpts::default())
+        self.put_multipart_opts(location, PutMultipartOptions::default())
             .await
     }
 
@@ -627,7 +627,7 @@ pub trait ObjectStore: std::fmt::Display + Send + Sync + 
Debug + 'static {
     async fn put_multipart_opts(
         &self,
         location: &Path,
-        opts: PutMultipartOpts,
+        opts: PutMultipartOptions,
     ) -> Result<Box<dyn MultipartUpload>>;
 
     /// Return the bytes that are stored at the specified location.
@@ -823,7 +823,7 @@ macro_rules! as_ref_impl {
             async fn put_multipart_opts(
                 &self,
                 location: &Path,
-                opts: PutMultipartOpts,
+                opts: PutMultipartOptions,
             ) -> Result<Box<dyn MultipartUpload>> {
                 self.as_ref().put_multipart_opts(location, opts).await
             }
@@ -1234,9 +1234,14 @@ impl From<Attributes> for PutOptions {
     }
 }
 
+// See <https://github.com/apache/arrow-rs-object-store/issues/339>.
+#[doc(hidden)]
+#[deprecated(note = "Use PutMultipartOptions", since = "0.13.0")]
+pub type PutMultipartOpts = PutMultipartOptions;
+
 /// Options for [`ObjectStore::put_multipart_opts`]
 #[derive(Debug, Clone, Default)]
-pub struct PutMultipartOpts {
+pub struct PutMultipartOptions {
     /// Provide a [`TagSet`] for this object
     ///
     /// Implementations that don't support object tagging should ignore this
@@ -1254,7 +1259,7 @@ pub struct PutMultipartOpts {
     pub extensions: ::http::Extensions,
 }
 
-impl PartialEq<Self> for PutMultipartOpts {
+impl PartialEq<Self> for PutMultipartOptions {
     fn eq(&self, other: &Self) -> bool {
         let Self {
             tags,
@@ -1270,9 +1275,9 @@ impl PartialEq<Self> for PutMultipartOpts {
     }
 }
 
-impl Eq for PutMultipartOpts {}
+impl Eq for PutMultipartOptions {}
 
-impl From<TagSet> for PutMultipartOpts {
+impl From<TagSet> for PutMultipartOptions {
     fn from(tags: TagSet) -> Self {
         Self {
             tags,
@@ -1281,7 +1286,7 @@ impl From<TagSet> for PutMultipartOpts {
     }
 }
 
-impl From<Attributes> for PutMultipartOpts {
+impl From<Attributes> for PutMultipartOptions {
     fn from(attributes: Attributes) -> Self {
         Self {
             attributes,
diff --git a/src/limit.rs b/src/limit.rs
index 330a0da..8571496 100644
--- a/src/limit.rs
+++ b/src/limit.rs
@@ -19,7 +19,7 @@
 
 use crate::{
     BoxStream, GetOptions, GetResult, GetResultPayload, ListResult, 
MultipartUpload, ObjectMeta,
-    ObjectStore, Path, PutMultipartOpts, PutOptions, PutPayload, PutResult, 
Result, StreamExt,
+    ObjectStore, Path, PutMultipartOptions, PutOptions, PutPayload, PutResult, 
Result, StreamExt,
     UploadPart,
 };
 use async_trait::async_trait;
@@ -96,7 +96,7 @@ impl<T: ObjectStore> ObjectStore for LimitStore<T> {
     async fn put_multipart_opts(
         &self,
         location: &Path,
-        opts: PutMultipartOpts,
+        opts: PutMultipartOptions,
     ) -> Result<Box<dyn MultipartUpload>> {
         let upload = self.inner.put_multipart_opts(location, opts).await?;
         Ok(Box::new(LimitUpload {
diff --git a/src/local.rs b/src/local.rs
index ccf6e34..dc2e2d1 100644
--- a/src/local.rs
+++ b/src/local.rs
@@ -38,7 +38,8 @@ use crate::{
     path::{absolute_path_to_url, Path},
     util::InvalidGetRange,
     Attributes, GetOptions, GetResult, GetResultPayload, ListResult, 
MultipartUpload, ObjectMeta,
-    ObjectStore, PutMode, PutMultipartOpts, PutOptions, PutPayload, PutResult, 
Result, UploadPart,
+    ObjectStore, PutMode, PutMultipartOptions, PutOptions, PutPayload, 
PutResult, Result,
+    UploadPart,
 };
 
 /// A specialized `Error` for filesystem object store-related errors
@@ -388,7 +389,7 @@ impl ObjectStore for LocalFileSystem {
     async fn put_multipart_opts(
         &self,
         location: &Path,
-        opts: PutMultipartOpts,
+        opts: PutMultipartOptions,
     ) -> Result<Box<dyn MultipartUpload>> {
         if !opts.attributes.is_empty() {
             return Err(crate::Error::NotImplemented);
diff --git a/src/memory.rs b/src/memory.rs
index f03dbc6..e15c246 100644
--- a/src/memory.rs
+++ b/src/memory.rs
@@ -30,7 +30,7 @@ use crate::multipart::{MultipartStore, PartId};
 use crate::util::InvalidGetRange;
 use crate::{
     path::Path, Attributes, GetRange, GetResult, GetResultPayload, ListResult, 
MultipartId,
-    MultipartUpload, ObjectMeta, ObjectStore, PutMode, PutMultipartOpts, 
PutOptions, PutResult,
+    MultipartUpload, ObjectMeta, ObjectStore, PutMode, PutMultipartOptions, 
PutOptions, PutResult,
     Result, UpdateVersion, UploadPart,
 };
 use crate::{GetOptions, PutPayload};
@@ -224,7 +224,7 @@ impl ObjectStore for InMemory {
     async fn put_multipart_opts(
         &self,
         location: &Path,
-        opts: PutMultipartOpts,
+        opts: PutMultipartOptions,
     ) -> Result<Box<dyn MultipartUpload>> {
         Ok(Box::new(InMemoryUpload {
             location: location.clone(),
diff --git a/src/prefix.rs b/src/prefix.rs
index c2802c1..e5a917a 100644
--- a/src/prefix.rs
+++ b/src/prefix.rs
@@ -22,8 +22,8 @@ use std::ops::Range;
 
 use crate::path::Path;
 use crate::{
-    GetOptions, GetResult, ListResult, MultipartUpload, ObjectMeta, 
ObjectStore, PutMultipartOpts,
-    PutOptions, PutPayload, PutResult, Result,
+    GetOptions, GetResult, ListResult, MultipartUpload, ObjectMeta, 
ObjectStore,
+    PutMultipartOptions, PutOptions, PutPayload, PutResult, Result,
 };
 
 /// Store wrapper that applies a constant prefix to all paths handled by the 
store.
@@ -121,7 +121,7 @@ impl<T: ObjectStore> ObjectStore for PrefixStore<T> {
     async fn put_multipart_opts(
         &self,
         location: &Path,
-        opts: PutMultipartOpts,
+        opts: PutMultipartOptions,
     ) -> Result<Box<dyn MultipartUpload>> {
         let full_path = self.full_path(location);
         self.inner.put_multipart_opts(&full_path, opts).await
diff --git a/src/throttle.rs b/src/throttle.rs
index efe2949..8f40871 100644
--- a/src/throttle.rs
+++ b/src/throttle.rs
@@ -23,7 +23,7 @@ use std::{convert::TryInto, sync::Arc};
 use crate::multipart::{MultipartStore, PartId};
 use crate::{
     path::Path, GetResult, GetResultPayload, ListResult, MultipartId, 
MultipartUpload, ObjectMeta,
-    ObjectStore, PutMultipartOpts, PutOptions, PutPayload, PutResult, Result,
+    ObjectStore, PutMultipartOptions, PutOptions, PutPayload, PutResult, 
Result,
 };
 use crate::{GetOptions, UploadPart};
 use async_trait::async_trait;
@@ -174,7 +174,7 @@ impl<T: ObjectStore> ObjectStore for ThrottledStore<T> {
     async fn put_multipart_opts(
         &self,
         location: &Path,
-        opts: PutMultipartOpts,
+        opts: PutMultipartOptions,
     ) -> Result<Box<dyn MultipartUpload>> {
         let upload = self.inner.put_multipart_opts(location, opts).await?;
         Ok(Box::new(ThrottledUpload {
diff --git a/tests/get_range_file.rs b/tests/get_range_file.rs
index 6790c11..d5ac8e3 100644
--- a/tests/get_range_file.rs
+++ b/tests/get_range_file.rs
@@ -49,7 +49,7 @@ impl ObjectStore for MyStore {
     async fn put_multipart_opts(
         &self,
         _location: &Path,
-        _opts: PutMultipartOpts,
+        _opts: PutMultipartOptions,
     ) -> Result<Box<dyn MultipartUpload>> {
         todo!()
     }

Reply via email to