This is an automated email from the ASF dual-hosted git repository. xuanwo pushed a commit to branch refactor-write in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git
commit a936cbb382c5283b8418c25ae1b0349c47b0eede Author: Xuanwo <[email protected]> AuthorDate: Fri Sep 8 00:00:14 2023 +0800 Move buf to raw Signed-off-by: Xuanwo <[email protected]> --- core/benches/oio/utils.rs | 2 +- core/src/layers/blocking.rs | 2 +- core/src/layers/complete.rs | 4 ++-- core/src/layers/concurrent_limit.rs | 4 ++-- core/src/layers/error_context.rs | 4 ++-- core/src/layers/logging.rs | 4 ++-- core/src/layers/madsim.rs | 2 +- core/src/layers/metrics.rs | 4 ++-- core/src/layers/minitrace.rs | 4 ++-- core/src/layers/oteltrace.rs | 4 ++-- core/src/layers/prometheus.rs | 4 ++-- core/src/layers/retry.rs | 4 ++-- core/src/layers/throttle.rs | 4 ++-- core/src/layers/timeout.rs | 2 +- core/src/layers/tracing.rs | 4 ++-- core/src/raw/adapters/kv/backend.rs | 4 ++-- core/src/raw/adapters/typed_kv/backend.rs | 4 ++-- core/src/{types => raw/oio}/buf.rs | 0 core/src/raw/oio/mod.rs | 3 +++ core/src/raw/oio/write/api.rs | 13 +++++++------ core/src/raw/oio/write/append_object_write.rs | 2 +- core/src/raw/oio/write/compose_write.rs | 4 ++-- core/src/raw/oio/write/exact_buf_write.rs | 1 + core/src/raw/oio/write/multipart_upload_write.rs | 2 +- core/src/raw/oio/write/one_shot_write.rs | 4 ++-- core/src/services/azblob/writer.rs | 2 +- core/src/services/azdfs/writer.rs | 2 +- core/src/services/cos/writer.rs | 2 +- core/src/services/dropbox/writer.rs | 2 +- core/src/services/fs/writer.rs | 4 ++-- core/src/services/ftp/writer.rs | 2 +- core/src/services/gcs/writer.rs | 2 +- core/src/services/gdrive/writer.rs | 2 +- core/src/services/ghac/writer.rs | 2 +- core/src/services/hdfs/writer.rs | 4 ++-- core/src/services/ipmfs/writer.rs | 2 +- core/src/services/obs/writer.rs | 2 +- core/src/services/onedrive/writer.rs | 2 +- core/src/services/oss/writer.rs | 2 +- core/src/services/s3/writer.rs | 2 +- core/src/services/sftp/writer.rs | 2 +- core/src/services/supabase/writer.rs | 2 +- core/src/services/vercel_artifacts/writer.rs | 2 +- core/src/services/wasabi/writer.rs | 2 +- core/src/services/webdav/writer.rs | 2 +- core/src/services/webhdfs/writer.rs | 2 +- core/src/types/mod.rs | 3 --- core/src/types/operator/blocking_operator.rs | 1 + core/src/types/writer.rs | 1 + 49 files changed, 72 insertions(+), 68 deletions(-) diff --git a/core/benches/oio/utils.rs b/core/benches/oio/utils.rs index 92aa56450..03e6d2397 100644 --- a/core/benches/oio/utils.rs +++ b/core/benches/oio/utils.rs @@ -26,7 +26,7 @@ pub struct BlackHoleWriter; #[async_trait] impl oio::Write for BlackHoleWriter { - async fn write(&mut self, bs: &dyn opendal::Buf) -> opendal::Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> opendal::Result<usize> { Ok(bs.remaining()) } diff --git a/core/src/layers/blocking.rs b/core/src/layers/blocking.rs index 504111199..36b1a96d4 100644 --- a/core/src/layers/blocking.rs +++ b/core/src/layers/blocking.rs @@ -196,7 +196,7 @@ impl<I: oio::Read + 'static> oio::BlockingRead for BlockingWrapper<I> { } impl<I: oio::Write + 'static> oio::BlockingWrite for BlockingWrapper<I> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.handle.block_on(self.inner.write(bs)) } diff --git a/core/src/layers/complete.rs b/core/src/layers/complete.rs index f1e76d5a5..258d17e22 100644 --- a/core/src/layers/complete.rs +++ b/core/src/layers/complete.rs @@ -711,7 +711,7 @@ impl<W> oio::Write for CompleteWriter<W> where W: oio::Write, { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let w = self.inner.as_mut().ok_or_else(|| { Error::new(ErrorKind::Unexpected, "writer has been closed or aborted") })?; @@ -772,7 +772,7 @@ impl<W> oio::BlockingWrite for CompleteWriter<W> where W: oio::BlockingWrite, { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let w = self.inner.as_mut().ok_or_else(|| { Error::new(ErrorKind::Unexpected, "writer has been closed or aborted") })?; diff --git a/core/src/layers/concurrent_limit.rs b/core/src/layers/concurrent_limit.rs index ec965a95a..abcdd3a45 100644 --- a/core/src/layers/concurrent_limit.rs +++ b/core/src/layers/concurrent_limit.rs @@ -285,7 +285,7 @@ impl<R: oio::BlockingRead> oio::BlockingRead for ConcurrentLimitWrapper<R> { #[async_trait] impl<R: oio::Write> oio::Write for ConcurrentLimitWrapper<R> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.inner.write(bs).await } @@ -299,7 +299,7 @@ impl<R: oio::Write> oio::Write for ConcurrentLimitWrapper<R> { } impl<R: oio::BlockingWrite> oio::BlockingWrite for ConcurrentLimitWrapper<R> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.inner.write(bs) } diff --git a/core/src/layers/error_context.rs b/core/src/layers/error_context.rs index 1e01f68d3..6e0997654 100644 --- a/core/src/layers/error_context.rs +++ b/core/src/layers/error_context.rs @@ -403,7 +403,7 @@ impl<T: oio::BlockingRead> oio::BlockingRead for ErrorContextWrapper<T> { #[async_trait::async_trait] impl<T: oio::Write> oio::Write for ErrorContextWrapper<T> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.inner.write(bs).await.map_err(|err| { err.with_operation(WriteOperation::Write) .with_context("service", self.scheme) @@ -429,7 +429,7 @@ impl<T: oio::Write> oio::Write for ErrorContextWrapper<T> { } impl<T: oio::BlockingWrite> oio::BlockingWrite for ErrorContextWrapper<T> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.inner.write(bs).map_err(|err| { err.with_operation(WriteOperation::BlockingWrite) .with_context("service", self.scheme) diff --git a/core/src/layers/logging.rs b/core/src/layers/logging.rs index c69372123..d8fbc0784 100644 --- a/core/src/layers/logging.rs +++ b/core/src/layers/logging.rs @@ -1252,7 +1252,7 @@ impl<W> LoggingWriter<W> { #[async_trait] impl<W: oio::Write> oio::Write for LoggingWriter<W> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { match self.inner.write(bs).await { Ok(n) => { self.written += n as u64; @@ -1349,7 +1349,7 @@ impl<W: oio::Write> oio::Write for LoggingWriter<W> { } impl<W: oio::BlockingWrite> oio::BlockingWrite for LoggingWriter<W> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { match self.inner.write(bs) { Ok(n) => { self.written += n as u64; diff --git a/core/src/layers/madsim.rs b/core/src/layers/madsim.rs index e6047bb42..a217b3de7 100644 --- a/core/src/layers/madsim.rs +++ b/core/src/layers/madsim.rs @@ -302,7 +302,7 @@ pub struct MadsimWriter { #[async_trait] impl oio::Write for MadsimWriter { - async fn write(&mut self, bs: &dyn Buf) -> crate::Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> crate::Result<usize> { #[cfg(madsim)] { let req = Request::Write(self.path.to_string(), bs); diff --git a/core/src/layers/metrics.rs b/core/src/layers/metrics.rs index dcba90bc2..d9232d673 100644 --- a/core/src/layers/metrics.rs +++ b/core/src/layers/metrics.rs @@ -847,7 +847,7 @@ impl<R: oio::BlockingRead> oio::BlockingRead for MetricWrapper<R> { #[async_trait] impl<R: oio::Write> oio::Write for MetricWrapper<R> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.inner .write(bs) .await @@ -877,7 +877,7 @@ impl<R: oio::Write> oio::Write for MetricWrapper<R> { } impl<R: oio::BlockingWrite> oio::BlockingWrite for MetricWrapper<R> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.inner .write(bs) .map(|n| { diff --git a/core/src/layers/minitrace.rs b/core/src/layers/minitrace.rs index 9d1f397be..98f4cb7d5 100644 --- a/core/src/layers/minitrace.rs +++ b/core/src/layers/minitrace.rs @@ -337,7 +337,7 @@ impl<R: oio::BlockingRead> oio::BlockingRead for MinitraceWrapper<R> { #[async_trait] impl<R: oio::Write> oio::Write for MinitraceWrapper<R> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.inner .write(bs) .in_span(Span::enter_with_parent( @@ -369,7 +369,7 @@ impl<R: oio::Write> oio::Write for MinitraceWrapper<R> { } impl<R: oio::BlockingWrite> oio::BlockingWrite for MinitraceWrapper<R> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let _g = self.span.set_local_parent(); let _span = LocalSpan::enter_with_local_parent(WriteOperation::BlockingWrite.into_static()); self.inner.write(bs) diff --git a/core/src/layers/oteltrace.rs b/core/src/layers/oteltrace.rs index a0e5a1fe1..066342173 100644 --- a/core/src/layers/oteltrace.rs +++ b/core/src/layers/oteltrace.rs @@ -313,7 +313,7 @@ impl<R: oio::BlockingRead> oio::BlockingRead for OtelTraceWrapper<R> { #[async_trait] impl<R: oio::Write> oio::Write for OtelTraceWrapper<R> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.inner.write(bs).await } @@ -327,7 +327,7 @@ impl<R: oio::Write> oio::Write for OtelTraceWrapper<R> { } impl<R: oio::BlockingWrite> oio::BlockingWrite for OtelTraceWrapper<R> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.inner.write(bs) } diff --git a/core/src/layers/prometheus.rs b/core/src/layers/prometheus.rs index 2c7d7d7cf..dced94296 100644 --- a/core/src/layers/prometheus.rs +++ b/core/src/layers/prometheus.rs @@ -662,7 +662,7 @@ impl<R: oio::BlockingRead> oio::BlockingRead for PrometheusMetricWrapper<R> { #[async_trait] impl<R: oio::Write> oio::Write for PrometheusMetricWrapper<R> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.inner .write(bs) .await @@ -695,7 +695,7 @@ impl<R: oio::Write> oio::Write for PrometheusMetricWrapper<R> { } impl<R: oio::BlockingWrite> oio::BlockingWrite for PrometheusMetricWrapper<R> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.inner .write(bs) .map(|n| { diff --git a/core/src/layers/retry.rs b/core/src/layers/retry.rs index f41586dfa..1e3b613b4 100644 --- a/core/src/layers/retry.rs +++ b/core/src/layers/retry.rs @@ -872,7 +872,7 @@ impl<R: oio::BlockingRead, I: RetryInterceptor> oio::BlockingRead for RetryWrapp #[async_trait] impl<R: oio::Write, I: RetryInterceptor> oio::Write for RetryWrapper<R, I> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let mut backoff = self.builder.build(); loop { @@ -952,7 +952,7 @@ impl<R: oio::Write, I: RetryInterceptor> oio::Write for RetryWrapper<R, I> { } impl<R: oio::BlockingWrite, I: RetryInterceptor> oio::BlockingWrite for RetryWrapper<R, I> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { { || self.inner.write(bs) } .retry(&self.builder) .when(|e| e.is_temporary()) diff --git a/core/src/layers/throttle.rs b/core/src/layers/throttle.rs index 96bd9d00b..fd845f60a 100644 --- a/core/src/layers/throttle.rs +++ b/core/src/layers/throttle.rs @@ -216,7 +216,7 @@ impl<R: oio::BlockingRead> oio::BlockingRead for ThrottleWrapper<R> { #[async_trait] impl<R: oio::Write> oio::Write for ThrottleWrapper<R> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let buf_length = NonZeroU32::new(bs.remaining() as u32).unwrap(); loop { @@ -251,7 +251,7 @@ impl<R: oio::Write> oio::Write for ThrottleWrapper<R> { } impl<R: oio::BlockingWrite> oio::BlockingWrite for ThrottleWrapper<R> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let buf_length = NonZeroU32::new(bs.remaining() as u32).unwrap(); loop { diff --git a/core/src/layers/timeout.rs b/core/src/layers/timeout.rs index a6179010a..03185bdc0 100644 --- a/core/src/layers/timeout.rs +++ b/core/src/layers/timeout.rs @@ -322,7 +322,7 @@ impl<R: oio::Read> oio::Read for TimeoutWrapper<R> { #[async_trait] impl<R: oio::Write> oio::Write for TimeoutWrapper<R> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let timeout = self.io_timeout(bs.remaining() as u64); tokio::time::timeout(timeout, self.inner.write(bs)) diff --git a/core/src/layers/tracing.rs b/core/src/layers/tracing.rs index a512f74ba..0842e1407 100644 --- a/core/src/layers/tracing.rs +++ b/core/src/layers/tracing.rs @@ -324,7 +324,7 @@ impl<R: oio::Write> oio::Write for TracingWrapper<R> { parent = &self.span, level = "trace", skip_all)] - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.inner.write(bs).await } @@ -350,7 +350,7 @@ impl<R: oio::BlockingWrite> oio::BlockingWrite for TracingWrapper<R> { parent = &self.span, level = "trace", skip_all)] - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.inner.write(bs) } diff --git a/core/src/raw/adapters/kv/backend.rs b/core/src/raw/adapters/kv/backend.rs index 53b37a119..42445aca7 100644 --- a/core/src/raw/adapters/kv/backend.rs +++ b/core/src/raw/adapters/kv/backend.rs @@ -389,7 +389,7 @@ impl<S> KvWriter<S> { #[async_trait] impl<S: Adapter> oio::Write for KvWriter<S> { // TODO: we need to support append in the future. - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.chunk().len(); let mut buf = self.buf.take().unwrap_or_else(|| Vec::with_capacity(size)); @@ -416,7 +416,7 @@ impl<S: Adapter> oio::Write for KvWriter<S> { } impl<S: Adapter> oio::BlockingWrite for KvWriter<S> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.chunk().len(); let mut buf = self.buf.take().unwrap_or_else(|| Vec::with_capacity(size)); diff --git a/core/src/raw/adapters/typed_kv/backend.rs b/core/src/raw/adapters/typed_kv/backend.rs index 14879d436..7edab8b47 100644 --- a/core/src/raw/adapters/typed_kv/backend.rs +++ b/core/src/raw/adapters/typed_kv/backend.rs @@ -401,7 +401,7 @@ impl<S> KvWriter<S> { #[async_trait] impl<S: Adapter> oio::Write for KvWriter<S> { // TODO: we need to support append in the future. - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.chunk().len(); let mut buf = self.buf.take().unwrap_or_else(|| Vec::with_capacity(size)); @@ -427,7 +427,7 @@ impl<S: Adapter> oio::Write for KvWriter<S> { } impl<S: Adapter> oio::BlockingWrite for KvWriter<S> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.chunk().len(); let mut buf = self.buf.take().unwrap_or_else(|| Vec::with_capacity(size)); diff --git a/core/src/types/buf.rs b/core/src/raw/oio/buf.rs similarity index 100% rename from core/src/types/buf.rs rename to core/src/raw/oio/buf.rs diff --git a/core/src/raw/oio/mod.rs b/core/src/raw/oio/mod.rs index 1b24bec9c..b08a0d222 100644 --- a/core/src/raw/oio/mod.rs +++ b/core/src/raw/oio/mod.rs @@ -41,3 +41,6 @@ pub use cursor::VectorCursor; mod entry; pub use entry::Entry; + +mod buf; +pub use buf::Buf; diff --git a/core/src/raw/oio/write/api.rs b/core/src/raw/oio/write/api.rs index 66af2de08..46fb11822 100644 --- a/core/src/raw/oio/write/api.rs +++ b/core/src/raw/oio/write/api.rs @@ -20,6 +20,7 @@ use std::fmt::Formatter; use async_trait::async_trait; +use crate::raw::*; use crate::*; /// WriteOperation is the name for APIs of Writer. @@ -80,7 +81,7 @@ pub trait Write: Unpin + Send + Sync { /// /// It's possible that `n < bs.len()`, caller should pass the remaining bytes /// repeatedly until all bytes has been written. - async fn write(&mut self, bs: &dyn Buf) -> Result<usize>; + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize>; /// Abort the pending writer. async fn abort(&mut self) -> Result<()>; @@ -91,7 +92,7 @@ pub trait Write: Unpin + Send + Sync { #[async_trait] impl Write for () { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let _ = bs; unimplemented!("write is required to be implemented for oio::Write") @@ -117,7 +118,7 @@ impl Write for () { /// To make Writer work as expected, we must add this impl. #[async_trait] impl<T: Write + ?Sized> Write for Box<T> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { (**self).write(bs).await } @@ -136,14 +137,14 @@ pub type BlockingWriter = Box<dyn BlockingWrite>; /// BlockingWrite is the trait that OpenDAL returns to callers. pub trait BlockingWrite: Send + Sync + 'static { /// Write whole content at once. - fn write(&mut self, bs: &dyn Buf) -> Result<usize>; + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize>; /// Close the writer and make sure all data has been flushed. fn close(&mut self) -> Result<()>; } impl BlockingWrite for () { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let _ = bs; unimplemented!("write is required to be implemented for oio::BlockingWrite") @@ -161,7 +162,7 @@ impl BlockingWrite for () { /// /// To make BlockingWriter work as expected, we must add this impl. impl<T: BlockingWrite + ?Sized> BlockingWrite for Box<T> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { (**self).write(bs) } diff --git a/core/src/raw/oio/write/append_object_write.rs b/core/src/raw/oio/write/append_object_write.rs index cbf5ef194..0384b1b1f 100644 --- a/core/src/raw/oio/write/append_object_write.rs +++ b/core/src/raw/oio/write/append_object_write.rs @@ -77,7 +77,7 @@ impl<W> oio::Write for AppendObjectWriter<W> where W: AppendObjectWrite, { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let offset = self.offset().await?; let size = bs.remaining(); diff --git a/core/src/raw/oio/write/compose_write.rs b/core/src/raw/oio/write/compose_write.rs index 991263e98..e191d5981 100644 --- a/core/src/raw/oio/write/compose_write.rs +++ b/core/src/raw/oio/write/compose_write.rs @@ -55,7 +55,7 @@ pub enum TwoWaysWriter<ONE: oio::Write, TWO: oio::Write> { #[async_trait] impl<ONE: oio::Write, TWO: oio::Write> oio::Write for TwoWaysWriter<ONE, TWO> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { match self { Self::One(one) => one.write(bs).await, Self::Two(two) => two.write(bs).await, @@ -93,7 +93,7 @@ pub enum ThreeWaysWriter<ONE: oio::Write, TWO: oio::Write, THREE: oio::Write> { impl<ONE: oio::Write, TWO: oio::Write, THREE: oio::Write> oio::Write for ThreeWaysWriter<ONE, TWO, THREE> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { match self { Self::One(one) => one.write(bs).await, Self::Two(two) => two.write(bs).await, diff --git a/core/src/raw/oio/write/exact_buf_write.rs b/core/src/raw/oio/write/exact_buf_write.rs index 4b3fe6eee..db47be74d 100644 --- a/core/src/raw/oio/write/exact_buf_write.rs +++ b/core/src/raw/oio/write/exact_buf_write.rs @@ -20,6 +20,7 @@ use std::cmp::min; use async_trait::async_trait; use bytes::{Bytes, BytesMut}; +use crate::raw::oio::Buf; use crate::raw::*; use crate::*; diff --git a/core/src/raw/oio/write/multipart_upload_write.rs b/core/src/raw/oio/write/multipart_upload_write.rs index 0ae01c157..8ff0d2d5b 100644 --- a/core/src/raw/oio/write/multipart_upload_write.rs +++ b/core/src/raw/oio/write/multipart_upload_write.rs @@ -119,7 +119,7 @@ impl<W> oio::Write for MultipartUploadWriter<W> where W: MultipartUploadWrite, { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let upload_id = self.upload_id().await?; let size = bs.remaining(); diff --git a/core/src/raw/oio/write/one_shot_write.rs b/core/src/raw/oio/write/one_shot_write.rs index 857783a51..8ac27f59e 100644 --- a/core/src/raw/oio/write/one_shot_write.rs +++ b/core/src/raw/oio/write/one_shot_write.rs @@ -31,7 +31,7 @@ pub trait OneShotWrite: Send + Sync + Unpin { /// write_once write all data at once. /// /// Implementations should make sure that the data is written correctly at once. - async fn write_once(&self, body: &dyn Buf) -> Result<()>; + async fn write_once(&self, body: &dyn oio::Buf) -> Result<()>; } /// OneShotWrite is used to implement [`Write`] based on one shot. @@ -48,7 +48,7 @@ impl<W: OneShotWrite> OneShotWriter<W> { #[async_trait] impl<W: OneShotWrite> oio::Write for OneShotWriter<W> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); self.inner.write_once(bs).await?; Ok(size) diff --git a/core/src/services/azblob/writer.rs b/core/src/services/azblob/writer.rs index b0db2f5bf..73b4777bd 100644 --- a/core/src/services/azblob/writer.rs +++ b/core/src/services/azblob/writer.rs @@ -160,7 +160,7 @@ impl AzblobWriter { #[async_trait] impl oio::Write for AzblobWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); if self.op.append() { diff --git a/core/src/services/azdfs/writer.rs b/core/src/services/azdfs/writer.rs index d79bf3ea5..e49958d8c 100644 --- a/core/src/services/azdfs/writer.rs +++ b/core/src/services/azdfs/writer.rs @@ -40,7 +40,7 @@ impl AzdfsWriter { #[async_trait] impl oio::Write for AzdfsWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let mut req = self.core.azdfs_create_request( &self.path, "file", diff --git a/core/src/services/cos/writer.rs b/core/src/services/cos/writer.rs index 2c187fc31..2527099ec 100644 --- a/core/src/services/cos/writer.rs +++ b/core/src/services/cos/writer.rs @@ -50,7 +50,7 @@ impl CosWriter { #[async_trait] impl oio::OneShotWrite for CosWriter { - async fn write_once(&self, buf: &dyn Buf) -> Result<()> { + async fn write_once(&self, buf: &dyn oio::Buf) -> Result<()> { let size = buf.remaining(); let mut req = self.core.cos_put_object_request( &self.path, diff --git a/core/src/services/dropbox/writer.rs b/core/src/services/dropbox/writer.rs index 7c7726937..e503bef82 100644 --- a/core/src/services/dropbox/writer.rs +++ b/core/src/services/dropbox/writer.rs @@ -39,7 +39,7 @@ impl DropboxWriter { #[async_trait] impl oio::Write for DropboxWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); let resp = self diff --git a/core/src/services/fs/writer.rs b/core/src/services/fs/writer.rs index 74285adec..b256f88fc 100644 --- a/core/src/services/fs/writer.rs +++ b/core/src/services/fs/writer.rs @@ -43,7 +43,7 @@ impl<F> FsWriter<F> { #[async_trait] impl oio::Write for FsWriter<tokio::fs::File> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.f.write(bs.chunk()).await.map_err(parse_io_error) } @@ -68,7 +68,7 @@ impl oio::Write for FsWriter<tokio::fs::File> { } impl oio::BlockingWrite for FsWriter<std::fs::File> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.f.write(bs.chunk()).map_err(parse_io_error) } diff --git a/core/src/services/ftp/writer.rs b/core/src/services/ftp/writer.rs index 7816428cc..5f5148bc9 100644 --- a/core/src/services/ftp/writer.rs +++ b/core/src/services/ftp/writer.rs @@ -40,7 +40,7 @@ impl FtpWriter { #[async_trait] impl oio::Write for FtpWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); let bs = bs.copy_to_bytes(size); diff --git a/core/src/services/gcs/writer.rs b/core/src/services/gcs/writer.rs index 317c6b1a0..7627979f5 100644 --- a/core/src/services/gcs/writer.rs +++ b/core/src/services/gcs/writer.rs @@ -118,7 +118,7 @@ impl GcsWriter { #[async_trait] impl oio::Write for GcsWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); let location = match &self.location { diff --git a/core/src/services/gdrive/writer.rs b/core/src/services/gdrive/writer.rs index 606b3bf10..9d6b63174 100644 --- a/core/src/services/gdrive/writer.rs +++ b/core/src/services/gdrive/writer.rs @@ -95,7 +95,7 @@ impl GdriveWriter { #[async_trait] impl oio::Write for GdriveWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); if self.file_id.is_none() { self.write_create(size as u64, bs.copy_to_bytes(size)) diff --git a/core/src/services/ghac/writer.rs b/core/src/services/ghac/writer.rs index 2c000dba9..9fb0b45e7 100644 --- a/core/src/services/ghac/writer.rs +++ b/core/src/services/ghac/writer.rs @@ -41,7 +41,7 @@ impl GhacWriter { #[async_trait] impl oio::Write for GhacWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); let req = self diff --git a/core/src/services/hdfs/writer.rs b/core/src/services/hdfs/writer.rs index 7a0b07e3c..4cecb7dc9 100644 --- a/core/src/services/hdfs/writer.rs +++ b/core/src/services/hdfs/writer.rs @@ -36,7 +36,7 @@ impl<F> HdfsWriter<F> { #[async_trait] impl oio::Write for HdfsWriter<hdrs::AsyncFile> { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.f.write(bs.chunk()).await.map_err(parse_io_error) } @@ -55,7 +55,7 @@ impl oio::Write for HdfsWriter<hdrs::AsyncFile> { } impl oio::BlockingWrite for HdfsWriter<hdrs::File> { - fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { self.f.write(bs.chunk()).map_err(parse_io_error) } diff --git a/core/src/services/ipmfs/writer.rs b/core/src/services/ipmfs/writer.rs index 61c789f1a..188b7b8ad 100644 --- a/core/src/services/ipmfs/writer.rs +++ b/core/src/services/ipmfs/writer.rs @@ -37,7 +37,7 @@ impl IpmfsWriter { #[async_trait] impl oio::Write for IpmfsWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); let resp = self .backend diff --git a/core/src/services/obs/writer.rs b/core/src/services/obs/writer.rs index e37c51a45..a50b6580d 100644 --- a/core/src/services/obs/writer.rs +++ b/core/src/services/obs/writer.rs @@ -51,7 +51,7 @@ impl ObsWriter { #[async_trait] impl oio::OneShotWrite for ObsWriter { - async fn write_once(&self, bs: &dyn Buf) -> Result<()> { + async fn write_once(&self, bs: &dyn oio::Buf) -> Result<()> { let size = bs.remaining(); let mut req = self.core.obs_put_object_request( &self.path, diff --git a/core/src/services/onedrive/writer.rs b/core/src/services/onedrive/writer.rs index 49337718a..227f5299c 100644 --- a/core/src/services/onedrive/writer.rs +++ b/core/src/services/onedrive/writer.rs @@ -45,7 +45,7 @@ impl OneDriveWriter { #[async_trait] impl oio::Write for OneDriveWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); let bs = bs.copy_to_bytes(size); diff --git a/core/src/services/oss/writer.rs b/core/src/services/oss/writer.rs index 95935ba96..327d14799 100644 --- a/core/src/services/oss/writer.rs +++ b/core/src/services/oss/writer.rs @@ -50,7 +50,7 @@ impl OssWriter { #[async_trait] impl oio::OneShotWrite for OssWriter { - async fn write_once(&self, bs: &dyn Buf) -> Result<()> { + async fn write_once(&self, bs: &dyn oio::Buf) -> Result<()> { let size = bs.remaining(); let mut req = self.core.oss_put_object_request( &self.path, diff --git a/core/src/services/s3/writer.rs b/core/src/services/s3/writer.rs index 4b8df2246..1fbf2d72f 100644 --- a/core/src/services/s3/writer.rs +++ b/core/src/services/s3/writer.rs @@ -47,7 +47,7 @@ impl S3Writer { #[async_trait] impl oio::OneShotWrite for S3Writer { - async fn write_once(&self, bs: &dyn Buf) -> Result<()> { + async fn write_once(&self, bs: &dyn oio::Buf) -> Result<()> { let size = bs.remaining(); let mut req = self.core.s3_put_object_request( diff --git a/core/src/services/sftp/writer.rs b/core/src/services/sftp/writer.rs index eeb887624..05b5f3b61 100644 --- a/core/src/services/sftp/writer.rs +++ b/core/src/services/sftp/writer.rs @@ -33,7 +33,7 @@ impl SftpWriter { #[async_trait] impl oio::Write for SftpWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = self.file.write(bs.chunk()).await?; Ok(size) diff --git a/core/src/services/supabase/writer.rs b/core/src/services/supabase/writer.rs index 6d592512f..dfcbf8a1f 100644 --- a/core/src/services/supabase/writer.rs +++ b/core/src/services/supabase/writer.rs @@ -67,7 +67,7 @@ impl SupabaseWriter { #[async_trait] impl oio::Write for SupabaseWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); self.upload(bs.copy_to_bytes(size)).await?; Ok(size) diff --git a/core/src/services/vercel_artifacts/writer.rs b/core/src/services/vercel_artifacts/writer.rs index 5db1d1a14..8bd4227c1 100644 --- a/core/src/services/vercel_artifacts/writer.rs +++ b/core/src/services/vercel_artifacts/writer.rs @@ -38,7 +38,7 @@ impl VercelArtifactsWriter { #[async_trait] impl oio::Write for VercelArtifactsWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); let resp = self diff --git a/core/src/services/wasabi/writer.rs b/core/src/services/wasabi/writer.rs index 6af3d1a23..48cbc0c51 100644 --- a/core/src/services/wasabi/writer.rs +++ b/core/src/services/wasabi/writer.rs @@ -40,7 +40,7 @@ impl WasabiWriter { #[async_trait] impl oio::Write for WasabiWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); let resp = self diff --git a/core/src/services/webdav/writer.rs b/core/src/services/webdav/writer.rs index ef875a46e..c38a22258 100644 --- a/core/src/services/webdav/writer.rs +++ b/core/src/services/webdav/writer.rs @@ -61,7 +61,7 @@ impl WebdavWriter { #[async_trait] impl oio::Write for WebdavWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); self.write_oneshot(size as u64, AsyncBody::Bytes(bs.copy_to_bytes(size))) diff --git a/core/src/services/webhdfs/writer.rs b/core/src/services/webhdfs/writer.rs index 399914e99..6123faa38 100644 --- a/core/src/services/webhdfs/writer.rs +++ b/core/src/services/webhdfs/writer.rs @@ -38,7 +38,7 @@ impl WebhdfsWriter { #[async_trait] impl oio::Write for WebhdfsWriter { - async fn write(&mut self, bs: &dyn Buf) -> Result<usize> { + async fn write(&mut self, bs: &dyn oio::Buf) -> Result<usize> { let size = bs.remaining(); let req = self diff --git a/core/src/types/mod.rs b/core/src/types/mod.rs index dff3ea2cb..0f75fa50c 100644 --- a/core/src/types/mod.rs +++ b/core/src/types/mod.rs @@ -58,6 +58,3 @@ pub use scheme::Scheme; mod capability; pub use capability::Capability; - -mod buf; -pub use buf::Buf; diff --git a/core/src/types/operator/blocking_operator.rs b/core/src/types/operator/blocking_operator.rs index c17054b67..ce2e068f2 100644 --- a/core/src/types/operator/blocking_operator.rs +++ b/core/src/types/operator/blocking_operator.rs @@ -20,6 +20,7 @@ use std::io::Read; use bytes::Bytes; use super::operator_functions::*; +use crate::raw::oio::Buf; use crate::raw::*; use crate::*; diff --git a/core/src/types/writer.rs b/core/src/types/writer.rs index 015595e0e..e1ce07640 100644 --- a/core/src/types/writer.rs +++ b/core/src/types/writer.rs @@ -28,6 +28,7 @@ use futures::AsyncWrite; use futures::FutureExt; use futures::TryStreamExt; +use crate::raw::oio::Buf; use crate::raw::oio::Write; use crate::raw::*; use crate::*;
