This is an automated email from the ASF dual-hosted git repository.
xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opendal.git
The following commit(s) were added to refs/heads/main by this push:
new dd666ba380 ci: Fix foundationdb not setup for unit test (#4370)
dd666ba380 is described below
commit dd666ba380aaa878229bdef1c18b5e54b78b3606
Author: Xuanwo <[email protected]>
AuthorDate: Fri Mar 15 19:00:01 2024 +0800
ci: Fix foundationdb not setup for unit test (#4370)
* fix ci ocre
Signed-off-by: Xuanwo <[email protected]>
* Fix icloud test
Signed-off-by: Xuanwo <[email protected]>
* Fix all unit tests
Signed-off-by: Xuanwo <[email protected]>
* Fix doc tests
Signed-off-by: Xuanwo <[email protected]>
* Fix ci
Signed-off-by: Xuanwo <[email protected]>
* Fix ci
Signed-off-by: Xuanwo <[email protected]>
---------
Signed-off-by: Xuanwo <[email protected]>
---
.github/actions/setup/action.yaml | 2 +-
.github/workflows/ci_core.yml | 11 ++-
bin/ofs/Cargo.lock | 58 ++---------
bin/oli/Cargo.lock | 10 +-
bindings/c/include/opendal.h | 6 +-
core/Cargo.lock | 4 +
core/src/layers/async_backtrace.rs | 4 +-
core/src/layers/await_tree.rs | 2 +-
core/src/layers/blocking.rs | 6 +-
core/src/layers/chaos.rs | 2 +-
core/src/layers/concurrent_limit.rs | 2 +-
core/src/layers/dtrace.rs | 3 +-
core/src/layers/logging.rs | 2 +-
core/src/layers/madsim.rs | 2 +-
core/src/layers/metrics.rs | 2 +-
core/src/layers/minitrace.rs | 6 +-
core/src/layers/oteltrace.rs | 2 +-
core/src/layers/prometheus.rs | 2 +-
core/src/layers/prometheus_client.rs | 2 +-
core/src/layers/retry.rs | 8 +-
core/src/layers/throttle.rs | 3 +-
core/src/layers/timeout.rs | 2 +-
core/src/layers/tracing.rs | 6 +-
core/src/services/alluxio/docs.md | 2 +-
core/src/services/atomicserver/docs.md | 2 +-
core/src/services/azblob/docs.md | 2 +-
core/src/services/azdls/docs.md | 2 +-
core/src/services/azfile/docs.md | 2 +-
core/src/services/b2/docs.md | 6 +-
core/src/services/cacache/docs.md | 2 +-
core/src/services/chainsafe/docs.md | 2 +-
core/src/services/cos/docs.md | 2 +-
core/src/services/d1/docs.md | 2 +-
core/src/services/dbfs/docs.md | 2 +-
core/src/services/dropbox/docs.md | 2 +-
core/src/services/etcd/docs.md | 2 +-
core/src/services/foundationdb/docs.md | 2 +-
core/src/services/fs/docs.md | 2 +-
core/src/services/ftp/docs.md | 2 +-
core/src/services/gcs/docs.md | 4 +-
core/src/services/gdrive/docs.md | 2 +-
core/src/services/github/docs.md | 4 +-
core/src/services/gridfs/docs.md | 2 +-
core/src/services/hdfs/backend.rs | 2 +-
core/src/services/hdfs/docs.md | 4 +-
core/src/services/http/docs.md | 2 +-
core/src/services/huggingface/docs.md | 2 +-
core/src/services/icloud/core.rs | 7 +-
core/src/services/icloud/docs.md | 6 +-
core/src/services/ipfs/docs.md | 2 +-
core/src/services/ipfs/ipld.rs | 2 +-
core/src/services/koofr/docs.md | 2 +-
core/src/services/libsql/docs.md | 2 +-
core/src/services/memcached/docs.md | 4 +-
core/src/services/memory/docs.md | 2 +-
core/src/services/moka/docs.md | 2 +-
core/src/services/mongodb/docs.md | 2 +-
core/src/services/mysql/docs.md | 2 +-
core/src/services/obs/docs.md | 4 +-
core/src/services/onedrive/docs.md | 2 +-
core/src/services/onedrive/graph_model.rs | 2 +-
core/src/services/oss/docs.md | 4 +-
core/src/services/pcloud/docs.md | 2 +-
core/src/services/persy/docs.md | 2 +-
core/src/services/postgresql/docs.md | 2 +-
core/src/services/redb/docs.md | 2 +-
core/src/services/redis/docs.md | 2 +-
core/src/services/rocksdb/docs.md | 2 +-
core/src/services/s3/docs.md | 10 +-
core/src/services/seafile/docs.md | 2 +-
core/src/services/sftp/docs.md | 2 +-
core/src/services/sled/docs.md | 2 +-
core/src/services/sqlite/docs.md | 2 +-
core/src/services/supabase/docs.md | 4 +-
core/src/services/swift/docs.md | 2 +-
core/src/services/tikv/docs.md | 4 +-
core/src/services/upyun/docs.md | 2 +-
core/src/services/vercel_blob/docs.md | 2 +-
core/src/services/vercel_blob/error.rs | 4 +-
core/src/services/webdav/docs.md | 4 +-
core/src/services/webhdfs/docs.md | 2 +-
core/src/services/yandex_disk/docs.md | 2 +-
core/src/types/entry.rs | 3 -
core/src/types/error.rs | 1 -
core/src/types/operator/blocking_operator.rs | 19 ++--
core/src/types/operator/builder.rs | 18 ++--
core/src/types/operator/operator.rs | 143 ++++++++-------------------
core/src/types/scheme.rs | 2 +-
core/src/types/writer.rs | 6 +-
89 files changed, 198 insertions(+), 300 deletions(-)
diff --git a/.github/actions/setup/action.yaml
b/.github/actions/setup/action.yaml
index 33d6ff1af5..181e65f8b1 100644
--- a/.github/actions/setup/action.yaml
+++ b/.github/actions/setup/action.yaml
@@ -31,7 +31,7 @@ inputs:
github-token:
description: "Github Token"
default: ""
-
+
runs:
using: "composite"
steps:
diff --git a/.github/workflows/ci_core.yml b/.github/workflows/ci_core.yml
index 55535b5d19..6ae06d1ad1 100644
--- a/.github/workflows/ci_core.yml
+++ b/.github/workflows/ci_core.yml
@@ -26,7 +26,7 @@ on:
- main
paths:
- "core/**"
- - ".github/workflows/core.yml"
+ - ".github/workflows/ci_core.yml"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
@@ -255,10 +255,15 @@ jobs:
with:
need-protoc: true
need-rocksdb: true
+ need-foundationdb: true
+ need-nextest: true
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Test
working-directory: core
- run: cargo test --no-fail-fast --all-features
+ run: |
+ cargo nextest run --no-fail-fast --all-features
+ cargo test --doc --all-features
env:
- LD_LIBRARY_PATH: ${{ env.JAVA_HOME }}/lib/server:${{
env.LD_LIBRARY_PATH }}
+ # Add rocksdb and java lib path to LD_LIBRARY_PATH
+ LD_LIBRARY_PATH: /tmp/rocksdb/lib:${{ env.JAVA_HOME
}}/lib/server:${{ env.LD_LIBRARY_PATH }}
diff --git a/bin/ofs/Cargo.lock b/bin/ofs/Cargo.lock
index aefd3cfc1d..fe9aa95626 100644
--- a/bin/ofs/Cargo.lock
+++ b/bin/ofs/Cargo.lock
@@ -950,12 +950,6 @@ dependencies = [
"uuid",
]
-[[package]]
-name = "openssl-probe"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
-
[[package]]
name = "ordered-multimap"
version = "0.7.1"
@@ -1149,7 +1143,6 @@ dependencies = [
"percent-encoding",
"pin-project-lite",
"rustls",
- "rustls-native-certs",
"rustls-pemfile",
"serde",
"serde_json",
@@ -1165,6 +1158,7 @@ dependencies = [
"wasm-bindgen-futures",
"wasm-streams",
"web-sys",
+ "webpki-roots",
"winreg",
]
@@ -1223,18 +1217,6 @@ dependencies = [
"sct",
]
-[[package]]
-name = "rustls-native-certs"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
-dependencies = [
- "openssl-probe",
- "rustls-pemfile",
- "schannel",
- "security-framework",
-]
-
[[package]]
name = "rustls-pemfile"
version = "1.0.4"
@@ -1260,15 +1242,6 @@ version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
-[[package]]
-name = "schannel"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
-dependencies = [
- "windows-sys 0.52.0",
-]
-
[[package]]
name = "sct"
version = "0.7.1"
@@ -1279,29 +1252,6 @@ dependencies = [
"untrusted",
]
-[[package]]
-name = "security-framework"
-version = "2.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
- "core-foundation-sys",
- "libc",
- "security-framework-sys",
-]
-
-[[package]]
-name = "security-framework-sys"
-version = "2.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
[[package]]
name = "serde"
version = "1.0.196"
@@ -1740,6 +1690,12 @@ dependencies = [
"wasm-bindgen",
]
+[[package]]
+name = "webpki-roots"
+version = "0.25.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
+
[[package]]
name = "which"
version = "4.4.2"
diff --git a/bin/oli/Cargo.lock b/bin/oli/Cargo.lock
index f28a894261..843d9d7050 100644
--- a/bin/oli/Cargo.lock
+++ b/bin/oli/Cargo.lock
@@ -303,7 +303,7 @@ dependencies = [
"futures-io",
"rustls",
"rustls-pemfile",
- "webpki-roots",
+ "webpki-roots 0.22.6",
]
[[package]]
@@ -2575,7 +2575,6 @@ dependencies = [
"percent-encoding",
"pin-project-lite",
"rustls",
- "rustls-native-certs",
"rustls-pemfile",
"serde",
"serde_json",
@@ -2591,6 +2590,7 @@ dependencies = [
"wasm-bindgen-futures",
"wasm-streams",
"web-sys",
+ "webpki-roots 0.25.4",
"winreg",
]
@@ -3683,6 +3683,12 @@ dependencies = [
"webpki",
]
+[[package]]
+name = "webpki-roots"
+version = "0.25.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
+
[[package]]
name = "which"
version = "4.4.2"
diff --git a/bindings/c/include/opendal.h b/bindings/c/include/opendal.h
index 8d76a5ceab..a7298caed5 100644
--- a/bindings/c/include/opendal.h
+++ b/bindings/c/include/opendal.h
@@ -95,7 +95,7 @@ typedef struct BlockingLister BlockingLister;
*
* Read more backend init examples in [`services`]
*
- * ```rust
+ * ```rust,no_run
* # use anyhow::Result;
* use opendal::services::Fs;
* use opendal::BlockingOperator;
@@ -126,8 +126,7 @@ typedef struct BlockingLister BlockingLister;
* use opendal::BlockingOperator;
* use opendal::Operator;
*
- * #[tokio::main]
- * async fn main() -> Result<()> {
+ * async fn test() -> Result<()> {
* // Create fs backend builder.
* let mut builder = S3::default();
* builder.bucket("test");
@@ -167,7 +166,6 @@ typedef struct BlockingReader BlockingReader;
* use opendal::EntryMode;
* use opendal::Metakey;
* use opendal::Operator;
- * # #[tokio::main]
* # async fn test(op: Operator) -> Result<()> {
* let mut entries = op
* .list_with("dir/")
diff --git a/core/Cargo.lock b/core/Cargo.lock
index 91a83648fb..dc0c364c59 100644
--- a/core/Cargo.lock
+++ b/core/Cargo.lock
@@ -5333,6 +5333,7 @@ dependencies = [
"http 0.2.11",
"http-body",
"hyper",
+ "hyper-rustls",
"ipnet",
"js-sys",
"log",
@@ -5341,12 +5342,14 @@ dependencies = [
"percent-encoding",
"pin-project-lite",
"rustls",
+ "rustls-pemfile",
"serde",
"serde_json",
"serde_urlencoded",
"sync_wrapper",
"system-configuration",
"tokio",
+ "tokio-rustls",
"tokio-util",
"tower-service",
"url",
@@ -5354,6 +5357,7 @@ dependencies = [
"wasm-bindgen-futures",
"wasm-streams",
"web-sys",
+ "webpki-roots 0.25.4",
"winreg",
]
diff --git a/core/src/layers/async_backtrace.rs
b/core/src/layers/async_backtrace.rs
index 46bc3afa4b..4cda1e0d83 100644
--- a/core/src/layers/async_backtrace.rs
+++ b/core/src/layers/async_backtrace.rs
@@ -29,7 +29,7 @@ use crate::*;
///
/// # Examples
///
-/// ```
+/// ```no_run
/// use anyhow::Result;
/// use opendal::layers::AsyncBacktraceLayer;
/// use opendal::services;
@@ -38,7 +38,7 @@ use crate::*;
///
/// let _ = Operator::new(services::Memory::default())
/// .expect("must init")
-/// .layer(AsyncBacktraceLayer::new())
+/// .layer(AsyncBacktraceLayer::default())
/// .finish();
/// ```
diff --git a/core/src/layers/await_tree.rs b/core/src/layers/await_tree.rs
index bd82bf2363..eb7651f88f 100644
--- a/core/src/layers/await_tree.rs
+++ b/core/src/layers/await_tree.rs
@@ -31,7 +31,7 @@ use crate::*;
///
/// # Examples
///
-/// ```
+/// ```no_run
/// use anyhow::Result;
/// use opendal::layers::AwaitTreeLayer;
/// use opendal::services;
diff --git a/core/src/layers/blocking.rs b/core/src/layers/blocking.rs
index e44eda903b..bc6ff05482 100644
--- a/core/src/layers/blocking.rs
+++ b/core/src/layers/blocking.rs
@@ -36,7 +36,7 @@ use crate::*;
///
/// BlockingLayer will use current async context's runtime to handle the async
calls.
///
-/// ```rust
+/// ```rust,no_run
/// # use anyhow::Result;
/// use opendal::layers::BlockingLayer;
/// use opendal::services::S3;
@@ -66,7 +66,7 @@ use crate::*;
/// first. You can use [`Handle::try_current`] first to get the handle and
than call [`Handle::enter`].
/// This often happens in the case that async function calls blocking function.
///
-/// ```rust
+/// ```rust,no_run
/// use opendal::layers::BlockingLayer;
/// use opendal::services::S3;
/// use opendal::BlockingOperator;
@@ -103,7 +103,7 @@ use crate::*;
/// > The following code uses a global statically created runtime as an
example, please manage the
/// runtime on demand.
///
-/// ```rust
+/// ```rust,no_run
/// use once_cell::sync::Lazy;
/// use opendal::layers::BlockingLayer;
/// use opendal::services::S3;
diff --git a/core/src/layers/chaos.rs b/core/src/layers/chaos.rs
index 55a28a554a..69c16e8adf 100644
--- a/core/src/layers/chaos.rs
+++ b/core/src/layers/chaos.rs
@@ -45,7 +45,7 @@ use crate::*;
///
/// # Examples
///
-/// ```
+/// ```no_run
/// use anyhow::Result;
/// use opendal::layers::ChaosLayer;
/// use opendal::services;
diff --git a/core/src/layers/concurrent_limit.rs
b/core/src/layers/concurrent_limit.rs
index 5fd6dd87ba..992042ef0a 100644
--- a/core/src/layers/concurrent_limit.rs
+++ b/core/src/layers/concurrent_limit.rs
@@ -37,7 +37,7 @@ use crate::*;
///
/// # Examples
///
-/// ```
+/// ```no_run
/// use anyhow::Result;
/// use opendal::layers::ConcurrentLimitLayer;
/// use opendal::services;
diff --git a/core/src/layers/dtrace.rs b/core/src/layers/dtrace.rs
index 11b62dc1c4..295443cd49 100644
--- a/core/src/layers/dtrace.rs
+++ b/core/src/layers/dtrace.rs
@@ -113,7 +113,8 @@ use crate::*;
/// 6. blocking_writer_close_error, arguments: path
///
/// Example:
-/// ```
+///
+/// ```no_build
/// use anyhow::Result;
/// use opendal::layers::DTraceLayer;
/// use opendal::services::Fs;
diff --git a/core/src/layers/logging.rs b/core/src/layers/logging.rs
index 516dd9ab7e..2f9265dbae 100644
--- a/core/src/layers/logging.rs
+++ b/core/src/layers/logging.rs
@@ -54,7 +54,7 @@ use crate::*;
///
/// # Examples
///
-/// ```
+/// ```no_run
/// use anyhow::Result;
/// use opendal::layers::LoggingLayer;
/// use opendal::services;
diff --git a/core/src/layers/madsim.rs b/core/src/layers/madsim.rs
index 7573fd27e6..4af7c1d84d 100644
--- a/core/src/layers/madsim.rs
+++ b/core/src/layers/madsim.rs
@@ -53,7 +53,7 @@ use crate::*;
///
/// # Examples
///
-/// ```
+/// ```no_build
/// use std::time::Duration;
///
/// use madsim::net::NetSim;
diff --git a/core/src/layers/metrics.rs b/core/src/layers/metrics.rs
index dc531cb10d..a4abc41bdf 100644
--- a/core/src/layers/metrics.rs
+++ b/core/src/layers/metrics.rs
@@ -86,7 +86,7 @@ static LABEL_ERROR: &str = "error";
///
/// # Examples
///
-/// ```
+/// ```no_run
/// use anyhow::Result;
/// use opendal::layers::MetricsLayer;
/// use opendal::services;
diff --git a/core/src/layers/minitrace.rs b/core/src/layers/minitrace.rs
index 60ee95f327..8dc720fe57 100644
--- a/core/src/layers/minitrace.rs
+++ b/core/src/layers/minitrace.rs
@@ -37,7 +37,7 @@ use crate::*;
///
/// ## Basic Setup
///
-/// ```
+/// ```no_build
/// use anyhow::Result;
/// use opendal::layers::MinitraceLayer;
/// use opendal::services;
@@ -51,7 +51,7 @@ use crate::*;
///
/// ## Real usage
///
-/// ```no_run
+/// ```no_build
/// use std::error::Error;
///
/// use anyhow::Result;
@@ -102,7 +102,7 @@ use crate::*;
///
/// For example:
///
-/// ```no_run
+/// ```no_build
/// extern crate minitrace_jaeger;
///
/// use minitrace::collector::Config;
diff --git a/core/src/layers/oteltrace.rs b/core/src/layers/oteltrace.rs
index 727a0bc645..138811bb6f 100644
--- a/core/src/layers/oteltrace.rs
+++ b/core/src/layers/oteltrace.rs
@@ -39,7 +39,7 @@ use crate::*;
///
/// ## Basic Setup
///
-/// ```
+/// ```no_build
/// use anyhow::Result;
/// use opendal::layers::OtelTraceLayer;
/// use opendal::services;
diff --git a/core/src/layers/prometheus.rs b/core/src/layers/prometheus.rs
index 6b85844a2d..b04f8ddb63 100644
--- a/core/src/layers/prometheus.rs
+++ b/core/src/layers/prometheus.rs
@@ -60,7 +60,7 @@ use crate::*;
///
/// # Examples
///
-/// ```
+/// ```no_build
/// use log::debug;
/// use log::info;
/// use opendal::layers::PrometheusLayer;
diff --git a/core/src/layers/prometheus_client.rs
b/core/src/layers/prometheus_client.rs
index 1276f5c695..e29050571c 100644
--- a/core/src/layers/prometheus_client.rs
+++ b/core/src/layers/prometheus_client.rs
@@ -42,7 +42,7 @@ use crate::*;
///
/// # Examples
///
-/// ```
+/// ```no_build
/// use log::debug;
/// use log::info;
/// use opendal::layers::PrometheusClientLayer;
diff --git a/core/src/layers/retry.rs b/core/src/layers/retry.rs
index c73b11696a..d8bfbbb26d 100644
--- a/core/src/layers/retry.rs
+++ b/core/src/layers/retry.rs
@@ -51,7 +51,7 @@ use crate::*;
///
/// # Examples
///
-/// ```
+/// ```no_run
/// use anyhow::Result;
/// use opendal::layers::RetryLayer;
/// use opendal::services;
@@ -69,7 +69,7 @@ use crate::*;
/// RetryLayer accepts [`RetryInterceptor`] to allow users to customize
/// their own retry interceptor logic.
///
-/// ```
+/// ```no_run
/// use std::time::Duration;
///
/// use anyhow::Result;
@@ -120,7 +120,7 @@ impl RetryLayer {
/// Create a new retry layer.
/// # Examples
///
- /// ```
+ /// ```no_run
/// use anyhow::Result;
/// use opendal::layers::RetryLayer;
/// use opendal::services;
@@ -137,7 +137,7 @@ impl RetryLayer {
/// Set the retry interceptor as new notify.
///
- /// ```
+ /// ```no_run
/// use std::time::Duration;
///
/// use anyhow::Result;
diff --git a/core/src/layers/throttle.rs b/core/src/layers/throttle.rs
index 05a67f8ab9..11f7e9913f 100644
--- a/core/src/layers/throttle.rs
+++ b/core/src/layers/throttle.rs
@@ -53,7 +53,8 @@ use crate::*;
/// # Examples
///
/// This example limits bandwidth to 10 KiB/s and burst size to 10 MiB.
-/// ```
+///
+/// ```no_build
/// use anyhow::Result;
/// use opendal::layers::ThrottleLayer;
/// use opendal::services;
diff --git a/core/src/layers/timeout.rs b/core/src/layers/timeout.rs
index 34ba69df0a..1679361564 100644
--- a/core/src/layers/timeout.rs
+++ b/core/src/layers/timeout.rs
@@ -54,7 +54,7 @@ use crate::*;
/// The following examples will create a timeout layer with 10 seconds timeout
for all non-io
/// operations, 3 seconds timeout for all io operations.
///
-/// ```
+/// ```no_run
/// use std::time::Duration;
///
/// use anyhow::Result;
diff --git a/core/src/layers/tracing.rs b/core/src/layers/tracing.rs
index 6d9a8b2447..dcc0a79f4c 100644
--- a/core/src/layers/tracing.rs
+++ b/core/src/layers/tracing.rs
@@ -34,7 +34,7 @@ use crate::*;
///
/// ## Basic Setup
///
-/// ```
+/// ```no_build
/// use anyhow::Result;
/// use opendal::layers::TracingLayer;
/// use opendal::services;
@@ -48,7 +48,7 @@ use crate::*;
///
/// ## Real usage
///
-/// ```no_run
+/// ```no_build
/// use std::error::Error;
///
/// use anyhow::Result;
@@ -106,7 +106,7 @@ use crate::*;
///
/// For example:
///
-/// ```ignore
+/// ```no_build
/// extern crate tracing;
///
/// let my_subscriber = FooSubscriber::new();
diff --git a/core/src/services/alluxio/docs.md
b/core/src/services/alluxio/docs.md
index 33775c2264..47a31a4870 100644
--- a/core/src/services/alluxio/docs.md
+++ b/core/src/services/alluxio/docs.md
@@ -25,7 +25,7 @@ You can refer to [`AlluxioBuilder`]'s docs for more
information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Alluxio;
use opendal::Operator;
diff --git a/core/src/services/atomicserver/docs.md
b/core/src/services/atomicserver/docs.md
index 9ef3ece816..9c4511910c 100644
--- a/core/src/services/atomicserver/docs.md
+++ b/core/src/services/atomicserver/docs.md
@@ -29,7 +29,7 @@ You can refer to [`AtomicserverBuilder`]'s docs for more
information.
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Atomicserver;
use opendal::Operator;
diff --git a/core/src/services/azblob/docs.md b/core/src/services/azblob/docs.md
index e02eeabe7f..19578b290f 100644
--- a/core/src/services/azblob/docs.md
+++ b/core/src/services/azblob/docs.md
@@ -40,7 +40,7 @@ az storage container create --name test --connection-string
"DefaultEndpointsPro
### Via Builder
-```rust
+```rust,no_run
use std::sync::Arc;
use anyhow::Result;
diff --git a/core/src/services/azdls/docs.md b/core/src/services/azdls/docs.md
index 57a289d1c5..9cd4acc8fe 100644
--- a/core/src/services/azdls/docs.md
+++ b/core/src/services/azdls/docs.md
@@ -36,7 +36,7 @@ Refer to public API docs for more information.
### Via Builder
-```rust
+```rust,no_run
use std::sync::Arc;
use anyhow::Result;
diff --git a/core/src/services/azfile/docs.md b/core/src/services/azfile/docs.md
index 8bb7c4d76d..fe596ae870 100644
--- a/core/src/services/azfile/docs.md
+++ b/core/src/services/azfile/docs.md
@@ -28,7 +28,7 @@ Refer to public API docs for more information.
### Via Builder
-```rust
+```rust,no_run
use std::sync::Arc;
use anyhow::Result;
diff --git a/core/src/services/b2/docs.md b/core/src/services/b2/docs.md
index 577bc82ffa..9741f29751 100644
--- a/core/src/services/b2/docs.md
+++ b/core/src/services/b2/docs.md
@@ -28,7 +28,7 @@ You can refer to [`B2Builder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::B2;
use opendal::Operator;
@@ -41,10 +41,10 @@ async fn main() -> Result<()> {
// set the storage bucket for OpenDAL
builder.root("/");
// set the key_id for OpenDAL
- builder.key_id("xxxxxxxxxx");
+ builder.application_key_id("xxxxxxxxxx");
// set the key_id for OpenDAL
builder.application_key("xxxxxxxxxx");
- // set the bucket name for OpenDAL
+ // set the bucket name for OpenDAL
builder.bucket("opendal");
// set the bucket_id for OpenDAL
builder.bucket_id("xxxxxxxxxxxxx");
diff --git a/core/src/services/cacache/docs.md
b/core/src/services/cacache/docs.md
index b8d3e4df17..10024f1c48 100644
--- a/core/src/services/cacache/docs.md
+++ b/core/src/services/cacache/docs.md
@@ -24,7 +24,7 @@ You can refer to [`CacacheBuilder`]'s docs for more
information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Cacache;
use opendal::Operator;
diff --git a/core/src/services/chainsafe/docs.md
b/core/src/services/chainsafe/docs.md
index c9c5157c38..c5c68590f3 100644
--- a/core/src/services/chainsafe/docs.md
+++ b/core/src/services/chainsafe/docs.md
@@ -26,7 +26,7 @@ You can refer to [`ChainsafeBuilder`]'s docs for more
information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Chainsafe;
use opendal::Operator;
diff --git a/core/src/services/cos/docs.md b/core/src/services/cos/docs.md
index 6d5ee73b15..bd365274b7 100644
--- a/core/src/services/cos/docs.md
+++ b/core/src/services/cos/docs.md
@@ -28,7 +28,7 @@ You can refer to [`CosBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Cos;
use opendal::Operator;
diff --git a/core/src/services/d1/docs.md b/core/src/services/d1/docs.md
index 12b79d2aae..112cc19d9d 100644
--- a/core/src/services/d1/docs.md
+++ b/core/src/services/d1/docs.md
@@ -28,7 +28,7 @@ This service can be used to:
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::D1;
use opendal::Operator;
diff --git a/core/src/services/dbfs/docs.md b/core/src/services/dbfs/docs.md
index 0853e6584f..82ef74d96f 100644
--- a/core/src/services/dbfs/docs.md
+++ b/core/src/services/dbfs/docs.md
@@ -28,7 +28,7 @@ Refer to [`DbfsBuilder`]'s public API docs for more
information.
### Via Builder
-```rust
+```rust,no_run
use std::sync::Arc;
use anyhow::Result;
diff --git a/core/src/services/dropbox/docs.md
b/core/src/services/dropbox/docs.md
index c84ac4615b..8a6bb9b65b 100644
--- a/core/src/services/dropbox/docs.md
+++ b/core/src/services/dropbox/docs.md
@@ -46,7 +46,7 @@ You can refer to [`DropboxBuilder`]'s docs for more
information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::raw::OpWrite;
use opendal::services::Dropbox;
diff --git a/core/src/services/etcd/docs.md b/core/src/services/etcd/docs.md
index 5a798998fa..208c17cbe1 100644
--- a/core/src/services/etcd/docs.md
+++ b/core/src/services/etcd/docs.md
@@ -30,7 +30,7 @@ You can refer to [`EtcdBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Etcd;
use opendal::Operator;
diff --git a/core/src/services/foundationdb/docs.md
b/core/src/services/foundationdb/docs.md
index f05488396d..e41eb715ca 100644
--- a/core/src/services/foundationdb/docs.md
+++ b/core/src/services/foundationdb/docs.md
@@ -27,7 +27,7 @@ You can refer to [`FoundationdbBuilder`]'s docs for more
information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Foundationdb;
use opendal::Operator;
diff --git a/core/src/services/fs/docs.md b/core/src/services/fs/docs.md
index 5547a17af2..c32283b5df 100644
--- a/core/src/services/fs/docs.md
+++ b/core/src/services/fs/docs.md
@@ -26,7 +26,7 @@ You can refer to [`FsBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use std::sync::Arc;
use anyhow::Result;
diff --git a/core/src/services/ftp/docs.md b/core/src/services/ftp/docs.md
index 4a69edb903..76d33c6e00 100644
--- a/core/src/services/ftp/docs.md
+++ b/core/src/services/ftp/docs.md
@@ -27,7 +27,7 @@ You can refer to [`FtpBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Ftp;
use opendal::Operator;
diff --git a/core/src/services/gcs/docs.md b/core/src/services/gcs/docs.md
index 3f6a1fbe6f..d18dc117e1 100644
--- a/core/src/services/gcs/docs.md
+++ b/core/src/services/gcs/docs.md
@@ -30,7 +30,7 @@ Refer to public API docs for more information.
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Gcs;
use opendal::Operator;
@@ -55,4 +55,4 @@ async fn main() -> Result<()> {
let op: Operator = Operator::new(builder)?.finish();
Ok(())
}
-```
\ No newline at end of file
+```
diff --git a/core/src/services/gdrive/docs.md b/core/src/services/gdrive/docs.md
index 9f56dc4d3b..851440b63b 100644
--- a/core/src/services/gdrive/docs.md
+++ b/core/src/services/gdrive/docs.md
@@ -49,7 +49,7 @@ You can refer to [`GdriveBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Gdrive;
use opendal::Operator;
diff --git a/core/src/services/github/docs.md b/core/src/services/github/docs.md
index c16245cfeb..e9840e6858 100644
--- a/core/src/services/github/docs.md
+++ b/core/src/services/github/docs.md
@@ -27,7 +27,7 @@ You can refer to [`GithubBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Github;
use opendal::Operator;
@@ -42,7 +42,7 @@ async fn main() -> Result<()> {
// set the access token for Github API
builder.token("your_access_token");
// set the owner for Github
- builder.owner("your_owner")
+ builder.owner("your_owner");
// set the repository for Github
builder.repo("your_repo");
diff --git a/core/src/services/gridfs/docs.md b/core/src/services/gridfs/docs.md
index b69a3392b1..043d5d5a8a 100644
--- a/core/src/services/gridfs/docs.md
+++ b/core/src/services/gridfs/docs.md
@@ -26,7 +26,7 @@ This service can be used to:
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Gridfs;
use opendal::Operator;
diff --git a/core/src/services/hdfs/backend.rs
b/core/src/services/hdfs/backend.rs
index a03aa6a3de..b1eb2e57a5 100644
--- a/core/src/services/hdfs/backend.rs
+++ b/core/src/services/hdfs/backend.rs
@@ -34,7 +34,7 @@ use crate::raw::*;
use crate::*;
/// [Hadoop Distributed File System (HDFS™)](https://hadoop.apache.org/)
support.
-
+///
/// Config for Hdfs services support.
#[derive(Default, Deserialize, Clone)]
#[serde(default)]
diff --git a/core/src/services/hdfs/docs.md b/core/src/services/hdfs/docs.md
index 7e4d882112..cb9f5b5b47 100644
--- a/core/src/services/hdfs/docs.md
+++ b/core/src/services/hdfs/docs.md
@@ -83,7 +83,7 @@ export CLASSPATH=$HADOOP_CONF_DIR:$HADOOP_CLASSPATH:$CLASSPATH
```
4. Use the `cluster_name` specified in the `core-site.xml` file (located in
the HADOOP_CONF_DIR folder) to replace namenode:port.
-```rust
+```ignore
builder.name_node("hdfs://cluster_name");
```
@@ -109,7 +109,7 @@ Enabling the vendored feature ensures that hdrs includes
the necessary libhdfs.s
### Via Builder
-```rust
+```rust,no_run
use std::sync::Arc;
use anyhow::Result;
diff --git a/core/src/services/http/docs.md b/core/src/services/http/docs.md
index 0d173bb750..482b29c9d2 100644
--- a/core/src/services/http/docs.md
+++ b/core/src/services/http/docs.md
@@ -30,7 +30,7 @@ You can refer to [`HttpBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Http;
use opendal::Operator;
diff --git a/core/src/services/huggingface/docs.md
b/core/src/services/huggingface/docs.md
index e60b26d579..6ac2806928 100644
--- a/core/src/services/huggingface/docs.md
+++ b/core/src/services/huggingface/docs.md
@@ -33,7 +33,7 @@ Refer to [`HuggingfaceBuilder`]'s public API docs for more
information.
### Via Builder
-```rust
+```rust,no_run
use std::sync::Arc;
use anyhow::Result;
diff --git a/core/src/services/icloud/core.rs b/core/src/services/icloud/core.rs
index 77f747a1bf..f980065631 100644
--- a/core/src/services/icloud/core.rs
+++ b/core/src/services/icloud/core.rs
@@ -601,6 +601,7 @@ struct IcloudError {
}
#[derive(Default, Deserialize, Clone)]
+#[serde(rename_all = "camelCase")]
pub struct IcloudWebservicesResponse {
#[serde(default)]
pub hsa_challenge_required: bool,
@@ -616,16 +617,16 @@ pub struct Webservices {
}
#[derive(Deserialize, Default, Clone, Debug)]
+#[serde(rename_all = "camelCase")]
pub struct Drivews {
- #[serde(rename = "pcsRequired")]
pub pcs_required: bool,
pub status: String,
pub url: Option<String>,
}
#[derive(Deserialize, Default, Clone, Debug)]
+#[serde(rename_all = "camelCase")]
pub struct Docws {
- #[serde(rename = "pcsRequired")]
pub pcs_required: bool,
pub status: String,
pub url: Option<String>,
@@ -712,6 +713,7 @@ pub struct IcloudCreateFolder {
mod tests {
use super::IcloudRoot;
use super::IcloudWebservicesResponse;
+ use pretty_assertions::assert_eq;
#[test]
fn test_parse_icloud_drive_root_json() {
@@ -799,7 +801,6 @@ mod tests {
"etag": "w9",
"fileCount": 22,
"items": [
- {
{
"dateChanged": "2021-02-18T14:10:46Z",
"dateCreated": "2021-02-10T07:01:34Z",
diff --git a/core/src/services/icloud/docs.md b/core/src/services/icloud/docs.md
index ddf572f326..d3789f7ad2 100644
--- a/core/src/services/icloud/docs.md
+++ b/core/src/services/icloud/docs.md
@@ -46,7 +46,7 @@ You can refer to [`IcloudBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Icloud;
use opendal::Operator;
@@ -59,7 +59,7 @@ async fn main() -> Result<()> {
builder.password("<password>");
builder.trust_token("<trust_token>");
builder.ds_web_auth_token("<ds_web_auth_token>");
- builder.is_china_mainland("<is_china_mainland>");
+ builder.is_china_mainland(true);
Ok(())
-}
\ No newline at end of file
+}
diff --git a/core/src/services/ipfs/docs.md b/core/src/services/ipfs/docs.md
index 2e00d282c0..3c0ee925eb 100644
--- a/core/src/services/ipfs/docs.md
+++ b/core/src/services/ipfs/docs.md
@@ -25,7 +25,7 @@ You can refer to [`IpfsBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Ipfs;
use opendal::Operator;
diff --git a/core/src/services/ipfs/ipld.rs b/core/src/services/ipfs/ipld.rs
index a66213d9ce..f51a758a32 100644
--- a/core/src/services/ipfs/ipld.rs
+++ b/core/src/services/ipfs/ipld.rs
@@ -156,7 +156,7 @@ mod tests {
assert_eq!(data.links[0].name.as_ref().unwrap(), "normal_dir");
assert_eq!(data.links[0].tsize.unwrap(), 60);
- assert_eq!(data.links[1].name.as_ref().unwrap(), "normal_file.txt");
+ assert_eq!(data.links[1].name.as_ref().unwrap(), "normal_file");
assert_eq!(data.links[1].tsize.unwrap(), 262158);
}
}
diff --git a/core/src/services/koofr/docs.md b/core/src/services/koofr/docs.md
index e7bea550bf..dff9abbc1b 100644
--- a/core/src/services/koofr/docs.md
+++ b/core/src/services/koofr/docs.md
@@ -27,7 +27,7 @@ You can refer to [`KoofrBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Koofr;
use opendal::Operator;
diff --git a/core/src/services/libsql/docs.md b/core/src/services/libsql/docs.md
index 00d0408c12..a72ae79099 100644
--- a/core/src/services/libsql/docs.md
+++ b/core/src/services/libsql/docs.md
@@ -27,7 +27,7 @@ This service can be used to:
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Libsql;
use opendal::Operator;
diff --git a/core/src/services/memcached/docs.md
b/core/src/services/memcached/docs.md
index 844c7ee49b..9abaf97a51 100644
--- a/core/src/services/memcached/docs.md
+++ b/core/src/services/memcached/docs.md
@@ -28,7 +28,7 @@ You can refer to [`MemcachedBuilder`]'s docs for more
information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Memcached;
use opendal::Operator;
@@ -46,4 +46,4 @@ async fn main() -> Result<()> {
let op: Operator = Operator::new(builder)?.finish();
Ok(())
}
-```
\ No newline at end of file
+```
diff --git a/core/src/services/memory/docs.md b/core/src/services/memory/docs.md
index 326fea1797..328bf823a3 100644
--- a/core/src/services/memory/docs.md
+++ b/core/src/services/memory/docs.md
@@ -19,7 +19,7 @@ This service can be used to:
### Via Builder
-```rust
+```rust,no_run
use std::sync::Arc;
use anyhow::Result;
diff --git a/core/src/services/moka/docs.md b/core/src/services/moka/docs.md
index 9756938056..a2a24db030 100644
--- a/core/src/services/moka/docs.md
+++ b/core/src/services/moka/docs.md
@@ -28,7 +28,7 @@ You can refer to [`MokaBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Moka;
use opendal::Operator;
diff --git a/core/src/services/mongodb/docs.md
b/core/src/services/mongodb/docs.md
index 7ceda3c3a3..614cb5b1ae 100644
--- a/core/src/services/mongodb/docs.md
+++ b/core/src/services/mongodb/docs.md
@@ -27,7 +27,7 @@ This service can be used to:
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Mongodb;
use opendal::Operator;
diff --git a/core/src/services/mysql/docs.md b/core/src/services/mysql/docs.md
index 5b6c1d626e..e80054ce8e 100644
--- a/core/src/services/mysql/docs.md
+++ b/core/src/services/mysql/docs.md
@@ -26,7 +26,7 @@ This service can be used to:
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Mysql;
use opendal::Operator;
diff --git a/core/src/services/obs/docs.md b/core/src/services/obs/docs.md
index 89b06dcbee..157ecb8ebf 100644
--- a/core/src/services/obs/docs.md
+++ b/core/src/services/obs/docs.md
@@ -28,7 +28,7 @@ You can refer to [`ObsBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Obs;
use opendal::Operator;
@@ -53,4 +53,4 @@ async fn main() -> Result<()> {
Ok(())
}
-```
\ No newline at end of file
+```
diff --git a/core/src/services/onedrive/docs.md
b/core/src/services/onedrive/docs.md
index 0ee24a3202..7da9dda544 100644
--- a/core/src/services/onedrive/docs.md
+++ b/core/src/services/onedrive/docs.md
@@ -26,7 +26,7 @@ You can refer to [`OnedriveBuilder`]'s docs for more
information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Onedrive;
use opendal::Operator;
diff --git a/core/src/services/onedrive/graph_model.rs
b/core/src/services/onedrive/graph_model.rs
index e51c690106..1d45db6b94 100644
--- a/core/src/services/onedrive/graph_model.rs
+++ b/core/src/services/onedrive/graph_model.rs
@@ -209,7 +209,7 @@ fn test_parse_one_drive_json() {
"path": "/drive/root:"
},
"file": {
- "mimeType": "application/pdf",
+ "mimeType": "application/pdf"
},
"fileSystemInfo": {
"createdDateTime": "2018-12-30T05:32:55.46Z",
diff --git a/core/src/services/oss/docs.md b/core/src/services/oss/docs.md
index 131afaa3f7..4ce3a54d80 100644
--- a/core/src/services/oss/docs.md
+++ b/core/src/services/oss/docs.md
@@ -35,7 +35,7 @@ Refer to [`OssBuilder`]'s public API docs for more
information.
## Via Builder
-```rust
+```rust,no_run
use std::sync::Arc;
use anyhow::Result;
@@ -70,4 +70,4 @@ async fn main() -> Result<()> {
Ok(())
}
-```
\ No newline at end of file
+```
diff --git a/core/src/services/pcloud/docs.md b/core/src/services/pcloud/docs.md
index d2876f4c5b..d1c95638ec 100644
--- a/core/src/services/pcloud/docs.md
+++ b/core/src/services/pcloud/docs.md
@@ -27,7 +27,7 @@ You can refer to [`PcloudBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Pcloud;
use opendal::Operator;
diff --git a/core/src/services/persy/docs.md b/core/src/services/persy/docs.md
index d6c2cd4c33..dbebdc58ba 100644
--- a/core/src/services/persy/docs.md
+++ b/core/src/services/persy/docs.md
@@ -26,7 +26,7 @@ You can refer to [`PersyBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Persy;
use opendal::Operator;
diff --git a/core/src/services/postgresql/docs.md
b/core/src/services/postgresql/docs.md
index e3f044b830..831d1a6c7c 100644
--- a/core/src/services/postgresql/docs.md
+++ b/core/src/services/postgresql/docs.md
@@ -26,7 +26,7 @@ This service can be used to:
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Postgresql;
use opendal::Operator;
diff --git a/core/src/services/redb/docs.md b/core/src/services/redb/docs.md
index 767390a918..ac0701a958 100644
--- a/core/src/services/redb/docs.md
+++ b/core/src/services/redb/docs.md
@@ -24,7 +24,7 @@ You can refer to [`RedbBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Redb;
use opendal::Operator;
diff --git a/core/src/services/redis/docs.md b/core/src/services/redis/docs.md
index 631538f7e1..5c9ef6a494 100644
--- a/core/src/services/redis/docs.md
+++ b/core/src/services/redis/docs.md
@@ -29,7 +29,7 @@ You can refer to [`RedisBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Redis;
use opendal::Operator;
diff --git a/core/src/services/rocksdb/docs.md
b/core/src/services/rocksdb/docs.md
index 6043f5478f..440ce26434 100644
--- a/core/src/services/rocksdb/docs.md
+++ b/core/src/services/rocksdb/docs.md
@@ -39,7 +39,7 @@ You can refer to [`RocksdbBuilder`]'s docs for more
information.
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Rocksdb;
use opendal::Operator;
diff --git a/core/src/services/s3/docs.md b/core/src/services/s3/docs.md
index 065563b436..17b857105e 100644
--- a/core/src/services/s3/docs.md
+++ b/core/src/services/s3/docs.md
@@ -77,7 +77,7 @@ Reference: [Protecting data using server-side
encryption](https://docs.aws.amazo
### Basic Setup
-```rust
+```rust,no_run
use std::sync::Arc;
use anyhow::Result;
@@ -123,7 +123,7 @@ async fn main() -> Result<()> {
### S3 with SSE-C
-```rust
+```rust,no_run
use anyhow::Result;
use log::info;
use opendal::services::S3;
@@ -155,7 +155,7 @@ async fn main() -> Result<()> {
### S3 with SSE-KMS and aws managed kms key
-```rust
+```rust,no_run
use anyhow::Result;
use log::info;
use opendal::services::S3;
@@ -187,7 +187,7 @@ async fn main() -> Result<()> {
### S3 with SSE-KMS and customer managed kms key
-```rust
+```rust,no_run
use anyhow::Result;
use log::info;
use opendal::services::S3;
@@ -219,7 +219,7 @@ async fn main() -> Result<()> {
### S3 with SSE-S3
-```rust
+```rust,no_run
use anyhow::Result;
use log::info;
use opendal::services::S3;
diff --git a/core/src/services/seafile/docs.md
b/core/src/services/seafile/docs.md
index 4690405359..7a245b5ecc 100644
--- a/core/src/services/seafile/docs.md
+++ b/core/src/services/seafile/docs.md
@@ -28,7 +28,7 @@ You can refer to [`SeafileBuilder`]'s docs for more
information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Seafile;
use opendal::Operator;
diff --git a/core/src/services/sftp/docs.md b/core/src/services/sftp/docs.md
index d80bb0679f..2d50a0274a 100644
--- a/core/src/services/sftp/docs.md
+++ b/core/src/services/sftp/docs.md
@@ -32,7 +32,7 @@ You can refer to [`SftpBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Sftp;
use opendal::Operator;
diff --git a/core/src/services/sled/docs.md b/core/src/services/sled/docs.md
index 5f7bcff53c..466a87c0c2 100644
--- a/core/src/services/sled/docs.md
+++ b/core/src/services/sled/docs.md
@@ -24,7 +24,7 @@ You can refer to [`SledBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Sled;
use opendal::Operator;
diff --git a/core/src/services/sqlite/docs.md b/core/src/services/sqlite/docs.md
index e8dad81853..0d1ad2a78b 100644
--- a/core/src/services/sqlite/docs.md
+++ b/core/src/services/sqlite/docs.md
@@ -24,7 +24,7 @@ This service can be used to:
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Sqlite;
use opendal::Operator;
diff --git a/core/src/services/supabase/docs.md
b/core/src/services/supabase/docs.md
index 331ae7fd6b..1f3ddf86a5 100644
--- a/core/src/services/supabase/docs.md
+++ b/core/src/services/supabase/docs.md
@@ -29,7 +29,7 @@ can access all resources. Note that if you want to read
public resources, do not
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Supabase;
use opendal::Operator;
@@ -50,4 +50,4 @@ async fn main() -> Result<()> {
}
```
-
\ No newline at end of file
+
diff --git a/core/src/services/swift/docs.md b/core/src/services/swift/docs.md
index 2b1793a700..8f75b31dd4 100644
--- a/core/src/services/swift/docs.md
+++ b/core/src/services/swift/docs.md
@@ -26,7 +26,7 @@ Refer to [`SwiftBuilder`]'s public API docs for more
information.
### Via Builder
-```rust
+```rust,no_run
use std::sync::Arc;
use anyhow::Result;
diff --git a/core/src/services/tikv/docs.md b/core/src/services/tikv/docs.md
index 8de3dbeff4..2667428d72 100644
--- a/core/src/services/tikv/docs.md
+++ b/core/src/services/tikv/docs.md
@@ -28,7 +28,7 @@ You can refer to [`TiKVBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Tikv;
use opendal::Operator;
@@ -36,7 +36,7 @@ use opendal::Operator;
#[tokio::main]
async fn main() -> Result<()> {
let mut builder = Tikv::default();
- builder.endpoints("127.0.0.1:2379");
+ builder.endpoints(vec!["127.0.0.1:2379".to_string()]);
let op: Operator = Operator::new(builder)?.finish();
Ok(())
diff --git a/core/src/services/upyun/docs.md b/core/src/services/upyun/docs.md
index 72dd8478ea..b7b93b3cbb 100644
--- a/core/src/services/upyun/docs.md
+++ b/core/src/services/upyun/docs.md
@@ -27,7 +27,7 @@ You can refer to [`UpyunBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Upyun;
use opendal::Operator;
diff --git a/core/src/services/vercel_blob/docs.md
b/core/src/services/vercel_blob/docs.md
index f640e89187..9971fe32c5 100644
--- a/core/src/services/vercel_blob/docs.md
+++ b/core/src/services/vercel_blob/docs.md
@@ -25,7 +25,7 @@ You can refer to [`VercelBlobBuilder`]'s docs for more
information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::VercelBlob;
use opendal::Operator;
diff --git a/core/src/services/vercel_blob/error.rs
b/core/src/services/vercel_blob/error.rs
index 2d689983d5..2f8f5ef600 100644
--- a/core/src/services/vercel_blob/error.rs
+++ b/core/src/services/vercel_blob/error.rs
@@ -27,13 +27,13 @@ use crate::Result;
/// VercelBlobError is the error returned by VercelBlob service.
#[derive(Default, Debug, Deserialize)]
-#[serde(default, rename_all = "PascalCase")]
+#[serde(default)]
struct VercelBlobError {
error: VercelBlobErrorDetail,
}
#[derive(Default, Debug, Deserialize)]
-#[serde(default, rename_all = "PascalCase")]
+#[serde(default)]
struct VercelBlobErrorDetail {
code: String,
message: Option<String>,
diff --git a/core/src/services/webdav/docs.md b/core/src/services/webdav/docs.md
index ee84e9c14e..4523d11855 100644
--- a/core/src/services/webdav/docs.md
+++ b/core/src/services/webdav/docs.md
@@ -30,7 +30,7 @@ You can refer to [`WebdavBuilder`]'s docs for more information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::Webdav;
use opendal::Operator;
@@ -48,4 +48,4 @@ async fn main() -> Result<()> {
Ok(())
}
-```
\ No newline at end of file
+```
diff --git a/core/src/services/webhdfs/docs.md
b/core/src/services/webhdfs/docs.md
index c9e1610e07..e54324e110 100644
--- a/core/src/services/webhdfs/docs.md
+++ b/core/src/services/webhdfs/docs.md
@@ -58,7 +58,7 @@ Refer to [`Builder`]'s public API docs for more information.
### Via Builder
-```rust
+```rust,no_run
use std::sync::Arc;
use anyhow::Result;
diff --git a/core/src/services/yandex_disk/docs.md
b/core/src/services/yandex_disk/docs.md
index 5a55119714..d3ba328971 100644
--- a/core/src/services/yandex_disk/docs.md
+++ b/core/src/services/yandex_disk/docs.md
@@ -25,7 +25,7 @@ You can refer to [`YandexDiskBuilder`]'s docs for more
information
### Via Builder
-```rust
+```rust,no_run
use anyhow::Result;
use opendal::services::YandexDisk;
use opendal::Operator;
diff --git a/core/src/types/entry.rs b/core/src/types/entry.rs
index 86121293c0..5e699deaf2 100644
--- a/core/src/types/entry.rs
+++ b/core/src/types/entry.rs
@@ -33,7 +33,6 @@ use crate::*;
/// use opendal::EntryMode;
/// use opendal::Metakey;
/// use opendal::Operator;
-/// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut entries = op
/// .list_with("dir/")
@@ -116,7 +115,6 @@ impl Entry {
/// use opendal::EntryMode;
/// use opendal::Metakey;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut entries = op
/// .list_with("dir/")
@@ -165,7 +163,6 @@ impl Entry {
/// use opendal::EntryMode;
/// use opendal::Metakey;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut entries = op
/// .list_with("dir/")
diff --git a/core/src/types/error.rs b/core/src/types/error.rs
index cd1def506c..d505b4dbfd 100644
--- a/core/src/types/error.rs
+++ b/core/src/types/error.rs
@@ -24,7 +24,6 @@
//! # use opendal::EntryMode;
//! # use opendal::Operator;
//! use opendal::ErrorKind;
-//! # #[tokio::main]
//! # async fn test(op: Operator) -> Result<()> {
//! if let Err(e) = op.stat("test_file").await {
//! if e.kind() == ErrorKind::NotFound {
diff --git a/core/src/types/operator/blocking_operator.rs
b/core/src/types/operator/blocking_operator.rs
index c9b2ee7586..06576986d3 100644
--- a/core/src/types/operator/blocking_operator.rs
+++ b/core/src/types/operator/blocking_operator.rs
@@ -31,7 +31,7 @@ use crate::*;
///
/// Read more backend init examples in [`services`]
///
-/// ```rust
+/// ```rust,no_run
/// # use anyhow::Result;
/// use opendal::services::Fs;
/// use opendal::BlockingOperator;
@@ -64,8 +64,7 @@ use crate::*;
/// use opendal::BlockingOperator;
/// use opendal::Operator;
///
-/// #[tokio::main]
-/// async fn main() -> Result<()> {
+/// async fn test() -> Result<()> {
/// // Create fs backend builder.
/// let mut builder = S3::default();
/// builder.bucket("test");
@@ -315,7 +314,7 @@ impl BlockingOperator {
/// # Examples
///
/// ```no_run
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::BlockingOperator;
/// # use futures::TryStreamExt;
/// # fn test(op: BlockingOperator) -> Result<()> {
@@ -350,7 +349,7 @@ impl BlockingOperator {
/// # Examples
///
/// ```no_run
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::BlockingOperator;
/// #
/// # fn test(op: BlockingOperator) -> Result<()> {
@@ -423,7 +422,7 @@ impl BlockingOperator {
/// # Examples
///
/// ```no_run
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::BlockingOperator;
/// # use futures::TryStreamExt;
/// # fn test(op: BlockingOperator) -> Result<()> {
@@ -480,7 +479,7 @@ impl BlockingOperator {
/// # Examples
///
/// ```no_run
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::BlockingOperator;
/// # use futures::StreamExt;
/// # use futures::SinkExt;
@@ -507,7 +506,7 @@ impl BlockingOperator {
/// # Examples
///
/// ```
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::BlockingOperator;
///
/// # fn test(op: BlockingOperator) -> Result<()> {
@@ -564,7 +563,7 @@ impl BlockingOperator {
/// # Examples
///
/// ```
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::BlockingOperator;
///
/// # fn test(op: BlockingOperator) -> Result<()> {
@@ -672,7 +671,7 @@ impl BlockingOperator {
/// # Examples
///
/// ```no_run
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::BlockingOperator;
/// # use futures::StreamExt;
/// # use futures::SinkExt;
diff --git a/core/src/types/operator/builder.rs
b/core/src/types/operator/builder.rs
index 40f265ff88..390c9e4d47 100644
--- a/core/src/types/operator/builder.rs
+++ b/core/src/types/operator/builder.rs
@@ -30,8 +30,7 @@ use crate::*;
/// # use anyhow::Result;
/// use opendal::services::Fs;
/// use opendal::Operator;
-/// #[tokio::main]
-/// async fn main() -> Result<()> {
+/// async fn test() -> Result<()> {
/// // Create fs backend builder.
/// let mut builder = Fs::default();
/// // Set the root for fs, all operations will happen under this root.
@@ -59,8 +58,7 @@ impl Operator {
/// # use anyhow::Result;
/// use opendal::services::Fs;
/// use opendal::Operator;
- /// #[tokio::main]
- /// async fn main() -> Result<()> {
+ /// async fn test() -> Result<()> {
/// // Create fs backend builder.
/// let mut builder = Fs::default();
/// // Set the root for fs, all operations will happen under this root.
@@ -97,8 +95,7 @@ impl Operator {
///
/// use opendal::services::Fs;
/// use opendal::Operator;
- /// #[tokio::main]
- /// async fn main() -> Result<()> {
+ /// async fn test() -> Result<()> {
/// let map = HashMap::from([
/// // Set the root for fs, all operations will happen under this
root.
/// //
@@ -136,8 +133,7 @@ impl Operator {
///
/// use opendal::Operator;
/// use opendal::Scheme;
- /// #[tokio::main]
- /// async fn main() -> Result<()> {
+ /// async fn test() -> Result<()> {
/// let map = HashMap::from([
/// // Set the root for fs, all operations will happen under this
root.
/// //
@@ -304,8 +300,7 @@ impl Operator {
/// use opendal::services::Fs;
/// use opendal::Operator;
///
- /// # #[tokio::main]
- /// # async fn main() -> Result<()> {
+ /// # async fn test() -> Result<()> {
/// let op = Operator::new(Fs::default())?.finish();
/// let op = op.layer(LoggingLayer::default());
/// // All operations will go through the new_layer
@@ -399,8 +394,7 @@ impl<A: Accessor> OperatorBuilder<A> {
/// use opendal::services::Fs;
/// use opendal::Operator;
///
- /// # #[tokio::main]
- /// # async fn main() -> Result<()> {
+ /// # async fn test() -> Result<()> {
/// let op = Operator::new(Fs::default())?
/// .layer(LoggingLayer::default())
/// .finish();
diff --git a/core/src/types/operator/operator.rs
b/core/src/types/operator/operator.rs
index a11d6b6d77..aa12f8e740 100644
--- a/core/src/types/operator/operator.rs
+++ b/core/src/types/operator/operator.rs
@@ -46,8 +46,7 @@ use crate::*;
/// # use anyhow::Result;
/// use opendal::services::Fs;
/// use opendal::Operator;
-/// #[tokio::main]
-/// async fn main() -> Result<()> {
+/// async fn test() -> Result<()> {
/// // Create fs backend builder.
/// let mut builder = Fs::default();
/// // Set the root for fs, all operations will happen under this root.
@@ -113,7 +112,6 @@ impl Operator {
/// # use anyhow::Result;
/// use opendal::Operator;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let info = op.info();
/// # Ok(())
@@ -142,7 +140,6 @@ impl Operator {
/// # use anyhow::Result;
/// use opendal::Operator;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// op.check().await?;
/// # Ok(())
@@ -182,7 +179,6 @@ impl Operator {
/// # use opendal::Operator;
/// use opendal::ErrorKind;
/// #
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// if let Err(e) = op.stat("test").await {
/// if e.kind() == ErrorKind::NotFound {
@@ -220,7 +216,7 @@ impl Operator {
/// ```no_run
/// # use opendal::Result;
/// use opendal::Operator;
- /// # #[tokio::main]
+ ///
/// # async fn test(op: Operator, etag: &str) -> Result<()> {
/// let mut metadata = op.stat_with("path/to/file").if_match(etag).await?;
/// # Ok(())
@@ -239,7 +235,7 @@ impl Operator {
/// ```no_run
/// # use opendal::Result;
/// use opendal::Operator;
- /// # #[tokio::main]
+ ///
/// # async fn test(op: Operator, etag: &str) -> Result<()> {
/// let mut metadata =
op.stat_with("path/to/file").if_none_match(etag).await?;
/// # Ok(())
@@ -263,7 +259,6 @@ impl Operator {
/// # use opendal::Operator;
/// use opendal::ErrorKind;
/// #
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// if let Err(e) = op.stat_with("test").if_match("<etag>").await {
/// if e.kind() == ErrorKind::ConditionNotMatch {
@@ -327,7 +322,6 @@ impl Operator {
/// use futures::io;
/// use opendal::Operator;
///
- /// #[tokio::main]
/// async fn test(op: Operator) -> Result<()> {
/// let _ = op.is_exist("test").await?;
///
@@ -361,10 +355,8 @@ impl Operator {
/// # Examples
///
/// ```
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::Operator;
- /// # use futures::TryStreamExt;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// op.create_dir("path/to/dir/").await?;
/// # Ok(())
@@ -404,11 +396,10 @@ impl Operator {
///
/// # Examples
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// # use futures::TryStreamExt;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let bs = op.read("path/to/file").await?;
/// # Ok(())
@@ -443,11 +434,10 @@ impl Operator {
/// - `1024..` means read bytes in range `[1024, n)` of file
/// - `..1024` means read bytes in range `(n - 1024, n)` of file
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// # use futures::TryStreamExt;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let bs = op.read_with("path/to/file").range(0..1024).await?;
/// # Ok(())
@@ -466,7 +456,6 @@ impl Operator {
/// ```no_run
/// # use opendal::Result;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator, etag: &str) -> Result<()> {
/// let mut metadata = op.read_with("path/to/file").if_match(etag).await?;
/// # Ok(())
@@ -485,7 +474,6 @@ impl Operator {
/// ```no_run
/// # use opendal::Result;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator, etag: &str) -> Result<()> {
/// let mut metadata =
op.read_with("path/to/file").if_none_match(etag).await?;
/// # Ok(())
@@ -496,11 +484,10 @@ impl Operator {
///
/// Read the whole path into a bytes.
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// # use futures::TryStreamExt;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let bs = op.read_with("path/to/file").await?;
/// let bs = op.read_with("path/to/file").range(0..10).await?;
@@ -559,11 +546,10 @@ impl Operator {
/// # Examples
///
/// ```no_run
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// # use futures::TryStreamExt;
/// # use opendal::Scheme;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let r = op.reader("path/to/file").await?;
/// # Ok(())
@@ -595,11 +581,10 @@ impl Operator {
/// - `1024..` means read bytes in range `[1024, n)` of file
/// - `..1024` means read bytes in range `(n - 1024, n)` of file
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// # use futures::TryStreamExt;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let bs = op.reader_with("path/to/file").range(0..1024).await?;
/// # Ok(())
@@ -616,11 +601,10 @@ impl Operator {
/// The following example will create a reader with 4 MiB buffer
internally. All seek operations
/// happened in buffered data will be zero cost.
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// # use futures::TryStreamExt;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let bs = op
/// .reader_with("path/to/file")
@@ -642,7 +626,6 @@ impl Operator {
/// ```no_run
/// # use opendal::Result;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator, etag: &str) -> Result<()> {
/// let mut metadata =
op.reader_with("path/to/file").if_match(etag).await?;
/// # Ok(())
@@ -661,7 +644,6 @@ impl Operator {
/// ```no_run
/// # use opendal::Result;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator, etag: &str) -> Result<()> {
/// let mut metadata =
op.reader_with("path/to/file").if_none_match(etag).await?;
/// # Ok(())
@@ -671,11 +653,9 @@ impl Operator {
/// # Examples
///
/// ```no_run
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::Operator;
- /// # use futures::TryStreamExt;
/// # use opendal::Scheme;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let r = op.reader_with("path/to/file").range(0..10).await?;
/// # Ok(())
@@ -726,14 +706,13 @@ impl Operator {
///
/// # Examples
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// # use futures::StreamExt;
/// # use futures::SinkExt;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// op.write("path/to/file", vec![0; 4096]).await?;
/// # Ok(())
@@ -755,11 +734,10 @@ impl Operator {
///
/// # Examples
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// op.copy("path/to/file", "path/to/file2").await?;
/// # Ok(())
@@ -813,11 +791,10 @@ impl Operator {
///
/// # Examples
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// op.rename("path/to/file", "path/to/file2").await?;
/// # Ok(())
@@ -884,14 +861,11 @@ impl Operator {
///
/// # Examples
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
- /// # use futures::StreamExt;
- /// # use futures::SinkExt;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut w = op.writer("path/to/file").await?;
/// w.write(vec![0; 4096]).await?;
@@ -917,14 +891,13 @@ impl Operator {
///
/// The following example will append data to existing file instead.
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// # use futures::StreamExt;
/// # use futures::SinkExt;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut w = op.writer_with("path/to/file").append(true).await?;
/// w.write(vec![0; 4096]).await?;
@@ -950,14 +923,13 @@ impl Operator {
/// The following example will set the writer buffer to 8MiB. Only one API
call will be sent at
/// `close` instead.
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// # use futures::StreamExt;
/// # use futures::SinkExt;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut w = op
/// .writer_with("path/to/file")
@@ -984,14 +956,13 @@ impl Operator {
/// - The second write will start and return immediately.
/// - The close will make sure all writes are done in order and return
result.
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// # use futures::StreamExt;
/// # use futures::SinkExt;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut w = op.writer_with("path/to/file").concurrent(8).await?;
/// w.write(vec![0; 4096]).await?; // Start the first write
@@ -1007,14 +978,13 @@ impl Operator {
///
/// Some storage services support setting `cache_control` as system
metadata.
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// # use futures::StreamExt;
/// # use futures::SinkExt;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut w = op
/// .writer_with("path/to/file")
@@ -1033,14 +1003,11 @@ impl Operator {
///
/// Some storage services support setting `content_type` as system
metadata.
///
- /// ```
- /// # use std::io::Result;
+ /// ```no_run
+ /// # use opendal::Result;
/// # use opendal::Operator;
- /// # use futures::StreamExt;
- /// # use futures::SinkExt;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut w = op
/// .writer_with("path/to/file")
@@ -1060,13 +1027,12 @@ impl Operator {
/// Some storage services support setting `content_disposition` as system
metadata.
///
/// ```
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// # use futures::StreamExt;
/// # use futures::SinkExt;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut w = op
/// .writer_with("path/to/file")
@@ -1082,13 +1048,12 @@ impl Operator {
/// # Examples
///
/// ```
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// # use futures::StreamExt;
/// # use futures::SinkExt;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut w = op
/// .writer_with("path/to/file")
@@ -1149,11 +1114,10 @@ impl Operator {
/// The following example will append data to existing file instead.
///
/// ```
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let bs = b"hello, world!".to_vec();
/// let _ = op.write_with("path/to/file", bs).append(true).await?;
@@ -1168,11 +1132,10 @@ impl Operator {
/// Some storage services support setting `cache_control` as system
metadata.
///
/// ```
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let bs = b"hello, world!".to_vec();
/// let _ = op
@@ -1190,11 +1153,10 @@ impl Operator {
/// Some storage services support setting `content_type` as system
metadata.
///
/// ```
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let bs = b"hello, world!".to_vec();
/// let _ = op
@@ -1212,11 +1174,10 @@ impl Operator {
/// Some storage services support setting `content_disposition` as system
metadata.
///
/// ```
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let bs = b"hello, world!".to_vec();
/// let _ = op
@@ -1230,11 +1191,10 @@ impl Operator {
/// # Examples
///
/// ```
- /// # use std::io::Result;
+ /// # use opendal::Result;
/// # use opendal::Operator;
/// use bytes::Bytes;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let bs = b"hello, world!".to_vec();
/// let _ = op
@@ -1288,7 +1248,6 @@ impl Operator {
/// # use anyhow::Result;
/// # use futures::io;
/// # use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// op.delete("test").await?;
/// # Ok(())
@@ -1311,7 +1270,6 @@ impl Operator {
/// # use futures::io;
/// # use opendal::Operator;
///
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// op.delete_with("test").await?;
/// # Ok(())
@@ -1344,7 +1302,6 @@ impl Operator {
/// # use futures::io;
/// # use opendal::Operator;
/// #
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// op.remove(vec!["abc".to_string(), "def".to_string()])
/// .await?;
@@ -1374,7 +1331,6 @@ impl Operator {
/// # use opendal::Operator;
/// use futures::stream;
/// #
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let stream = stream::iter(vec!["abc".to_string(), "def".to_string()]);
/// op.remove_via(stream).await?;
@@ -1428,7 +1384,6 @@ impl Operator {
/// # use futures::io;
/// # use opendal::Operator;
/// #
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// op.remove_all("path/to/dir").await?;
/// # Ok(())
@@ -1519,7 +1474,6 @@ impl Operator {
/// use opendal::EntryMode;
/// use opendal::Metakey;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut entries = op.list("path/to/dir/").await?;
/// for entry in entries {
@@ -1550,7 +1504,6 @@ impl Operator {
/// use opendal::EntryMode;
/// use opendal::Metakey;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut entries = op.list("path/to/prefix").await?;
/// for entry in entries {
@@ -1597,7 +1550,6 @@ impl Operator {
/// ```no_run
/// # use opendal::Result;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut entries = op
/// .list_with("path/to/dir/")
@@ -1617,7 +1569,6 @@ impl Operator {
/// ```no_run
/// # use opendal::Result;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut entries = op.list_with("path/to/dir/").recursive(true).await?;
/// # Ok(())
@@ -1643,7 +1594,6 @@ impl Operator {
/// use opendal::EntryMode;
/// use opendal::Metakey;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut entries = op
/// .list_with("dir/")
@@ -1681,7 +1631,6 @@ impl Operator {
/// use opendal::EntryMode;
/// use opendal::Metakey;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut entries = op.list_with("path/to/dir/").recursive(true).await?;
/// for entry in entries {
@@ -1708,7 +1657,6 @@ impl Operator {
/// use opendal::EntryMode;
/// use opendal::Metakey;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut entries =
op.list_with("path/to/prefix").recursive(true).await?;
/// for entry in entries {
@@ -1767,7 +1715,6 @@ impl Operator {
/// use opendal::EntryMode;
/// use opendal::Metakey;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut ds = op.lister("path/to/dir/").await?;
/// while let Some(mut de) = ds.try_next().await? {
@@ -1806,7 +1753,6 @@ impl Operator {
/// ```no_run
/// # use opendal::Result;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut lister = op
/// .lister_with("path/to/dir/")
@@ -1826,7 +1772,6 @@ impl Operator {
/// ```no_run
/// # use opendal::Result;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut lister = op.lister_with("path/to/dir/").recursive(true).await?;
/// # Ok(())
@@ -1853,7 +1798,6 @@ impl Operator {
/// use opendal::EntryMode;
/// use opendal::Metakey;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut lister = op
/// .lister_with("dir/")
@@ -1890,7 +1834,6 @@ impl Operator {
/// use opendal::EntryMode;
/// use opendal::Metakey;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut lister = op.lister_with("path/to/dir/").recursive(true).await?;
/// while let Some(mut entry) = lister.try_next().await? {
@@ -1917,7 +1860,6 @@ impl Operator {
/// use opendal::EntryMode;
/// use opendal::Metakey;
/// use opendal::Operator;
- /// # #[tokio::main]
/// # async fn test(op: Operator) -> Result<()> {
/// let mut ds = op
/// .lister_with("path/to/dir/")
@@ -1966,7 +1908,6 @@ impl Operator {
/// use opendal::Operator;
/// use std::time::Duration;
///
- /// #[tokio::main]
/// async fn test(op: Operator) -> Result<()> {
/// let signed_req =
op.presign_stat("test",Duration::from_secs(3600)).await?;
/// let req = http::Request::builder()
@@ -1996,7 +1937,6 @@ impl Operator {
/// use opendal::Operator;
/// use std::time::Duration;
///
- /// #[tokio::main]
/// async fn test(op: Operator) -> Result<()> {
/// let signed_req =
op.presign_stat_with("test",Duration::from_secs(3600)).override_content_disposition("attachment;
filename=\"othertext.txt\"").await?;
/// # Ok(())
@@ -2039,7 +1979,6 @@ impl Operator {
/// use opendal::Operator;
/// use std::time::Duration;
///
- /// #[tokio::main]
/// async fn test(op: Operator) -> Result<()> {
/// let signed_req = op.presign_read("test.txt",
Duration::from_secs(3600)).await?;
/// # Ok(())
diff --git a/core/src/types/scheme.rs b/core/src/types/scheme.rs
index 7ae406bc6b..1e7918729c 100644
--- a/core/src/types/scheme.rs
+++ b/core/src/types/scheme.rs
@@ -177,7 +177,7 @@ impl Scheme {
///
/// # Examples
///
- /// ```rust
+ /// ```rust,no_run
/// use opendal::Scheme;
///
/// let enabled_schemes = Scheme::enabled();
diff --git a/core/src/types/writer.rs b/core/src/types/writer.rs
index 0048a1f862..9a235c0a0d 100644
--- a/core/src/types/writer.rs
+++ b/core/src/types/writer.rs
@@ -126,14 +126,13 @@ impl Writer {
/// # Examples
///
/// ```no_run
- /// use std::io::Result;
+ /// use opendal::Result;
///
/// use bytes::Bytes;
/// use futures::stream;
/// use futures::StreamExt;
/// use opendal::Operator;
///
- /// #[tokio::main]
/// async fn sink_example(op: Operator) -> Result<()> {
/// let mut w = op.writer_with("path/to/file").await?;
/// let stream = stream::iter(vec![vec![0; 4096], vec![1;
4096]]).map(Ok);
@@ -177,7 +176,7 @@ impl Writer {
/// # Examples
///
/// ```no_run
- /// use std::io::Result;
+ /// use opendal::Result;
///
/// use bytes::Bytes;
/// use futures::io::Cursor;
@@ -185,7 +184,6 @@ impl Writer {
/// use futures::StreamExt;
/// use opendal::Operator;
///
- /// #[tokio::main]
/// async fn copy_example(op: Operator) -> Result<()> {
/// let mut w = op.writer_with("path/to/file").await?;
/// let reader = Cursor::new(vec![0; 4096]);