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;