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 2025/05/23 10:45:03 UTC

(opendal) 06/18: Save work

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

xuanwo pushed a commit to branch remove-blocking-api-in-oio-access
in repository https://gitbox.apache.org/repos/asf/opendal.git

commit bda2c3da8ccfae91d4b8ff267dfca0415e512c44
Author: Xuanwo <gi...@xuanwo.io>
AuthorDate: Tue May 20 14:17:02 2025 +0800

    Save work
    
    Signed-off-by: Xuanwo <gi...@xuanwo.io>
---
 .../blocking_deleter.rs => blocking/delete.rs}     |  0
 core/src/{types/blocking_write => blocking}/mod.rs | 10 ++---
 .../blocking_operator.rs => blocking/operator.rs}  | 45 +++-------------------
 .../operator => blocking}/operator_functions.rs    |  7 +---
 .../read}/blocking_reader.rs                       |  0
 .../read}/buffer_iterator.rs                       |  0
 .../{types/blocking_read => blocking/read}/mod.rs  |  0
 .../read}/std_bytes_iterator.rs                    |  0
 .../blocking_read => blocking/read}/std_reader.rs  |  0
 .../write}/blocking_writer.rs                      |  0
 .../blocking_write => blocking/write}/mod.rs       |  0
 .../write}/std_writer.rs                           |  0
 core/src/lib.rs                                    |  1 +
 13 files changed, 14 insertions(+), 49 deletions(-)

diff --git a/core/src/types/delete/blocking_deleter.rs b/core/src/blocking/delete.rs
similarity index 100%
rename from core/src/types/delete/blocking_deleter.rs
rename to core/src/blocking/delete.rs
diff --git a/core/src/types/blocking_write/mod.rs b/core/src/blocking/mod.rs
similarity index 87%
copy from core/src/types/blocking_write/mod.rs
copy to core/src/blocking/mod.rs
index ec7419477..13fdef633 100644
--- a/core/src/types/blocking_write/mod.rs
+++ b/core/src/blocking/mod.rs
@@ -15,8 +15,8 @@
 // specific language governing permissions and limitations
 // under the License.
 
-mod blocking_writer;
-pub use blocking_writer::BlockingWriter;
-
-mod std_writer;
-pub use std_writer::StdWriter;
+mod delete;
+mod operator;
+mod operator_functions;
+mod read;
+mod write;
diff --git a/core/src/types/operator/blocking_operator.rs b/core/src/blocking/operator.rs
similarity index 97%
rename from core/src/types/operator/blocking_operator.rs
rename to core/src/blocking/operator.rs
index 25c00f9fc..9d0020440 100644
--- a/core/src/types/operator/blocking_operator.rs
+++ b/core/src/blocking/operator.rs
@@ -15,9 +15,8 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use super::operator_functions::*;
-use crate::raw::oio::BlockingDelete;
 use crate::raw::*;
+use crate::Operator as AsyncOperator;
 use crate::*;
 
 /// BlockingOperator is the entry for all public blocking APIs.
@@ -73,37 +72,11 @@ use crate::*;
 /// }
 /// ```
 #[derive(Clone, Debug)]
-pub struct BlockingOperator {
-    accessor: Accessor,
+pub struct Operator {
+    op: AsyncOperator,
 }
 
-impl BlockingOperator {
-    pub(super) fn inner(&self) -> &Accessor {
-        &self.accessor
-    }
-
-    /// create a new blocking operator from inner accessor.
-    ///
-    /// # Note
-    /// default batch limit is 1000.
-    pub(crate) fn from_inner(accessor: Accessor) -> Self {
-        Self { accessor }
-    }
-
-    /// Get current operator's limit
-    #[deprecated(note = "limit is no-op for now", since = "0.52.0")]
-    pub fn limit(&self) -> usize {
-        0
-    }
-
-    /// Specify the batch limit.
-    ///
-    /// Default: 1000
-    #[deprecated(note = "limit is no-op for now", since = "0.52.0")]
-    pub fn with_limit(&self, _: usize) -> Self {
-        self.clone()
-    }
-
+impl Operator {
     /// Get information of underlying accessor.
     ///
     /// # Examples
@@ -119,12 +92,12 @@ impl BlockingOperator {
     /// # }
     /// ```
     pub fn info(&self) -> OperatorInfo {
-        OperatorInfo::new(self.accessor.info())
+        self.op.info()
     }
 }
 
 /// # Operator blocking API.
-impl BlockingOperator {
+impl Operator {
     /// Get given path's metadata.
     ///
     /// # Behavior
@@ -1134,9 +1107,3 @@ impl BlockingOperator {
         }
     }
 }
-
-impl From<BlockingOperator> for Operator {
-    fn from(v: BlockingOperator) -> Self {
-        Operator::from_inner(v.accessor)
-    }
-}
diff --git a/core/src/types/operator/operator_functions.rs b/core/src/blocking/operator_functions.rs
similarity index 99%
rename from core/src/types/operator/operator_functions.rs
rename to core/src/blocking/operator_functions.rs
index e21be9a2e..aa15fd4a6 100644
--- a/core/src/types/operator/operator_functions.rs
+++ b/core/src/blocking/operator_functions.rs
@@ -28,11 +28,8 @@ use crate::*;
 /// OperatorFunction is the function generated by [`BlockingOperator`].
 ///
 /// The function will consume all the input to generate a result.
-pub(crate) struct OperatorFunction<T, R> {
-    inner: Accessor,
-    path: String,
-    args: T,
-    f: fn(Accessor, String, T) -> Result<R>,
+pub(crate) struct OperatorFunction<I, O, F: Future<Output = Result<O>>> {
+    fut: OperatorFuture<I, O, F>,
 }
 
 impl<T, R> OperatorFunction<T, R> {
diff --git a/core/src/types/blocking_read/blocking_reader.rs b/core/src/blocking/read/blocking_reader.rs
similarity index 100%
rename from core/src/types/blocking_read/blocking_reader.rs
rename to core/src/blocking/read/blocking_reader.rs
diff --git a/core/src/types/blocking_read/buffer_iterator.rs b/core/src/blocking/read/buffer_iterator.rs
similarity index 100%
rename from core/src/types/blocking_read/buffer_iterator.rs
rename to core/src/blocking/read/buffer_iterator.rs
diff --git a/core/src/types/blocking_read/mod.rs b/core/src/blocking/read/mod.rs
similarity index 100%
rename from core/src/types/blocking_read/mod.rs
rename to core/src/blocking/read/mod.rs
diff --git a/core/src/types/blocking_read/std_bytes_iterator.rs b/core/src/blocking/read/std_bytes_iterator.rs
similarity index 100%
rename from core/src/types/blocking_read/std_bytes_iterator.rs
rename to core/src/blocking/read/std_bytes_iterator.rs
diff --git a/core/src/types/blocking_read/std_reader.rs b/core/src/blocking/read/std_reader.rs
similarity index 100%
rename from core/src/types/blocking_read/std_reader.rs
rename to core/src/blocking/read/std_reader.rs
diff --git a/core/src/types/blocking_write/blocking_writer.rs b/core/src/blocking/write/blocking_writer.rs
similarity index 100%
rename from core/src/types/blocking_write/blocking_writer.rs
rename to core/src/blocking/write/blocking_writer.rs
diff --git a/core/src/types/blocking_write/mod.rs b/core/src/blocking/write/mod.rs
similarity index 100%
rename from core/src/types/blocking_write/mod.rs
rename to core/src/blocking/write/mod.rs
diff --git a/core/src/types/blocking_write/std_writer.rs b/core/src/blocking/write/std_writer.rs
similarity index 100%
rename from core/src/types/blocking_write/std_writer.rs
rename to core/src/blocking/write/std_writer.rs
diff --git a/core/src/lib.rs b/core/src/lib.rs
index 62bf1529b..19e5927ad 100644
--- a/core/src/lib.rs
+++ b/core/src/lib.rs
@@ -139,6 +139,7 @@ mod types;
 pub use types::*;
 
 // Public modules, they will be accessed like `opendal::layers::Xxxx`
+pub mod blocking;
 #[cfg(docsrs)]
 pub mod docs;
 pub mod layers;