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 2023/05/26 01:02:44 UTC

[incubator-opendal] branch move-ops created (now d1fdb51f)

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

xuanwo pushed a change to branch move-ops
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git


      at d1fdb51f refactor: Move `ops` to `raw::ops`

This branch includes the following new commits:

     new d1fdb51f refactor: Move `ops` to `raw::ops`

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[incubator-opendal] 01/01: refactor: Move `ops` to `raw::ops`

Posted by xu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit d1fdb51fddaae97d6e4ef05f7239ec1e8ded81bf
Author: Xuanwo <gi...@xuanwo.io>
AuthorDate: Fri May 26 09:02:14 2023 +0800

    refactor: Move `ops` to `raw::ops`
    
    Signed-off-by: Xuanwo <gi...@xuanwo.io>
---
 bindings/java/src/blocking_operator.rs        | 12 ++++++---
 bindings/java/src/error.rs                    |  8 ++++--
 bindings/java/src/lib.rs                      |  7 ++++--
 bindings/java/src/metadata.rs                 |  4 +--
 bindings/java/src/operator.rs                 | 16 ++++++++----
 core/src/layers/chaos.rs                      |  1 -
 core/src/layers/complete.rs                   |  1 -
 core/src/layers/concurrent_limit.rs           |  1 -
 core/src/layers/error_context.rs              |  1 -
 core/src/layers/immutable_index.rs            |  1 -
 core/src/layers/logging.rs                    |  1 -
 core/src/layers/madsim.rs                     |  1 -
 core/src/layers/metrics.rs                    |  1 -
 core/src/layers/minitrace.rs                  |  1 -
 core/src/layers/oteltrace.rs                  |  1 -
 core/src/layers/prometheus.rs                 |  1 -
 core/src/layers/retry.rs                      |  1 -
 core/src/layers/tracing.rs                    |  1 -
 core/src/layers/type_eraser.rs                |  1 -
 core/src/raw/accessor.rs                      |  1 -
 core/src/raw/adapters/kv/backend.rs           |  1 -
 core/src/raw/adapters/typed_kv/backend.rs     |  1 -
 core/src/raw/layer.rs                         |  1 -
 core/src/raw/mod.rs                           |  3 +++
 core/src/raw/oio/into_reader/by_range.rs      |  1 -
 core/src/raw/oio/to_flat_pager.rs             |  1 -
 core/src/{types => raw}/ops.rs                |  0
 core/src/services/azblob/appender.rs          |  1 -
 core/src/services/azblob/backend.rs           |  2 --
 core/src/services/azblob/writer.rs            |  1 -
 core/src/services/azdfs/backend.rs            |  1 -
 core/src/services/azdfs/writer.rs             |  1 -
 core/src/services/cos/backend.rs              |  1 -
 core/src/services/cos/writer.rs               |  1 -
 core/src/services/fs/appender.rs              |  1 -
 core/src/services/fs/backend.rs               |  1 -
 core/src/services/ftp/backend.rs              |  1 -
 core/src/services/gcs/backend.rs              |  1 -
 core/src/services/gcs/writer.rs               |  1 -
 core/src/services/gdrive/backend.rs           | 12 +--------
 core/src/services/gdrive/writer.rs            |  1 -
 core/src/services/ghac/backend.rs             |  1 -
 core/src/services/hdfs/backend.rs             |  1 -
 core/src/services/http/backend.rs             |  1 -
 core/src/services/ipfs/backend.rs             |  1 -
 core/src/services/ipmfs/backend.rs            |  1 -
 core/src/services/obs/backend.rs              |  1 -
 core/src/services/obs/writer.rs               |  1 -
 core/src/services/onedrive/backend.rs         | 36 ++-------------------------
 core/src/services/onedrive/writer.rs          |  1 -
 core/src/services/oss/appender.rs             |  1 -
 core/src/services/oss/backend.rs              |  1 -
 core/src/services/oss/core.rs                 |  2 --
 core/src/services/oss/writer.rs               |  1 -
 core/src/services/s3/backend.rs               |  1 -
 core/src/services/s3/writer.rs                |  1 -
 core/src/services/sftp/backend.rs             |  1 -
 core/src/services/supabase/backend.rs         |  1 -
 core/src/services/supabase/writer.rs          |  1 -
 core/src/services/vercel_artifacts/backend.rs | 17 ++-----------
 core/src/services/vercel_artifacts/writer.rs  |  1 -
 core/src/services/wasabi/backend.rs           |  1 -
 core/src/services/wasabi/core.rs              |  1 -
 core/src/services/wasabi/writer.rs            |  1 -
 core/src/services/webdav/backend.rs           |  1 -
 core/src/services/webdav/writer.rs            |  1 -
 core/src/services/webhdfs/backend.rs          |  1 -
 core/src/services/webhdfs/writer.rs           |  1 -
 core/src/types/appender.rs                    |  1 -
 core/src/types/mod.rs                         |  2 --
 core/src/types/operator/blocking_operator.rs  |  9 ++++---
 core/src/types/operator/operator.rs           | 32 ++++++++++++++++--------
 core/src/types/operator/operator_functions.rs |  1 -
 core/src/types/operator/operator_futures.rs   | 10 +++-----
 core/src/types/reader.rs                      |  1 -
 core/src/types/writer.rs                      |  1 -
 76 files changed, 70 insertions(+), 162 deletions(-)

diff --git a/bindings/java/src/blocking_operator.rs b/bindings/java/src/blocking_operator.rs
index 32a4899b..55d71858 100644
--- a/bindings/java/src/blocking_operator.rs
+++ b/bindings/java/src/blocking_operator.rs
@@ -17,11 +17,15 @@
 
 use std::str::FromStr;
 
-use jni::objects::{JClass, JObject, JString};
-use jni::sys::{jlong, jstring};
+use jni::objects::JClass;
+use jni::objects::JObject;
+use jni::objects::JString;
+use jni::sys::jlong;
+use jni::sys::jstring;
 use jni::JNIEnv;
-
-use opendal::{BlockingOperator, Operator, Scheme};
+use opendal::BlockingOperator;
+use opendal::Operator;
+use opendal::Scheme;
 
 use crate::jmap_to_hashmap;
 use crate::Result;
diff --git a/bindings/java/src/error.rs b/bindings/java/src/error.rs
index a8e4f146..bbbf9963 100644
--- a/bindings/java/src/error.rs
+++ b/bindings/java/src/error.rs
@@ -15,10 +15,14 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use jni::objects::{JThrowable, JValue};
+use std::fmt::Debug;
+use std::fmt::Display;
+use std::fmt::Formatter;
+
+use jni::objects::JThrowable;
+use jni::objects::JValue;
 use jni::JNIEnv;
 use opendal::ErrorKind;
-use std::fmt::{Debug, Display, Formatter};
 
 pub(crate) struct Error {
     inner: opendal::Error,
diff --git a/bindings/java/src/lib.rs b/bindings/java/src/lib.rs
index 05d8b72b..8a947192 100644
--- a/bindings/java/src/lib.rs
+++ b/bindings/java/src/lib.rs
@@ -19,10 +19,13 @@ use std::cell::RefCell;
 use std::collections::HashMap;
 use std::ffi::c_void;
 
-use jni::objects::{JMap, JObject, JString};
+use jni::objects::JMap;
+use jni::objects::JObject;
+use jni::objects::JString;
 use jni::sys::jint;
 use jni::sys::JNI_VERSION_1_8;
-use jni::{JNIEnv, JavaVM};
+use jni::JNIEnv;
+use jni::JavaVM;
 use once_cell::sync::OnceCell;
 use tokio::runtime::Builder;
 use tokio::runtime::Runtime;
diff --git a/bindings/java/src/metadata.rs b/bindings/java/src/metadata.rs
index 5a29466d..3295bc0e 100644
--- a/bindings/java/src/metadata.rs
+++ b/bindings/java/src/metadata.rs
@@ -16,9 +16,9 @@
 // under the License.
 
 use jni::objects::JClass;
-use jni::sys::{jboolean, jlong};
+use jni::sys::jboolean;
+use jni::sys::jlong;
 use jni::JNIEnv;
-
 use opendal::Metadata;
 
 /// # Safety
diff --git a/bindings/java/src/operator.rs b/bindings/java/src/operator.rs
index 27a35ae1..7fd87b57 100644
--- a/bindings/java/src/operator.rs
+++ b/bindings/java/src/operator.rs
@@ -17,14 +17,20 @@
 
 use std::str::FromStr;
 
-use jni::objects::{JClass, JObject, JString, JValue, JValueOwned};
+use jni::objects::JClass;
+use jni::objects::JObject;
+use jni::objects::JString;
+use jni::objects::JValue;
+use jni::objects::JValueOwned;
 use jni::sys::jlong;
 use jni::JNIEnv;
+use opendal::Operator;
+use opendal::Scheme;
 
-use opendal::{Operator, Scheme};
-
-use crate::{get_current_env, Result};
-use crate::{jmap_to_hashmap, RUNTIME};
+use crate::get_current_env;
+use crate::jmap_to_hashmap;
+use crate::Result;
+use crate::RUNTIME;
 
 #[no_mangle]
 pub extern "system" fn Java_org_apache_opendal_Operator_constructor(
diff --git a/core/src/layers/chaos.rs b/core/src/layers/chaos.rs
index 7f7eb4b0..618c5e61 100644
--- a/core/src/layers/chaos.rs
+++ b/core/src/layers/chaos.rs
@@ -25,7 +25,6 @@ use futures::FutureExt;
 use rand::prelude::*;
 use rand::rngs::StdRng;
 
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/layers/complete.rs b/core/src/layers/complete.rs
index 0fe80f9b..92e7c814 100644
--- a/core/src/layers/complete.rs
+++ b/core/src/layers/complete.rs
@@ -25,7 +25,6 @@ use std::task::Poll;
 use async_trait::async_trait;
 use bytes::Bytes;
 
-use crate::ops::*;
 use crate::raw::oio::into_reader::RangeReader;
 use crate::raw::oio::to_flat_pager;
 use crate::raw::oio::to_hierarchy_pager;
diff --git a/core/src/layers/concurrent_limit.rs b/core/src/layers/concurrent_limit.rs
index 5228eace..30003785 100644
--- a/core/src/layers/concurrent_limit.rs
+++ b/core/src/layers/concurrent_limit.rs
@@ -26,7 +26,6 @@ use bytes::Bytes;
 use tokio::sync::OwnedSemaphorePermit;
 use tokio::sync::Semaphore;
 
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/layers/error_context.rs b/core/src/layers/error_context.rs
index a23b78dd..d7c604d9 100644
--- a/core/src/layers/error_context.rs
+++ b/core/src/layers/error_context.rs
@@ -25,7 +25,6 @@ use async_trait::async_trait;
 use bytes::Bytes;
 use futures::TryFutureExt;
 
-use crate::ops::*;
 use crate::raw::oio::AppendOperation;
 use crate::raw::oio::PageOperation;
 use crate::raw::oio::ReadOperation;
diff --git a/core/src/layers/immutable_index.rs b/core/src/layers/immutable_index.rs
index d8f9fb3f..1c7ed899 100644
--- a/core/src/layers/immutable_index.rs
+++ b/core/src/layers/immutable_index.rs
@@ -21,7 +21,6 @@ use std::mem;
 
 use async_trait::async_trait;
 
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/layers/logging.rs b/core/src/layers/logging.rs
index 2b900385..6f372c96 100644
--- a/core/src/layers/logging.rs
+++ b/core/src/layers/logging.rs
@@ -29,7 +29,6 @@ use log::log;
 use log::trace;
 use log::Level;
 
-use crate::ops::*;
 use crate::raw::oio::ReadOperation;
 use crate::raw::oio::WriteOperation;
 use crate::raw::*;
diff --git a/core/src/layers/madsim.rs b/core/src/layers/madsim.rs
index a70593e7..49794fd6 100644
--- a/core/src/layers/madsim.rs
+++ b/core/src/layers/madsim.rs
@@ -39,7 +39,6 @@ use madsim::net::Endpoint;
 #[cfg(madsim)]
 use madsim::net::Payload;
 
-use crate::ops::*;
 use crate::raw::oio;
 use crate::raw::oio::Entry;
 use crate::raw::*;
diff --git a/core/src/layers/metrics.rs b/core/src/layers/metrics.rs
index 1a990b78..1cda0e8e 100644
--- a/core/src/layers/metrics.rs
+++ b/core/src/layers/metrics.rs
@@ -33,7 +33,6 @@ use metrics::register_histogram;
 use metrics::Counter;
 use metrics::Histogram;
 
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/layers/minitrace.rs b/core/src/layers/minitrace.rs
index d0a5939e..c7a8d883 100644
--- a/core/src/layers/minitrace.rs
+++ b/core/src/layers/minitrace.rs
@@ -25,7 +25,6 @@ use bytes::Bytes;
 use futures::FutureExt;
 use minitrace::prelude::*;
 
-use crate::ops::*;
 use crate::raw::oio::PageOperation;
 use crate::raw::oio::ReadOperation;
 use crate::raw::oio::WriteOperation;
diff --git a/core/src/layers/oteltrace.rs b/core/src/layers/oteltrace.rs
index ee01e2ab..ba17cd25 100644
--- a/core/src/layers/oteltrace.rs
+++ b/core/src/layers/oteltrace.rs
@@ -30,7 +30,6 @@ use opentelemetry::trace::Tracer;
 use opentelemetry::Context;
 use opentelemetry::KeyValue;
 
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/layers/prometheus.rs b/core/src/layers/prometheus.rs
index 8f6672b5..11ca5af8 100644
--- a/core/src/layers/prometheus.rs
+++ b/core/src/layers/prometheus.rs
@@ -36,7 +36,6 @@ use prometheus::register_int_counter_vec_with_registry;
 use prometheus::HistogramVec;
 use prometheus::Registry;
 
-use crate::ops::*;
 use crate::raw::Accessor;
 use crate::raw::*;
 use crate::*;
diff --git a/core/src/layers/retry.rs b/core/src/layers/retry.rs
index 8fcf615f..cfafa35f 100644
--- a/core/src/layers/retry.rs
+++ b/core/src/layers/retry.rs
@@ -34,7 +34,6 @@ use bytes::Bytes;
 use futures::FutureExt;
 use log::warn;
 
-use crate::ops::*;
 use crate::raw::oio::AppendOperation;
 use crate::raw::oio::PageOperation;
 use crate::raw::oio::ReadOperation;
diff --git a/core/src/layers/tracing.rs b/core/src/layers/tracing.rs
index 96f328a3..cc9fa34e 100644
--- a/core/src/layers/tracing.rs
+++ b/core/src/layers/tracing.rs
@@ -25,7 +25,6 @@ use bytes::Bytes;
 use futures::FutureExt;
 use tracing::Span;
 
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/layers/type_eraser.rs b/core/src/layers/type_eraser.rs
index fb236646..f5aaa389 100644
--- a/core/src/layers/type_eraser.rs
+++ b/core/src/layers/type_eraser.rs
@@ -20,7 +20,6 @@ use std::fmt::Formatter;
 
 use async_trait::async_trait;
 
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/raw/accessor.rs b/core/src/raw/accessor.rs
index 8fb98d0c..b6b74a15 100644
--- a/core/src/raw/accessor.rs
+++ b/core/src/raw/accessor.rs
@@ -20,7 +20,6 @@ use std::sync::Arc;
 
 use async_trait::async_trait;
 
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/raw/adapters/kv/backend.rs b/core/src/raw/adapters/kv/backend.rs
index ee8d32ac..36ca9605 100644
--- a/core/src/raw/adapters/kv/backend.rs
+++ b/core/src/raw/adapters/kv/backend.rs
@@ -21,7 +21,6 @@ use async_trait::async_trait;
 use bytes::Bytes;
 
 use super::Adapter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/raw/adapters/typed_kv/backend.rs b/core/src/raw/adapters/typed_kv/backend.rs
index e04cd202..2085a23d 100644
--- a/core/src/raw/adapters/typed_kv/backend.rs
+++ b/core/src/raw/adapters/typed_kv/backend.rs
@@ -22,7 +22,6 @@ use bytes::Bytes;
 
 use super::Adapter;
 use super::Value;
-use crate::ops::*;
 use crate::raw::oio::VectorCursor;
 use crate::raw::*;
 use crate::*;
diff --git a/core/src/raw/layer.rs b/core/src/raw/layer.rs
index ac5e4c3e..6dbac4b5 100644
--- a/core/src/raw/layer.rs
+++ b/core/src/raw/layer.rs
@@ -19,7 +19,6 @@ use std::fmt::Debug;
 
 use async_trait::async_trait;
 
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/raw/mod.rs b/core/src/raw/mod.rs
index 219171a0..e7c2bbcf 100644
--- a/core/src/raw/mod.rs
+++ b/core/src/raw/mod.rs
@@ -56,6 +56,9 @@ pub use version::VERSION;
 mod rps;
 pub use rps::*;
 
+mod ops;
+pub use ops::*;
+
 mod http_util;
 pub use http_util::*;
 
diff --git a/core/src/raw/oio/into_reader/by_range.rs b/core/src/raw/oio/into_reader/by_range.rs
index 5e37bc54..e26af95a 100644
--- a/core/src/raw/oio/into_reader/by_range.rs
+++ b/core/src/raw/oio/into_reader/by_range.rs
@@ -27,7 +27,6 @@ use std::task::Poll;
 use futures::future::BoxFuture;
 use tokio::io::ReadBuf;
 
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/raw/oio/to_flat_pager.rs b/core/src/raw/oio/to_flat_pager.rs
index 720ee3f8..01c585e6 100644
--- a/core/src/raw/oio/to_flat_pager.rs
+++ b/core/src/raw/oio/to_flat_pager.rs
@@ -20,7 +20,6 @@ use std::mem;
 
 use async_trait::async_trait;
 
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/types/ops.rs b/core/src/raw/ops.rs
similarity index 100%
rename from core/src/types/ops.rs
rename to core/src/raw/ops.rs
diff --git a/core/src/services/azblob/appender.rs b/core/src/services/azblob/appender.rs
index 0baa0df9..a32e3409 100644
--- a/core/src/services/azblob/appender.rs
+++ b/core/src/services/azblob/appender.rs
@@ -23,7 +23,6 @@ use http::StatusCode;
 
 use super::core::*;
 use super::error::parse_error;
-use crate::ops::OpAppend;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/azblob/backend.rs b/core/src/services/azblob/backend.rs
index 9ee899a9..9e7811dd 100644
--- a/core/src/services/azblob/backend.rs
+++ b/core/src/services/azblob/backend.rs
@@ -33,7 +33,6 @@ use super::batch::parse_batch_delete_response;
 use super::error::parse_error;
 use super::pager::AzblobPager;
 use super::writer::AzblobWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::services::azblob::core::AzblobCore;
 use crate::types::Metadata;
@@ -52,7 +51,6 @@ const KNOWN_AZBLOB_ENDPOINT_SUFFIX: &[&str] = &[
 const AZBLOB_BATCH_LIMIT: usize = 256;
 
 /// Azure Storage Blob services support.
-///
 #[doc = include_str!("docs.md")]
 #[derive(Default, Clone)]
 pub struct AzblobBuilder {
diff --git a/core/src/services/azblob/writer.rs b/core/src/services/azblob/writer.rs
index a3a0cddd..2b26d329 100644
--- a/core/src/services/azblob/writer.rs
+++ b/core/src/services/azblob/writer.rs
@@ -23,7 +23,6 @@ use http::StatusCode;
 
 use super::core::AzblobCore;
 use super::error::parse_error;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/azdfs/backend.rs b/core/src/services/azdfs/backend.rs
index 11bea2ef..b629894a 100644
--- a/core/src/services/azdfs/backend.rs
+++ b/core/src/services/azdfs/backend.rs
@@ -31,7 +31,6 @@ use super::core::AzdfsCore;
 use super::error::parse_error;
 use super::pager::AzdfsPager;
 use super::writer::AzdfsWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/azdfs/writer.rs b/core/src/services/azdfs/writer.rs
index a6efaf08..1cdbf9db 100644
--- a/core/src/services/azdfs/writer.rs
+++ b/core/src/services/azdfs/writer.rs
@@ -23,7 +23,6 @@ use http::StatusCode;
 
 use super::core::AzdfsCore;
 use super::error::parse_error;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/cos/backend.rs b/core/src/services/cos/backend.rs
index e9165824..a40d1b29 100644
--- a/core/src/services/cos/backend.rs
+++ b/core/src/services/cos/backend.rs
@@ -31,7 +31,6 @@ use super::core::CosCore;
 use super::error::parse_error;
 use super::pager::CosPager;
 use super::writer::CosWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/cos/writer.rs b/core/src/services/cos/writer.rs
index f063002d..59fb5602 100644
--- a/core/src/services/cos/writer.rs
+++ b/core/src/services/cos/writer.rs
@@ -23,7 +23,6 @@ use http::StatusCode;
 
 use super::core::CosCore;
 use super::error::parse_error;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/fs/appender.rs b/core/src/services/fs/appender.rs
index 8b0eca96..86a3e82f 100644
--- a/core/src/services/fs/appender.rs
+++ b/core/src/services/fs/appender.rs
@@ -17,7 +17,6 @@
 
 use async_trait::async_trait;
 use bytes::Bytes;
-
 use tokio::io::AsyncWriteExt;
 
 use super::error::parse_io_error;
diff --git a/core/src/services/fs/backend.rs b/core/src/services/fs/backend.rs
index 51585aa5..824107e1 100644
--- a/core/src/services/fs/backend.rs
+++ b/core/src/services/fs/backend.rs
@@ -31,7 +31,6 @@ use super::appender::FsAppender;
 use super::error::parse_io_error;
 use super::pager::FsPager;
 use super::writer::FsWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/ftp/backend.rs b/core/src/services/ftp/backend.rs
index 3efd60b0..eec0e2c3 100644
--- a/core/src/services/ftp/backend.rs
+++ b/core/src/services/ftp/backend.rs
@@ -41,7 +41,6 @@ use tokio::sync::OnceCell;
 use super::pager::FtpPager;
 use super::util::FtpReader;
 use super::writer::FtpWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/gcs/backend.rs b/core/src/services/gcs/backend.rs
index dcc646eb..08062a45 100644
--- a/core/src/services/gcs/backend.rs
+++ b/core/src/services/gcs/backend.rs
@@ -35,7 +35,6 @@ use super::core::GcsCore;
 use super::error::parse_error;
 use super::pager::GcsPager;
 use super::writer::GcsWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/gcs/writer.rs b/core/src/services/gcs/writer.rs
index 3bde86fa..dd56ae24 100644
--- a/core/src/services/gcs/writer.rs
+++ b/core/src/services/gcs/writer.rs
@@ -23,7 +23,6 @@ use http::StatusCode;
 
 use super::core::GcsCore;
 use super::error::parse_error;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/gdrive/backend.rs b/core/src/services/gdrive/backend.rs
index 1926739d..07e52a4d 100644
--- a/core/src/services/gdrive/backend.rs
+++ b/core/src/services/gdrive/backend.rs
@@ -24,17 +24,7 @@ use http::StatusCode;
 use super::core::GdriveCore;
 use super::error::parse_error;
 use super::writer::GdriveWriter;
-use crate::ops::OpDelete;
-use crate::ops::OpRead;
-use crate::ops::OpWrite;
-use crate::raw::parse_into_metadata;
-use crate::raw::Accessor;
-use crate::raw::AccessorInfo;
-use crate::raw::HttpClient;
-use crate::raw::IncomingAsyncBody;
-use crate::raw::RpDelete;
-use crate::raw::RpRead;
-use crate::raw::RpWrite;
+use crate::raw::*;
 use crate::types::Result;
 use crate::Capability;
 use crate::Error;
diff --git a/core/src/services/gdrive/writer.rs b/core/src/services/gdrive/writer.rs
index dcff07d2..d791b04a 100644
--- a/core/src/services/gdrive/writer.rs
+++ b/core/src/services/gdrive/writer.rs
@@ -23,7 +23,6 @@ use http::StatusCode;
 
 use super::core::GdriveCore;
 use super::error::parse_error;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/ghac/backend.rs b/core/src/services/ghac/backend.rs
index 380dd9a2..7197cee2 100644
--- a/core/src/services/ghac/backend.rs
+++ b/core/src/services/ghac/backend.rs
@@ -35,7 +35,6 @@ use serde::Serialize;
 
 use super::error::parse_error;
 use super::writer::GhacWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/hdfs/backend.rs b/core/src/services/hdfs/backend.rs
index bce999bd..f6bfb233 100644
--- a/core/src/services/hdfs/backend.rs
+++ b/core/src/services/hdfs/backend.rs
@@ -29,7 +29,6 @@ use log::debug;
 use super::error::parse_io_error;
 use super::pager::HdfsPager;
 use super::writer::HdfsWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/http/backend.rs b/core/src/services/http/backend.rs
index d3705f29..ec0e722d 100644
--- a/core/src/services/http/backend.rs
+++ b/core/src/services/http/backend.rs
@@ -29,7 +29,6 @@ use http::StatusCode;
 use log::debug;
 
 use super::error::parse_error;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/ipfs/backend.rs b/core/src/services/ipfs/backend.rs
index 2436c578..d700c44c 100644
--- a/core/src/services/ipfs/backend.rs
+++ b/core/src/services/ipfs/backend.rs
@@ -29,7 +29,6 @@ use prost::Message;
 
 use super::error::parse_error;
 use super::ipld::PBNode;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/ipmfs/backend.rs b/core/src/services/ipmfs/backend.rs
index 5060098e..b58ce27e 100644
--- a/core/src/services/ipmfs/backend.rs
+++ b/core/src/services/ipmfs/backend.rs
@@ -30,7 +30,6 @@ use serde::Deserialize;
 use super::error::parse_error;
 use super::pager::IpmfsPager;
 use super::writer::IpmfsWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/obs/backend.rs b/core/src/services/obs/backend.rs
index 39248a3b..a1a1288f 100644
--- a/core/src/services/obs/backend.rs
+++ b/core/src/services/obs/backend.rs
@@ -31,7 +31,6 @@ use super::core::ObsCore;
 use super::error::parse_error;
 use super::pager::ObsPager;
 use super::writer::ObsWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/obs/writer.rs b/core/src/services/obs/writer.rs
index adb441ff..247955f6 100644
--- a/core/src/services/obs/writer.rs
+++ b/core/src/services/obs/writer.rs
@@ -23,7 +23,6 @@ use http::StatusCode;
 
 use super::core::ObsCore;
 use super::error::parse_error;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/onedrive/backend.rs b/core/src/services/onedrive/backend.rs
index fcc10854..b212f800 100644
--- a/core/src/services/onedrive/backend.rs
+++ b/core/src/services/onedrive/backend.rs
@@ -31,40 +31,8 @@ use super::graph_model::OneDriveUploadSessionCreationRequestBody;
 use super::graph_model::OnedriveGetItemBody;
 use super::pager::OnedrivePager;
 use super::writer::OneDriveWriter;
-use crate::ops::OpCreateDir;
-use crate::ops::OpDelete;
-use crate::ops::OpList;
-use crate::ops::OpRead;
-use crate::ops::OpStat;
-use crate::ops::OpWrite;
-use crate::raw::build_abs_path;
-use crate::raw::build_rooted_abs_path;
-use crate::raw::get_basename;
-use crate::raw::get_parent;
-use crate::raw::new_json_deserialize_error;
-use crate::raw::new_json_serialize_error;
-use crate::raw::new_request_build_error;
-use crate::raw::parse_datetime_from_rfc3339;
-use crate::raw::parse_into_metadata;
-use crate::raw::parse_location;
-use crate::raw::percent_encode_path;
-use crate::raw::Accessor;
-use crate::raw::AccessorInfo;
-use crate::raw::AsyncBody;
-use crate::raw::HttpClient;
-use crate::raw::IncomingAsyncBody;
-use crate::raw::RpCreateDir;
-use crate::raw::RpDelete;
-use crate::raw::RpList;
-use crate::raw::RpRead;
-use crate::raw::RpStat;
-use crate::raw::RpWrite;
-use crate::types::Result;
-use crate::Capability;
-use crate::EntryMode;
-use crate::Error;
-use crate::ErrorKind;
-use crate::Metadata;
+use crate::raw::*;
+use crate::*;
 
 #[derive(Clone)]
 pub struct OnedriveBackend {
diff --git a/core/src/services/onedrive/writer.rs b/core/src/services/onedrive/writer.rs
index c071f6ca..fd7d5507 100644
--- a/core/src/services/onedrive/writer.rs
+++ b/core/src/services/onedrive/writer.rs
@@ -24,7 +24,6 @@ use super::backend::OnedriveBackend;
 use super::error::parse_error;
 use super::graph_model::OneDriveUploadSessionCreationRequestBody;
 use super::graph_model::OneDriveUploadSessionCreationResponseBody;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/oss/appender.rs b/core/src/services/oss/appender.rs
index b327d824..2edbda5f 100644
--- a/core/src/services/oss/appender.rs
+++ b/core/src/services/oss/appender.rs
@@ -23,7 +23,6 @@ use http::StatusCode;
 
 use super::core::*;
 use super::error::parse_error;
-use crate::ops::OpAppend;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/oss/backend.rs b/core/src/services/oss/backend.rs
index 64e78151..b4860fc9 100644
--- a/core/src/services/oss/backend.rs
+++ b/core/src/services/oss/backend.rs
@@ -35,7 +35,6 @@ use super::core::*;
 use super::error::parse_error;
 use super::pager::OssPager;
 use super::writer::OssWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/oss/core.rs b/core/src/services/oss/core.rs
index 6fd36ce2..043551fd 100644
--- a/core/src/services/oss/core.rs
+++ b/core/src/services/oss/core.rs
@@ -37,8 +37,6 @@ use reqsign::AliyunOssSigner;
 use serde::Deserialize;
 use serde::Serialize;
 
-use crate::ops::OpAppend;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/oss/writer.rs b/core/src/services/oss/writer.rs
index 9a75a4aa..b861458d 100644
--- a/core/src/services/oss/writer.rs
+++ b/core/src/services/oss/writer.rs
@@ -24,7 +24,6 @@ use http::StatusCode;
 
 use super::core::*;
 use super::error::parse_error;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/s3/backend.rs b/core/src/services/s3/backend.rs
index 51ecfccd..6d18b8f6 100644
--- a/core/src/services/s3/backend.rs
+++ b/core/src/services/s3/backend.rs
@@ -40,7 +40,6 @@ use super::error::parse_error;
 use super::error::parse_s3_error_code;
 use super::pager::S3Pager;
 use super::writer::S3Writer;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/s3/writer.rs b/core/src/services/s3/writer.rs
index 8898fd94..325d2ed5 100644
--- a/core/src/services/s3/writer.rs
+++ b/core/src/services/s3/writer.rs
@@ -24,7 +24,6 @@ use http::StatusCode;
 
 use super::core::*;
 use super::error::parse_error;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/sftp/backend.rs b/core/src/services/sftp/backend.rs
index 9624a711..f2b8d229 100644
--- a/core/src/services/sftp/backend.rs
+++ b/core/src/services/sftp/backend.rs
@@ -36,7 +36,6 @@ use super::error::is_sftp_protocol_error;
 use super::pager::SftpPager;
 use super::utils::SftpReader;
 use super::writer::SftpWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/supabase/backend.rs b/core/src/services/supabase/backend.rs
index 34f31521..a893ecc5 100644
--- a/core/src/services/supabase/backend.rs
+++ b/core/src/services/supabase/backend.rs
@@ -25,7 +25,6 @@ use log::debug;
 use super::core::*;
 use super::error::parse_error;
 use super::writer::*;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/supabase/writer.rs b/core/src/services/supabase/writer.rs
index 5d32a412..7075670d 100644
--- a/core/src/services/supabase/writer.rs
+++ b/core/src/services/supabase/writer.rs
@@ -23,7 +23,6 @@ use http::StatusCode;
 
 use super::core::*;
 use super::error::parse_error;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/vercel_artifacts/backend.rs b/core/src/services/vercel_artifacts/backend.rs
index 876b67e5..5a7059c2 100644
--- a/core/src/services/vercel_artifacts/backend.rs
+++ b/core/src/services/vercel_artifacts/backend.rs
@@ -25,21 +25,8 @@ use http::StatusCode;
 
 use super::error::parse_error;
 use super::writer::VercelArtifactsWriter;
-use crate::ops::OpRead;
-use crate::ops::OpWrite;
-use crate::raw::new_request_build_error;
-use crate::raw::parse_into_metadata;
-use crate::raw::Accessor;
-use crate::raw::AccessorInfo;
-use crate::raw::AsyncBody;
-use crate::raw::HttpClient;
-use crate::raw::IncomingAsyncBody;
-use crate::raw::RpRead;
-use crate::raw::RpWrite;
-use crate::types::Result;
-use crate::Capability;
-use crate::Error;
-use crate::ErrorKind;
+use crate::raw::*;
+use crate::*;
 
 #[derive(Clone)]
 pub struct VercelArtifactsBackend {
diff --git a/core/src/services/vercel_artifacts/writer.rs b/core/src/services/vercel_artifacts/writer.rs
index 89ad9a60..e95a86d0 100644
--- a/core/src/services/vercel_artifacts/writer.rs
+++ b/core/src/services/vercel_artifacts/writer.rs
@@ -21,7 +21,6 @@ use http::StatusCode;
 
 use super::backend::VercelArtifactsBackend;
 use super::error::parse_error;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/wasabi/backend.rs b/core/src/services/wasabi/backend.rs
index 463a3b4c..97fc9cfd 100644
--- a/core/src/services/wasabi/backend.rs
+++ b/core/src/services/wasabi/backend.rs
@@ -39,7 +39,6 @@ use super::core::*;
 use super::error::parse_error;
 use super::pager::WasabiPager;
 use super::writer::WasabiWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/wasabi/core.rs b/core/src/services/wasabi/core.rs
index 28ce4821..5f28bd51 100644
--- a/core/src/services/wasabi/core.rs
+++ b/core/src/services/wasabi/core.rs
@@ -36,7 +36,6 @@ use reqsign::AwsV4Signer;
 use serde::Deserialize;
 use serde::Serialize;
 
-use crate::ops::OpStat;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/wasabi/writer.rs b/core/src/services/wasabi/writer.rs
index 14372cb2..46d5e74a 100644
--- a/core/src/services/wasabi/writer.rs
+++ b/core/src/services/wasabi/writer.rs
@@ -23,7 +23,6 @@ use http::StatusCode;
 
 use super::core::*;
 use super::error::parse_error;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/webdav/backend.rs b/core/src/services/webdav/backend.rs
index 68b54019..6e98c50a 100644
--- a/core/src/services/webdav/backend.rs
+++ b/core/src/services/webdav/backend.rs
@@ -32,7 +32,6 @@ use super::error::parse_error;
 use super::list_response::Multistatus;
 use super::pager::WebdavPager;
 use super::writer::WebdavWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/webdav/writer.rs b/core/src/services/webdav/writer.rs
index 89ddd7b8..dce14d2b 100644
--- a/core/src/services/webdav/writer.rs
+++ b/core/src/services/webdav/writer.rs
@@ -21,7 +21,6 @@ use http::StatusCode;
 
 use super::backend::WebdavBackend;
 use super::error::parse_error;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/webhdfs/backend.rs b/core/src/services/webhdfs/backend.rs
index 01c6801c..1c060f4f 100644
--- a/core/src/services/webhdfs/backend.rs
+++ b/core/src/services/webhdfs/backend.rs
@@ -34,7 +34,6 @@ use super::message::FileStatusWrapper;
 use super::message::FileStatusesWrapper;
 use super::pager::WebhdfsPager;
 use super::writer::WebhdfsWriter;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/services/webhdfs/writer.rs b/core/src/services/webhdfs/writer.rs
index 16448141..110f0644 100644
--- a/core/src/services/webhdfs/writer.rs
+++ b/core/src/services/webhdfs/writer.rs
@@ -21,7 +21,6 @@ use http::StatusCode;
 
 use super::backend::WebhdfsBackend;
 use super::error::parse_error;
-use crate::ops::OpWrite;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/types/appender.rs b/core/src/types/appender.rs
index 71ad7845..7ebe3358 100644
--- a/core/src/types/appender.rs
+++ b/core/src/types/appender.rs
@@ -27,7 +27,6 @@ use futures::future::BoxFuture;
 use futures::AsyncWrite;
 use futures::FutureExt;
 
-use crate::ops::OpAppend;
 use crate::raw::oio::Append;
 use crate::raw::*;
 use crate::*;
diff --git a/core/src/types/mod.rs b/core/src/types/mod.rs
index bb202abf..11dd1268 100644
--- a/core/src/types/mod.rs
+++ b/core/src/types/mod.rs
@@ -61,5 +61,3 @@ pub use scheme::Scheme;
 
 mod capability;
 pub use capability::Capability;
-
-pub mod ops;
diff --git a/core/src/types/operator/blocking_operator.rs b/core/src/types/operator/blocking_operator.rs
index ce2478f2..7828b6f2 100644
--- a/core/src/types/operator/blocking_operator.rs
+++ b/core/src/types/operator/blocking_operator.rs
@@ -21,12 +21,10 @@ use std::ops::RangeBounds;
 use bytes::Bytes;
 use flagset::FlagSet;
 
-use crate::ops::*;
+use super::operator_functions::*;
 use crate::raw::*;
 use crate::*;
 
-use super::operator_functions::*;
-
 /// BlockingOperator is the entry for all public blocking APIs.
 ///
 /// Read [`concepts`][docs::concepts] for know more about [`Operator`].
@@ -583,7 +581,10 @@ impl BlockingOperator {
     ///
     /// # async fn test(op: BlockingOperator) -> Result<()> {
     /// let bs = b"hello, world!".to_vec();
-    /// let _ = op.write_with("hello.txt", bs).content_type("text/plain").call()?;
+    /// let _ = op
+    ///     .write_with("hello.txt", bs)
+    ///     .content_type("text/plain")
+    ///     .call()?;
     /// # Ok(())
     /// # }
     /// ```
diff --git a/core/src/types/operator/operator.rs b/core/src/types/operator/operator.rs
index 1d1d1958..f1cfefbc 100644
--- a/core/src/types/operator/operator.rs
+++ b/core/src/types/operator/operator.rs
@@ -29,7 +29,6 @@ use tokio::io::ReadBuf;
 
 use super::BlockingOperator;
 use crate::operator_futures::*;
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
@@ -589,10 +588,7 @@ impl Operator {
     /// # use opendal::ops::OpRead;
     /// # #[tokio::main]
     /// # async fn test(op: Operator) -> Result<()> {
-    /// let r = op
-    ///     .reader_with("path/to/file")
-    ///     .range((0..10))
-    ///     .await?;
+    /// let r = op.reader_with("path/to/file").range((0..10)).await?;
     /// # Ok(())
     /// # }
     /// ```
@@ -835,7 +831,10 @@ impl Operator {
     ///
     /// # #[tokio::main]
     /// # async fn test(op: Operator) -> Result<()> {
-    /// let mut w = op.writer_with("path/to/file").content_type("application/octet-stream").await?;
+    /// let mut w = op
+    ///     .writer_with("path/to/file")
+    ///     .content_type("application/octet-stream")
+    ///     .await?;
     /// w.write(vec![0; 4096]).await?;
     /// w.write(vec![1; 4096]).await?;
     /// w.close().await?;
@@ -887,7 +886,10 @@ impl Operator {
     /// # #[tokio::main]
     /// # async fn test(op: Operator) -> Result<()> {
     /// let bs = b"hello, world!".to_vec();
-    /// let _ = op.write_with("path/to/file", bs).content_type("text/plain").await?;
+    /// let _ = op
+    ///     .write_with("path/to/file", bs)
+    ///     .content_type("text/plain")
+    ///     .await?;
     /// # Ok(())
     /// # }
     /// ```
@@ -961,7 +963,10 @@ impl Operator {
     ///
     /// # #[tokio::main]
     /// # async fn test(op: Operator) -> Result<()> {
-    /// let mut a = op.appender_with("path/to/file").content_type("application/octet-stream").await?;
+    /// let mut a = op
+    ///     .appender_with("path/to/file")
+    ///     .content_type("application/octet-stream")
+    ///     .await?;
     /// a.append(vec![0; 4096]).await?;
     /// a.append(vec![1; 4096]).await?;
     /// a.close().await?;
@@ -1016,7 +1021,10 @@ impl Operator {
     /// # #[tokio::main]
     /// # async fn test(op: Operator) -> Result<()> {
     /// let bs = b"hello, world!".to_vec();
-    /// let _ = op.append_with("path/to/file", bs).content_type("text/plain").await?;
+    /// let _ = op
+    ///     .append_with("path/to/file", bs)
+    ///     .content_type("text/plain")
+    ///     .await?;
     /// # Ok(())
     /// # }
     /// ```
@@ -1287,7 +1295,11 @@ impl Operator {
     /// use opendal::Operator;
     /// # #[tokio::main]
     /// # async fn test(op: Operator) -> Result<()> {
-    /// let mut ds = op.list_with("path/to/dir/").limit(10).start_after("start").await?;
+    /// let mut ds = op
+    ///     .list_with("path/to/dir/")
+    ///     .limit(10)
+    ///     .start_after("start")
+    ///     .await?;
     /// while let Some(mut de) = ds.try_next().await? {
     ///     let meta = op.metadata(&de, Metakey::Mode).await?;
     ///     match meta.mode() {
diff --git a/core/src/types/operator/operator_functions.rs b/core/src/types/operator/operator_functions.rs
index 9054759d..282d097c 100644
--- a/core/src/types/operator/operator_functions.rs
+++ b/core/src/types/operator/operator_functions.rs
@@ -21,7 +21,6 @@
 
 use bytes::Bytes;
 
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/types/operator/operator_futures.rs b/core/src/types/operator/operator_futures.rs
index 478f25ce..0be8fb25 100644
--- a/core/src/types/operator/operator_futures.rs
+++ b/core/src/types/operator/operator_futures.rs
@@ -19,19 +19,18 @@
 //!
 //! By using futures, users can add more options for operation.
 
-use bytes::Bytes;
-
 use std::mem;
 use std::ops::RangeBounds;
 use std::pin::Pin;
-use std::task::{Context, Poll};
+use std::task::Context;
+use std::task::Poll;
 use std::time::Duration;
 
+use bytes::Bytes;
 use futures::future::BoxFuture;
 use futures::Future;
 use futures::FutureExt;
 
-use crate::ops::*;
 use crate::raw::*;
 use crate::*;
 
@@ -277,7 +276,6 @@ impl FuturePresignWrite {
     ///
     /// If the content length is not set, the content length will be
     /// calculated automatically by buffering part of data.
-    ///
     pub fn content_length(mut self, v: u64) -> Self {
         self.0 = self
             .0
@@ -426,7 +424,6 @@ impl FutureWrite {
     ///
     /// If the content length is not set, the content length will be
     /// calculated automatically by buffering part of data.
-    ///
     pub fn content_length(mut self, v: u64) -> Self {
         self.0 = self
             .0
@@ -477,7 +474,6 @@ impl FutureWriter {
     ///
     /// If the content length is not set, the content length will be
     /// calculated automatically by buffering part of data.
-    ///
     pub fn content_length(mut self, v: u64) -> Self {
         self.0 = self.0.map_args(|args| args.with_content_length(v));
         self
diff --git a/core/src/types/reader.rs b/core/src/types/reader.rs
index 41998369..0f3bd2ea 100644
--- a/core/src/types/reader.rs
+++ b/core/src/types/reader.rs
@@ -26,7 +26,6 @@ use futures::AsyncRead;
 use futures::AsyncSeek;
 use futures::Stream;
 
-use crate::ops::OpRead;
 use crate::raw::*;
 use crate::*;
 
diff --git a/core/src/types/writer.rs b/core/src/types/writer.rs
index bb6adc1b..04911656 100644
--- a/core/src/types/writer.rs
+++ b/core/src/types/writer.rs
@@ -27,7 +27,6 @@ use futures::future::BoxFuture;
 use futures::AsyncWrite;
 use futures::FutureExt;
 
-use crate::ops::OpWrite;
 use crate::raw::oio::Write;
 use crate::raw::*;
 use crate::*;