You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by gi...@apache.org on 2024/05/02 02:25:14 UTC
(opendal) branch gh-pages updated: deploy: ab1dccd01abc6f47270de384c7204f0ca278c5e9
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/opendal.git
The following commit(s) were added to refs/heads/gh-pages by this push:
new cd88de80bc deploy: ab1dccd01abc6f47270de384c7204f0ca278c5e9
cd88de80bc is described below
commit cd88de80bce737528e1d6f8c72ceebc1eb70f418
Author: Xuanwo <Xu...@users.noreply.github.com>
AuthorDate: Thu May 2 02:25:07 2024 +0000
deploy: ab1dccd01abc6f47270de384c7204f0ca278c5e9
---
404.html | 2 +-
assets/js/{main.45b1553a.js => main.dc1f3f81.js} | 4 +-
...js.LICENSE.txt => main.dc1f3f81.js.LICENSE.txt} | 0
blog/apache-opendal-graduated/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
blog/archive/index.html | 2 +-
blog/how-opendal-read-data/index.html | 2 +-
blog/index.html | 2 +-
blog/opendal-access-data-freely/index.html | 2 +-
blog/opendal-entered-apache-incubator/index.html | 2 +-
blog/owo-1/index.html | 2 +-
blog/tags/announcement/index.html | 2 +-
blog/tags/index.html | 2 +-
blog/tags/internal/index.html | 2 +-
blog/tags/owo/index.html | 2 +-
community/category/committers/index.html | 2 +-
community/category/events/index.html | 2 +-
community/category/pmc-members/index.html | 2 +-
community/category/reference/index.html | 2 +-
community/committers/onboarding/index.html | 2 +-
.../reference/generate_release_note/index.html | 2 +-
.../committers/reference/setup_gpg/index.html | 2 +-
community/committers/release/index.html | 2 +-
.../request_for_adding_secrets/index.html | 2 +-
community/committers/verify/index.html | 2 +-
community/events/gsoc-proposal-guide/index.html | 2 +-
community/events/ospp-proposal-guide/index.html | 2 +-
community/index.html | 2 +-
community/maturity/index.html | 2 +-
community/news/index.html | 2 +-
.../pmc_members/nominate-committer/index.html | 2 +-
.../pmc_members/nominate-pmc-member/index.html | 2 +-
community/pmc_members/onboarding/index.html | 2 +-
community/pmc_members/podling-report/index.html | 2 +-
community/security/index.html | 2 +-
docs/category/integrations/index.html | 2 +-
docs/category/services/index.html | 2 +-
docs/integrations/dav-server-opendalfs/index.html | 2 +-
docs/integrations/object_store_opendal/index.html | 2 +-
docs/lua/classes/opendal.metadata.html | 2 +-
docs/lua/classes/opendal.operator.html | 2 +-
docs/lua/index.html | 2 +-
docs/nodejs/classes/BlockingLister.html | 4 +-
docs/nodejs/classes/BlockingReader.html | 4 +-
docs/nodejs/classes/BlockingWriter.html | 8 +-
docs/nodejs/classes/Capability.html | 74 ++--
docs/nodejs/classes/Entry.html | 4 +-
docs/nodejs/classes/ExternalObject.html | 4 +-
docs/nodejs/classes/Layer.html | 2 +-
docs/nodejs/classes/Lister.html | 4 +-
docs/nodejs/classes/Metadata.html | 18 +-
docs/nodejs/classes/Operator.html | 66 +--
docs/nodejs/classes/Reader.html | 6 +-
docs/nodejs/classes/RetryLayer.html | 14 +-
docs/nodejs/classes/Writer.html | 8 +-
docs/nodejs/interfaces/ListOptions.html | 4 +-
docs/nodejs/interfaces/PresignedRequest.html | 8 +-
docs/overview/index.html | 2 +-
docs/python/opendal.html | 444 ++++++++++-----------
docs/python/search.js | 2 +-
docs/quickstart/index.html | 2 +-
docs/rust/opendal/all.html | 2 +-
.../docs/comparisons/vs_object_store/index.html | 2 +-
docs/rust/opendal/docs/concepts/index.html | 2 +-
.../opendal/docs/internals/accessor/index.html | 34 +-
docs/rust/opendal/docs/internals/index.html | 10 +-
docs/rust/opendal/docs/internals/layer/index.html | 18 +-
.../opendal/layers/struct.AsyncBacktraceLayer.html | 2 +-
.../rust/opendal/layers/struct.AwaitTreeLayer.html | 2 +-
docs/rust/opendal/layers/struct.BlockingLayer.html | 2 +-
docs/rust/opendal/layers/struct.ChaosLayer.html | 2 +-
.../layers/struct.ConcurrentLimitLayer.html | 2 +-
docs/rust/opendal/layers/struct.DtraceLayer.html | 2 +-
.../opendal/layers/struct.ImmutableIndexLayer.html | 2 +-
docs/rust/opendal/layers/struct.LoggingLayer.html | 2 +-
docs/rust/opendal/layers/struct.MadsimLayer.html | 2 +-
docs/rust/opendal/layers/struct.MetricsLayer.html | 2 +-
.../rust/opendal/layers/struct.MinitraceLayer.html | 2 +-
.../rust/opendal/layers/struct.OtelTraceLayer.html | 2 +-
.../layers/struct.PrometheusClientLayer.html | 2 +-
.../opendal/layers/struct.PrometheusLayer.html | 2 +-
docs/rust/opendal/layers/struct.RetryLayer.html | 2 +-
docs/rust/opendal/layers/struct.ThrottleLayer.html | 2 +-
docs/rust/opendal/layers/struct.TimeoutLayer.html | 2 +-
docs/rust/opendal/layers/struct.TracingLayer.html | 2 +-
.../{trait.Accessor.html => trait.Access.html} | 6 +-
docs/rust/opendal/raw/accessor/type.Accessor.html | 11 +
.../opendal/raw/accessor/type.FusedAccessor.html | 11 -
.../opendal/raw/adapters/kv/struct.Backend.html | 28 +-
.../raw/adapters/typed_kv/struct.Backend.html | 30 +-
docs/rust/opendal/raw/enum.Operation.html | 38 +-
docs/rust/opendal/raw/index.html | 6 +-
...yeredAccessor.html => trait.LayeredAccess.html} | 6 +-
docs/rust/opendal/raw/oio/index.html | 2 +-
docs/rust/opendal/raw/oio/struct.FlatLister.html | 12 +-
docs/rust/opendal/raw/oio/trait.BlockingList.html | 2 +-
docs/rust/opendal/raw/oio/trait.List.html | 4 +-
docs/rust/opendal/raw/sidebar-items.js | 2 +-
.../raw/{trait.Accessor.html => trait.Access.html} | 72 ++--
docs/rust/opendal/raw/trait.AccessorDyn.html | 64 +--
docs/rust/opendal/raw/trait.Layer.html | 22 +-
...yeredAccessor.html => trait.LayeredAccess.html} | 36 +-
docs/rust/opendal/raw/type.Accessor.html | 2 +
docs/rust/opendal/raw/type.FusedAccessor.html | 2 -
docs/rust/opendal/struct.Operator.html | 6 +-
docs/rust/opendal/struct.OperatorBuilder.html | 6 +-
docs/rust/opendal/trait.Builder.html | 4 +-
docs/rust/search-index.js | 2 +-
docs/rust/search.desc/opendal/opendal-desc-0-.js | 2 +-
docs/rust/src/opendal/docs/concepts.rs.html | 2 +-
.../src/opendal/docs/internals/accessor.rs.html | 38 +-
docs/rust/src/opendal/docs/internals/layer.rs.html | 22 +-
docs/rust/src/opendal/docs/internals/mod.rs.html | 10 +-
.../src/opendal/layers/async_backtrace.rs.html | 10 +-
docs/rust/src/opendal/layers/await_tree.rs.html | 10 +-
docs/rust/src/opendal/layers/blocking.rs.html | 10 +-
docs/rust/src/opendal/layers/chaos.rs.html | 8 +-
docs/rust/src/opendal/layers/complete.rs.html | 16 +-
.../src/opendal/layers/concurrent_limit.rs.html | 10 +-
docs/rust/src/opendal/layers/dtrace.rs.html | 14 +-
docs/rust/src/opendal/layers/error_context.rs.html | 12 +-
.../src/opendal/layers/immutable_index.rs.html | 12 +-
docs/rust/src/opendal/layers/logging.rs.html | 10 +-
docs/rust/src/opendal/layers/madsim.rs.html | 8 +-
docs/rust/src/opendal/layers/metrics.rs.html | 12 +-
docs/rust/src/opendal/layers/minitrace.rs.html | 8 +-
docs/rust/src/opendal/layers/oteltrace.rs.html | 8 +-
docs/rust/src/opendal/layers/prometheus.rs.html | 14 +-
.../src/opendal/layers/prometheus_client.rs.html | 14 +-
docs/rust/src/opendal/layers/retry.rs.html | 14 +-
docs/rust/src/opendal/layers/throttle.rs.html | 10 +-
docs/rust/src/opendal/layers/timeout.rs.html | 22 +-
docs/rust/src/opendal/layers/tracing.rs.html | 8 +-
docs/rust/src/opendal/layers/type_eraser.rs.html | 12 +-
docs/rust/src/opendal/raw/accessor.rs.html | 26 +-
.../src/opendal/raw/adapters/kv/backend.rs.html | 2 +-
.../opendal/raw/adapters/typed_kv/backend.rs.html | 2 +-
docs/rust/src/opendal/raw/enum_utils.rs.html | 4 +-
docs/rust/src/opendal/raw/layer.rs.html | 34 +-
.../src/opendal/raw/oio/list/flat_list.rs.html | 14 +-
docs/rust/src/opendal/raw/operation.rs.html | 38 +-
.../src/opendal/services/alluxio/backend.rs.html | 2 +-
.../src/opendal/services/azblob/backend.rs.html | 2 +-
.../src/opendal/services/azdls/backend.rs.html | 2 +-
.../src/opendal/services/azfile/backend.rs.html | 2 +-
docs/rust/src/opendal/services/b2/backend.rs.html | 2 +-
.../src/opendal/services/chainsafe/backend.rs.html | 2 +-
.../src/opendal/services/compfs/backend.rs.html | 2 +-
docs/rust/src/opendal/services/cos/backend.rs.html | 2 +-
.../rust/src/opendal/services/dbfs/backend.rs.html | 2 +-
.../src/opendal/services/dropbox/backend.rs.html | 2 +-
docs/rust/src/opendal/services/fs/backend.rs.html | 2 +-
docs/rust/src/opendal/services/ftp/backend.rs.html | 2 +-
docs/rust/src/opendal/services/gcs/backend.rs.html | 2 +-
.../src/opendal/services/gdrive/backend.rs.html | 2 +-
.../rust/src/opendal/services/ghac/backend.rs.html | 2 +-
.../src/opendal/services/github/backend.rs.html | 2 +-
.../rust/src/opendal/services/hdfs/backend.rs.html | 2 +-
.../opendal/services/hdfs_native/backend.rs.html | 2 +-
.../rust/src/opendal/services/http/backend.rs.html | 2 +-
.../opendal/services/huggingface/backend.rs.html | 2 +-
.../src/opendal/services/icloud/backend.rs.html | 2 +-
.../rust/src/opendal/services/ipfs/backend.rs.html | 2 +-
.../src/opendal/services/ipmfs/backend.rs.html | 2 +-
.../src/opendal/services/koofr/backend.rs.html | 2 +-
docs/rust/src/opendal/services/obs/backend.rs.html | 2 +-
.../src/opendal/services/onedrive/backend.rs.html | 2 +-
docs/rust/src/opendal/services/oss/backend.rs.html | 2 +-
.../src/opendal/services/pcloud/backend.rs.html | 2 +-
docs/rust/src/opendal/services/s3/backend.rs.html | 2 +-
.../src/opendal/services/seafile/backend.rs.html | 2 +-
.../rust/src/opendal/services/sftp/backend.rs.html | 2 +-
.../src/opendal/services/supabase/backend.rs.html | 2 +-
.../src/opendal/services/swift/backend.rs.html | 2 +-
.../src/opendal/services/upyun/backend.rs.html | 2 +-
.../services/vercel_artifacts/backend.rs.html | 2 +-
.../opendal/services/vercel_blob/backend.rs.html | 2 +-
.../src/opendal/services/webdav/backend.rs.html | 2 +-
.../src/opendal/services/webhdfs/backend.rs.html | 2 +-
.../opendal/services/yandex_disk/backend.rs.html | 2 +-
.../types/blocking_read/blocking_reader.rs.html | 2 +-
.../types/blocking_write/blocking_writer.rs.html | 2 +-
docs/rust/src/opendal/types/builder.rs.html | 2 +-
docs/rust/src/opendal/types/list.rs.html | 8 +-
.../types/operator/blocking_operator.rs.html | 6 +-
.../src/opendal/types/operator/builder.rs.html | 16 +-
.../src/opendal/types/operator/operator.rs.html | 8 +-
.../types/operator/operator_functions.rs.html | 8 +-
.../types/operator/operator_futures.rs.html | 8 +-
docs/rust/src/opendal/types/read/reader.rs.html | 2 +-
docs/rust/src/opendal/types/write/writer.rs.html | 2 +-
docs/rust/trait.impl/core/marker/trait.Send.js | 2 +-
docs/rust/trait.impl/core/marker/trait.Sync.js | 2 +-
.../{trait.Accessor.js => trait.Access.js} | 0
docs/rust/type.impl/alloc/sync/struct.Arc.js | 2 +-
docs/services/atomicserver/index.html | 2 +-
docs/services/azblob/index.html | 2 +-
docs/services/azdls/index.html | 2 +-
docs/services/cacache/index.html | 2 +-
docs/services/cos/index.html | 2 +-
docs/services/d1/index.html | 2 +-
docs/services/dashmap/index.html | 2 +-
docs/services/dropbox/index.html | 2 +-
docs/services/etcd/index.html | 2 +-
docs/services/foundationdb/index.html | 2 +-
docs/services/fs/index.html | 2 +-
docs/services/ftp/index.html | 2 +-
docs/services/gcs/index.html | 2 +-
docs/services/gdrive/index.html | 2 +-
docs/services/ghac/index.html | 2 +-
docs/services/gridfs/index.html | 2 +-
docs/services/hdfs/index.html | 2 +-
docs/services/http/index.html | 2 +-
docs/services/huggingface/index.html | 2 +-
docs/services/ipfs/index.html | 2 +-
docs/services/ipmfs/index.html | 2 +-
docs/services/libsql/index.html | 2 +-
docs/services/memcached/index.html | 2 +-
docs/services/memory/index.html | 2 +-
docs/services/moka/index.html | 2 +-
docs/services/mongodb/index.html | 2 +-
docs/services/mysql/index.html | 2 +-
docs/services/obs/index.html | 2 +-
docs/services/onedrive/index.html | 2 +-
docs/services/oss/index.html | 2 +-
docs/services/persy/index.html | 2 +-
docs/services/postgresql/index.html | 2 +-
docs/services/redb/index.html | 2 +-
docs/services/redis/index.html | 2 +-
docs/services/rocksdb/index.html | 2 +-
docs/services/s3/index.html | 2 +-
docs/services/sftp/index.html | 2 +-
docs/services/sled/index.html | 2 +-
docs/services/sqlite/index.html | 2 +-
docs/services/supabase/index.html | 2 +-
docs/services/swift/index.html | 2 +-
docs/services/tikv/index.html | 2 +-
docs/services/vercel_artifacts/index.html | 2 +-
docs/services/webdav/index.html | 2 +-
docs/services/webhdfs/index.html | 2 +-
download/index.html | 2 +-
index.html | 2 +-
lunr-index-1714615886217.json | 1 -
lunr-index-1714616665936.json | 1 +
lunr-index.json | 2 +-
search-doc-1714615886217.json | 1 -
search-doc-1714616665936.json | 1 +
search-doc.json | 2 +-
249 files changed, 964 insertions(+), 964 deletions(-)
diff --git a/404.html b/404.html
index 9b39d34eff..c85f65d78d 100644
--- a/404.html
+++ b/404.html
@@ -6,7 +6,7 @@
<title data-rh="true">Page Not Found | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/404.html"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="tr [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/assets/js/main.45b1553a.js b/assets/js/main.dc1f3f81.js
similarity index 98%
rename from assets/js/main.45b1553a.js
rename to assets/js/main.dc1f3f81.js
index 5244bda195..44d7a46e67 100644
--- a/assets/js/main.45b1553a.js
+++ b/assets/js/main.dc1f3f81.js
@@ -1,2 +1,2 @@
-/*! For license information please see main.45b1553a.js.LICENSE.txt */
-(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[179],{8852:(e,t,n)=>{var r={"./prism-groovy":1199,"./prism-java":955,"./prism-rust":457};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=8852},7812:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(959);var r=n(9010),o=n.n(r),a=n(6887);const [...]
\ No newline at end of file
+/*! For license information please see main.dc1f3f81.js.LICENSE.txt */
+(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[179],{8852:(e,t,n)=>{var r={"./prism-groovy":1199,"./prism-java":955,"./prism-rust":457};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=8852},7812:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(959);var r=n(9010),o=n.n(r),a=n(6887);const [...]
\ No newline at end of file
diff --git a/assets/js/main.45b1553a.js.LICENSE.txt b/assets/js/main.dc1f3f81.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.45b1553a.js.LICENSE.txt
rename to assets/js/main.dc1f3f81.js.LICENSE.txt
diff --git a/blog/apache-opendal-graduated/index.html b/blog/apache-opendal-graduated/index.html
index 2bf55adab2..e222673a97 100644
--- a/blog/apache-opendal-graduated/index.html
+++ b/blog/apache-opendal-graduated/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Apache OpenDAL™ is now Graduated | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/apache-opendal-graduated"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_t [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/apache-opendal-participates-in-gsoc-2024/index.html b/blog/apache-opendal-participates-in-gsoc-2024/index.html
index efbac5143f..539d61aaa6 100644
--- a/blog/apache-opendal-participates-in-gsoc-2024/index.html
+++ b/blog/apache-opendal-participates-in-gsoc-2024/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Apache OpenDAL™ participates in Google Summer of Code 2024 | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/apache-opendal-participates-in-gsoc-2024"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="e [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/apache-opendal-participates-in-ospp-2024/index.html b/blog/apache-opendal-participates-in-ospp-2024/index.html
index 56a1b62bcf..f1d7ecf3a1 100644
--- a/blog/apache-opendal-participates-in-ospp-2024/index.html
+++ b/blog/apache-opendal-participates-in-ospp-2024/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Apache OpenDAL™ participates in Open Source Promotion Plan 2024 | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/apache-opendal-participates-in-ospp-2024"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" conte [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/archive/index.html b/blog/archive/index.html
index a24cca1e58..ed6960bf6c 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Archive | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/archive"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/how-opendal-read-data/index.html b/blog/how-opendal-read-data/index.html
index 8896a79080..45e267b286 100644
--- a/blog/how-opendal-read-data/index.html
+++ b/blog/how-opendal-read-data/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Apache OpenDAL™ Internal: Data Reading | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/how-opendal-read-data"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusauru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/index.html b/blog/index.html
index b7a23f6154..9a01bb85c2 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Blog | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property="o [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/opendal-access-data-freely/index.html b/blog/opendal-access-data-freely/index.html
index cd3501cc2f..b8af49f41c 100644
--- a/blog/opendal-access-data-freely/index.html
+++ b/blog/opendal-access-data-freely/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Apache OpenDAL™: Access Data Freely | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/opendal-access-data-freely"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusau [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/opendal-entered-apache-incubator/index.html b/blog/opendal-entered-apache-incubator/index.html
index eb9c9b24b0..ac258ec918 100644
--- a/blog/opendal-entered-apache-incubator/index.html
+++ b/blog/opendal-entered-apache-incubator/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Way to Go: OpenDAL successfully entered Apache Incubator | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/opendal-entered-apache-incubator"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta d [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/owo-1/index.html b/blog/owo-1/index.html
index 2f113f5235..9b45163c4e 100644
--- a/blog/owo-1/index.html
+++ b/blog/owo-1/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">OwO #1: The v0.40 Release | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/owo-1"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><met [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/tags/announcement/index.html b/blog/tags/announcement/index.html
index 7341a96ee3..902f76b425 100644
--- a/blog/tags/announcement/index.html
+++ b/blog/tags/announcement/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">5 posts tagged with "announcement" | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags/announcement"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsear [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/tags/index.html b/blog/tags/index.html
index d8c52928e2..5045a217b1 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Tags | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" proper [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/tags/internal/index.html b/blog/tags/internal/index.html
index 67ed2f0c4e..2487460730 100644
--- a/blog/tags/internal/index.html
+++ b/blog/tags/internal/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">One post tagged with "internal" | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags/internal"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:lang [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/tags/owo/index.html b/blog/tags/owo/index.html
index ddec5c6892..bfd7a40384 100644
--- a/blog/tags/owo/index.html
+++ b/blog/tags/owo/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">One post tagged with "owo" | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags/owo"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" cont [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/category/committers/index.html b/community/category/committers/index.html
index 2ab57322d5..47f5caa582 100644
--- a/community/category/committers/index.html
+++ b/community/category/committers/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Committers | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/category/committers"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en">< [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/category/events/index.html b/community/category/events/index.html
index dcb8c5865b..4364da1c96 100644
--- a/community/category/events/index.html
+++ b/community/category/events/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Events | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/category/events"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta dat [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/category/pmc-members/index.html b/community/category/pmc-members/index.html
index b1161a50c9..5108a1d463 100644
--- a/community/category/pmc-members/index.html
+++ b/community/category/pmc-members/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Committers | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/category/pmc-members"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"> [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/category/reference/index.html b/community/category/reference/index.html
index 3df23dbbc8..84f7adf85f 100644
--- a/community/category/reference/index.html
+++ b/community/category/reference/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Reference | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/category/reference"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><me [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/committers/onboarding/index.html b/community/committers/onboarding/index.html
index 49485ca523..66d1d8d378 100644
--- a/community/committers/onboarding/index.html
+++ b/community/committers/onboarding/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Onboarding | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/onboarding"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/committers/reference/generate_release_note/index.html b/community/committers/reference/generate_release_note/index.html
index 969d16956c..8d08ec26ea 100644
--- a/community/committers/reference/generate_release_note/index.html
+++ b/community/committers/reference/generate_release_note/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Generate release note | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/reference/generate_release_note"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name=" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/committers/reference/setup_gpg/index.html b/community/committers/reference/setup_gpg/index.html
index 137fdd049a..0fe545139a 100644
--- a/community/committers/reference/setup_gpg/index.html
+++ b/community/committers/reference/setup_gpg/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Setup GPG key | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/reference/setup_gpg"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/committers/release/index.html b/community/committers/release/index.html
index 65d8c83a80..3e245ae708 100644
--- a/community/committers/release/index.html
+++ b/community/committers/release/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Create a release | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/release"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content=" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/committers/request_for_adding_secrets/index.html b/community/committers/request_for_adding_secrets/index.html
index d48e7fe637..206408ef8c 100644
--- a/community/committers/request_for_adding_secrets/index.html
+++ b/community/committers/request_for_adding_secrets/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Request for adding secrets | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/request_for_adding_secrets"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name=" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/committers/verify/index.html b/community/committers/verify/index.html
index a878dc4041..516d2d4d6e 100644
--- a/community/committers/verify/index.html
+++ b/community/committers/verify/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Verify a release candidate | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/verify"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/events/gsoc-proposal-guide/index.html b/community/events/gsoc-proposal-guide/index.html
index 5c1e1c4a24..1901005844 100644
--- a/community/events/gsoc-proposal-guide/index.html
+++ b/community/events/gsoc-proposal-guide/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">GSoC Project Proposal Guidance | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/events/gsoc-proposal-guide"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsear [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/events/ospp-proposal-guide/index.html b/community/events/ospp-proposal-guide/index.html
index 661af66f30..befff93064 100644
--- a/community/events/ospp-proposal-guide/index.html
+++ b/community/events/ospp-proposal-guide/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">OSPP Project Proposal Guidance | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/events/ospp-proposal-guide"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsear [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/index.html b/community/index.html
index 81d39f2ae5..1e5947930d 100644
--- a/community/index.html
+++ b/community/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Community | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/maturity/index.html b/community/maturity/index.html
index 65b1f32705..0880885d89 100644
--- a/community/maturity/index.html
+++ b/community/maturity/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Maturity | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/maturity"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/news/index.html b/community/news/index.html
index 2ab4c94c76..a1427d0a38 100644
--- a/community/news/index.html
+++ b/community/news/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">News | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/news"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" n [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/pmc_members/nominate-committer/index.html b/community/pmc_members/nominate-committer/index.html
index 302632f1f9..348ac96c48 100644
--- a/community/pmc_members/nominate-committer/index.html
+++ b/community/pmc_members/nominate-committer/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Nominate Committer | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/pmc_members/nominate-committer"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:langu [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/pmc_members/nominate-pmc-member/index.html b/community/pmc_members/nominate-pmc-member/index.html
index 3a30969ca3..4c1c37e84a 100644
--- a/community/pmc_members/nominate-pmc-member/index.html
+++ b/community/pmc_members/nominate-pmc-member/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Nominate PMC Member | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/pmc_members/nominate-pmc-member"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:lan [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/pmc_members/onboarding/index.html b/community/pmc_members/onboarding/index.html
index 516466a85a..0fd393d2de 100644
--- a/community/pmc_members/onboarding/index.html
+++ b/community/pmc_members/onboarding/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Onboarding | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/pmc_members/onboarding"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/pmc_members/podling-report/index.html b/community/pmc_members/podling-report/index.html
index 01660a208d..267fadd7ca 100644
--- a/community/pmc_members/podling-report/index.html
+++ b/community/pmc_members/podling-report/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Podling Status Reports | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/pmc_members/podling-report"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:langu [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/security/index.html b/community/security/index.html
index e055b8ba99..08cda0a670 100644
--- a/community/security/index.html
+++ b/community/security/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Security | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/security"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/category/integrations/index.html b/docs/category/integrations/index.html
index b0b2033fa2..b4560254ec 100644
--- a/docs/category/integrations/index.html
+++ b/docs/category/integrations/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Integrations | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/category/integrations"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><m [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/category/services/index.html b/docs/category/services/index.html
index 0e1fa64aea..08cf984516 100644
--- a/docs/category/services/index.html
+++ b/docs/category/services/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Services | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/category/services"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/integrations/dav-server-opendalfs/index.html b/docs/integrations/dav-server-opendalfs/index.html
index 41a43c187c..8e11390b1b 100644
--- a/docs/integrations/dav-server-opendalfs/index.html
+++ b/docs/integrations/dav-server-opendalfs/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">dav-server-opendalfs | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/integrations/dav-server-opendalfs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:langu [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/integrations/object_store_opendal/index.html b/docs/integrations/object_store_opendal/index.html
index c4dae57ba6..5cce3cb0bd 100644
--- a/docs/integrations/object_store_opendal/index.html
+++ b/docs/integrations/object_store_opendal/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">object_store_opendal | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/integrations/object_store_opendal"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:langu [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/lua/classes/opendal.metadata.html b/docs/lua/classes/opendal.metadata.html
index 71e7ba65b9..af5db65784 100644
--- a/docs/lua/classes/opendal.metadata.html
+++ b/docs/lua/classes/opendal.metadata.html
@@ -138,7 +138,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2024-05-02 01:56:03 </i>
+<i style="float:right;">Last updated 2024-05-02 02:13:13 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
diff --git a/docs/lua/classes/opendal.operator.html b/docs/lua/classes/opendal.operator.html
index 018da33bab..03c8d44676 100644
--- a/docs/lua/classes/opendal.operator.html
+++ b/docs/lua/classes/opendal.operator.html
@@ -321,7 +321,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2024-05-02 01:56:03 </i>
+<i style="float:right;">Last updated 2024-05-02 02:13:13 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
diff --git a/docs/lua/index.html b/docs/lua/index.html
index 14ff0ab741..1a9db1a2e3 100644
--- a/docs/lua/index.html
+++ b/docs/lua/index.html
@@ -57,7 +57,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2024-05-02 01:56:03 </i>
+<i style="float:right;">Last updated 2024-05-02 02:13:13 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
diff --git a/docs/nodejs/classes/BlockingLister.html b/docs/nodejs/classes/BlockingLister.html
index 1b8a8b55f0..f0e79dd3df 100644
--- a/docs/nodejs/classes/BlockingLister.html
+++ b/docs/nodejs/classes/BlockingLister.html
@@ -1,5 +1,5 @@
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingLister | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script>< [...]
manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L655">generated.d.ts:655</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L655">generated.d.ts:655</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="BlockingLister.html#next" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>next</span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Blo [...]
\ No newline at end of file
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Blo [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/BlockingReader.html b/docs/nodejs/classes/BlockingReader.html
index 4cea7d06bb..5876435878 100644
--- a/docs/nodejs/classes/BlockingReader.html
+++ b/docs/nodejs/classes/BlockingReader.html
@@ -1,7 +1,7 @@
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingReader | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script>< [...]
manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L546">generated.d.ts:546</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/index.d.ts#L23">index.d.ts:23</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L546">generated.d.ts:546</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/index.d.ts#L23">index.d.ts:23</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="BlockingReader.html#createReadStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Read<wbr/>Stream</span></a>
<a href="BlockingReader.html#read" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>read</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Blo [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/BlockingWriter.html b/docs/nodejs/classes/BlockingWriter.html
index 1113abd6e5..32dfe46294 100644
--- a/docs/nodejs/classes/BlockingWriter.html
+++ b/docs/nodejs/classes/BlockingWriter.html
@@ -1,6 +1,6 @@
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingWriter | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script>< [...]
manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L567">generated.d.ts:567</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/index.d.ts#L32">index.d.ts:32</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L567">generated.d.ts:567</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/index.d.ts#L32">index.d.ts:32</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="BlockingWriter.html#close" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>close</span></a>
<a href="BlockingWriter.html#createWriteStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Write<wbr/>Stream</span></a>
<a href="BlockingWriter.html#write" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>write</span></a>
@@ -10,11 +10,11 @@ manner.</p>
<p>Close this writer.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writerSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">);</span><br/><span class="hl-5">writer</span><span class="hl-1 [...]
</code><button>Copy</button></pre>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L598">generated.d.ts:598</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createWriteStream" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Write<wbr/>Stream</sp [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L598">generated.d.ts:598</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createWriteStream" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Write<wbr/>Stream</sp [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
<p>&mut self in async napi methods should be marked as unsafe</p>
</blockquote>
<p>Write bytes into this writer.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writer</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">);</span> [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Capability.html b/docs/nodejs/classes/Capability.html
index 5462935abb..4e0755d084 100644
--- a/docs/nodejs/classes/Capability.html
+++ b/docs/nodejs/classes/Capability.html
@@ -7,7 +7,7 @@ by current Operator.</p>
<li>What's current Operator max supports batch operations count.</li>
</ul>
<p>Add fields of Capabilities with be public and can be accessed directly.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L56">generated.d.ts:56</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L56">generated.d.ts:56</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="Capability.html#batch" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>batch</span></a>
<a href="Capability.html#batchDelete" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>batch<wbr/>Delete</span></a>
<a href="Capability.html#batchMaxOperations" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>batch<wbr/>Max<wbr/>Operations</span></a>
@@ -45,43 +45,43 @@ by current Operator.</p>
<a href="Capability.html#writeWithContentDisposition" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>write<wbr/>With<wbr/>Content<wbr/>Disposition</span></a>
<a href="Capability.html#writeWithContentType" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>write<wbr/>With<wbr/>Content<wbr/>Type</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Cap [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L138">generated.d.ts:138</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchDelete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Delete</span><a href="#ba [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L140">generated.d.ts:140</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchMaxOperations" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Max<wbr/>Operation [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L142">generated.d.ts:142</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="blocking" class="t [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L144">generated.d.ts:144</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="copy" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>copy</span><a href="#copy" aria-label="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L118">generated.d.ts:118</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createDir" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Dir</span><a href="#create [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L114">generated.d.ts:114</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="delete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>delete</span><a href="#delete" aria-label [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L116">generated.d.ts:116</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="list" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list</span><a href="#list" aria-label="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L122">generated.d.ts:122</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithLimit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Limit</span><a [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L124">generated.d.ts:124</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithRecursive" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Recursive< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L128">generated.d.ts:128</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithStartAfter" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Start<wbr [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L126">generated.d.ts:126</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presign" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign</span><a href="#presign" aria-la [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L130">generated.d.ts:130</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignRead" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Read</span><a href="#pr [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L132">generated.d.ts:132</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignStat" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Stat</span><a href="#pr [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L134">generated.d.ts:134</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignWrite" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Write</span><a href="# [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L136">generated.d.ts:136</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="read" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read</span><a href="#read" aria-label="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L64">generated.d.ts:64</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>Match< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L66">generated.d.ts:66</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>No [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L68">generated.d.ts:68</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideCacheControl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>O [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L70">generated.d.ts:70</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L72">generated.d.ts:72</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>Ov [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L74">generated.d.ts:74</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="rename" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>rename</span><a href="#rename" aria-label=" [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L120">generated.d.ts:120</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="stat" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat</span><a href="#stat" aria-label="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L58">generated.d.ts:58</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>Match< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L60">generated.d.ts:60</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>No [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L62">generated.d.ts:62</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="write" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write</span><a href="#write" aria-label="Per [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L76">generated.d.ts:76</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanAppend" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Append</span><a [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L82">generated.d.ts:82</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanEmpty" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Empty</span><a h [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L80">generated.d.ts:80</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanMulti" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Multi</span><a h [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L78">generated.d.ts:78</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiAlignSize" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Multi<wbr/>Align<wb [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L138">generated.d.ts:138</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchDelete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Delete</span><a href="#ba [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L140">generated.d.ts:140</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchMaxOperations" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Max<wbr/>Operation [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L142">generated.d.ts:142</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="blocking" class="t [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L144">generated.d.ts:144</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="copy" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>copy</span><a href="#copy" aria-label="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L118">generated.d.ts:118</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createDir" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Dir</span><a href="#create [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L114">generated.d.ts:114</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="delete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>delete</span><a href="#delete" aria-label [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L116">generated.d.ts:116</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="list" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list</span><a href="#list" aria-label="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L122">generated.d.ts:122</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithLimit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Limit</span><a [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L124">generated.d.ts:124</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithRecursive" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Recursive< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L128">generated.d.ts:128</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithStartAfter" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Start<wbr [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L126">generated.d.ts:126</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presign" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign</span><a href="#presign" aria-la [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L130">generated.d.ts:130</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignRead" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Read</span><a href="#pr [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L132">generated.d.ts:132</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignStat" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Stat</span><a href="#pr [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L134">generated.d.ts:134</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignWrite" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Write</span><a href="# [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L136">generated.d.ts:136</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="read" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read</span><a href="#read" aria-label="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L64">generated.d.ts:64</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>Match< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L66">generated.d.ts:66</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>No [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L68">generated.d.ts:68</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideCacheControl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>O [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L70">generated.d.ts:70</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L72">generated.d.ts:72</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>Ov [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L74">generated.d.ts:74</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="rename" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>rename</span><a href="#rename" aria-label=" [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L120">generated.d.ts:120</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="stat" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat</span><a href="#stat" aria-label="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L58">generated.d.ts:58</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>Match< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L60">generated.d.ts:60</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>No [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L62">generated.d.ts:62</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="write" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write</span><a href="#write" aria-label="Per [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L76">generated.d.ts:76</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanAppend" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Append</span><a [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L82">generated.d.ts:82</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanEmpty" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Empty</span><a h [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L80">generated.d.ts:80</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanMulti" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Multi</span><a h [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L78">generated.d.ts:78</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiAlignSize" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Multi<wbr/>Align<wb [...]
<p>For example, Google GCS requires align size to 256KiB in write_multi.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L106">generated.d.ts:106</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMaxSize" [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L106">generated.d.ts:106</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMaxSize" [...]
<p>For example, AWS S3 supports 5GiB as max in write_multi.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L94">generated.d.ts:94</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMinSize" c [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L94">generated.d.ts:94</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMinSize" c [...]
<p>For example, AWS S3 requires at least 5MiB in write_multi expect the last one.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L100">generated.d.ts:100</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeTotalMaxSize" [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L100">generated.d.ts:100</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeTotalMaxSize" [...]
<p>For example, Cloudflare D1 supports 1MB as max in write_total.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L112">generated.d.ts:112</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithCacheCont [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L88">generated.d.ts:88</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>C [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L86">generated.d.ts:86</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>Content< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L84">generated.d.ts:84</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class= [...]
\ No newline at end of file
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L112">generated.d.ts:112</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithCacheCont [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L88">generated.d.ts:88</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>C [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L86">generated.d.ts:86</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>Content< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L84">generated.d.ts:84</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class= [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Entry.html b/docs/nodejs/classes/Entry.html
index c7e7efd61f..ac87980104 100644
--- a/docs/nodejs/classes/Entry.html
+++ b/docs/nodejs/classes/Entry.html
@@ -1,5 +1,5 @@
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Entry | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script as [...]
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L515">generated.d.ts:515</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L515">generated.d.ts:515</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Entry.html#path" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>path</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ent [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L517">generated.d.ts:517</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class [...]
\ No newline at end of file
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L517">generated.d.ts:517</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/ExternalObject.html b/docs/nodejs/classes/ExternalObject.html
index 6bcb4275cf..36dba08046 100644
--- a/docs/nodejs/classes/ExternalObject.html
+++ b/docs/nodejs/classes/ExternalObject.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ExternalObject | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script>< [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ExternalObject | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script>< [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="ExternalObject.html#reflection-5" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span><em>Property</em></span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ext [...]
\ No newline at end of file
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ext [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Layer.html b/docs/nodejs/classes/Layer.html
index 579c9b1646..4a820a7515 100644
--- a/docs/nodejs/classes/Layer.html
+++ b/docs/nodejs/classes/Layer.html
@@ -1,3 +1,3 @@
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Layer | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script as [...]
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L659">generated.d.ts:659</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L659">generated.d.ts:659</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Lay [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Lister.html b/docs/nodejs/classes/Lister.html
index fe25d35bb4..dc8c77b197 100644
--- a/docs/nodejs/classes/Lister.html
+++ b/docs/nodejs/classes/Lister.html
@@ -1,10 +1,10 @@
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Lister | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script a [...]
manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L640">generated.d.ts:640</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L640">generated.d.ts:640</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Lister.html#next" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>next</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Lis [...]
<p>&mut self in async napi methods should be marked as unsafe</p>
</blockquote>
<p>napi will make sure the function is safe, and we didn't do unsafe
thing internally.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="Entry.html" class="tsd-signature-type tsd-kind-class">Entry</a><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57 [...]
\ No newline at end of file
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="Entry.html" class="tsd-signature-type tsd-kind-class">Entry</a><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Metadata.html b/docs/nodejs/classes/Metadata.html
index ae8310ca01..a77595fced 100644
--- a/docs/nodejs/classes/Metadata.html
+++ b/docs/nodejs/classes/Metadata.html
@@ -1,5 +1,5 @@
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Metadata | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script [...]
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L520">generated.d.ts:520</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L520">generated.d.ts:520</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="Metadata.html#contentDisposition" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>content<wbr/>Disposition</span></a>
<a href="Metadata.html#contentLength" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>content<wbr/>Length</span></a>
<a href="Metadata.html#contentMd5" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>content<wbr/>Md5</span></a>
@@ -9,12 +9,12 @@
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Metadata.html#isDirectory" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>is<wbr/>Directory</span></a>
<a href="Metadata.html#isFile" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>is<wbr/>File</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Met [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L526">generated.d.ts:526</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentLength" cla [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L528">generated.d.ts:528</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentMd5" class= [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L530">generated.d.ts:530</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentType" class [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L532">generated.d.ts:532</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="etag" class="tsd-a [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L534">generated.d.ts:534</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="lastModified" clas [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L526">generated.d.ts:526</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentLength" cla [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L528">generated.d.ts:528</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentMd5" class= [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L530">generated.d.ts:530</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentType" class [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L532">generated.d.ts:532</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="etag" class="tsd-a [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L534">generated.d.ts:534</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="lastModified" clas [...]
<p>We will output this time in RFC3339 format like <code>1996-12-19T16:39:57+08:00</code>.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L540">generated.d.ts:540</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2 [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L522">generated.d.ts:522</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="isFile" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>File</span><a href="#isFile" aria [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L524">generated.d.ts:524</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary clas [...]
\ No newline at end of file
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L540">generated.d.ts:540</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2 [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L522">generated.d.ts:522</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="isFile" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>File</span><a href="#isFile" aria [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L524">generated.d.ts:524</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary clas [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Operator.html b/docs/nodejs/classes/Operator.html
index e41efdf35b..01f8d5fcd0 100644
--- a/docs/nodejs/classes/Operator.html
+++ b/docs/nodejs/classes/Operator.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Operator | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Operator | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Operator.html#append" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>append</span></a>
<a href="Operator.html#capability" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>capability</span></a>
<a href="Operator.html#check" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>check</span></a>
@@ -31,45 +31,45 @@
<a href="Operator.html#writer" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>writer</span></a>
<a href="Operator.html#writerSync" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>writer<wbr/>Sync</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ope [...]
-</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L148">generated.d.ts:148</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member"><a id="append" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>append</span><a href="#append" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24 [...]
+</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L148">generated.d.ts:148</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member"><a id="append" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>append</span><a href="#append" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24 [...]
<a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><ul>
<li>It always appends content to the end of the file.</li>
<li>It will create file if the path not exists.</li>
</ul>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">append</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-5">Buffer</span><span class="hl-1">.</span><span class="hl-0">from</span><span class="hl-1">(</span><sp [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
-</div><h4 class="tsd-returns-title">Returns <a href="Capability.html" class="tsd-signature-type tsd-kind-class">Capability</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L150">generated.d.ts:150</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="check" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>check</ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
+</div><h4 class="tsd-returns-title">Returns <a href="Capability.html" class="tsd-signature-type tsd-kind-class">Capability</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L150">generated.d.ts:150</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="check" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>check</ [...]
<p>We will send a <code>list</code> request to path and return any errors we met.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">check</span><span class="hl-1">();</span>
</code><button>Copy</button></pre>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L193">generated.d.ts:193</a></li></ul></aside></li></ul></section><section class [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L193">generated.d.ts:193</a></li></ul></aside></li></ul></section><section class [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">copy</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-2">"path/to/dest"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-s [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-s [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">copySync</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-2">"path/to/dest"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">createDir</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typ [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">createDirSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generat [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generat [...]
<a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>Delete not existing error won’t return errors.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">delete</span><span class="hl-1">(</span><span class="hl-2">"test"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typ [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">deleteSync</span><span class="hl-1">(</span><span class="hl-2">"test"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generat [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generat [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">isExist</span><span class="hl-1">(</span><span class="hl-2">"test"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd- [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd- [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">isExistSync</span><span class="hl-1">(</span><span class="hl-2">"test"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/gene [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">layer</span>: <a href="ExternalObject.html" class="tsd-signature-type tsd-kind-class">ExternalObject</a><span class="tsd-signature-symbol"><</span><a href="Layer.html" class="tsd-signature-type tsd-kind-class">Layer</a><span class="tsd-signature-symbol">></span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Op [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/gene [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">layer</span>: <a href="ExternalObject.html" class="tsd-signature-type tsd-kind-class">ExternalObject</a><span class="tsd-signature-symbol"><</span><a href="Layer.html" class="tsd-signature-type tsd-kind-class">Layer</a><span class="tsd-signature-symbol">></span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Op [...]
<p>This function will return an array of entries.</p>
<p>An error will be returned if given path doesn't end with <code>/</code>.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">list</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">);</span><br/ [...]
@@ -77,7 +77,7 @@
<a id="md:list-recursively" class="tsd-anchor"></a><h4><a href="#md:list-recursively">List recursively</a></h4><p>With <code>recursive</code> option, you can list recursively.</p>
<pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">list</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">, { </span><span class="hl-5">recursive:</span><span class="hl-1"> </span><span class="hl-6">true [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
<p>This function will return a array of entries.</p>
<p>An error will be returned if given path doesn't end with <code>/</code>.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">listSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">);</span><br/><span class="hl-4">for</span><span class="hl-1"> (</s [...]
@@ -85,45 +85,45 @@
<a id="md:list-recursively" class="tsd-anchor"></a><h4><a href="#md:list-recursively">List recursively</a></h4><p>With <code>recursive</code> option, you can list recursively.</p>
<pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">listSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">, { </span><span class="hl-5">recursive:</span><span class="hl-1"> </span><span class="hl-6">true</span><span class="hl-1"> });</span><br/><span class= [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
<p>Unit of expires is seconds.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">req</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">presignRead</span><span class="hl-1">(</span><span class="hl-5">path</span><span class="hl-1">, </span><span class="hl-0" [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../i [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../i [...]
<p>Unit of expires is seconds.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">req</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">presignStat</span><span class="hl-1">(</span><span class="hl-5">path</span><span class="hl-1">, </span><span class="hl-0" [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../i [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../i [...]
<p>Unit of expires is seconds.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">req</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">presignWrite</span><span class="hl-1">(</span><span class="hl-5">path</span><span class="hl-1">, </span><span class="hl-0 [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../i [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../i [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">buf</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">read</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">Buffer</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd- [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">Buffer</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd- [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">buf</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">readSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Buffer</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/gene [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Buffer</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/gene [...]
<p>It could be used to read large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Reader.html" class="tsd-signature-type tsd-kind-class">Reader</a><span class="tsd-signature-symbol">></span></h4>< [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Reader.html" class="tsd-signature-type tsd-kind-class">Reader</a><span class="tsd-signature-symbol">></span></h4>< [...]
<p>It could be used to read large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="BlockingReader.html" class="tsd-signature-type tsd-kind-class">BlockingReader</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="BlockingReader.html" class="tsd-signature-type tsd-kind-class">BlockingReader</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
<a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>If underlying services support delete in batch, we will use batch delete instead.</p>
<a id="md:examples" class="tsd-anchor"></a><h3><a href="#md:examples">Examples</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">([</span><span class="hl-2">"abc"</span><span class="hl-1">, </span><span class="hl-2">"def"</span><span class="hl-1">]);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">paths</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&g [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">paths</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&g [...]
<a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>If underlying services support delete in batch, we will use batch delete instead.</p>
<a id="md:examples" class="tsd-anchor"></a><h3><a href="#md:examples">Examples</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">removeAll</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typ [...]
<p>It's similar to <code>mv</code> command.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">rename</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-2">"path/to/dest"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-s [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-s [...]
<p>It's similar to <code>mv</code> command.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">renameSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-2">"path/to/dest"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
<a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>Use stat if you:</p>
<ul>
<li>Want detect the outside changes of path.</li>
@@ -132,17 +132,17 @@
<p>You may want to use <code>metadata</code> if you are working with entries returned by <code>Lister</code>. It’s highly possible that metadata you want has already been cached.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">meta</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">stat</span><span class="hl-1">(</span><span class="hl-2">"test"</span><span class="hl-1">);</span><br/><span c [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a><span class="tsd-signature-symbol">></span></ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a><span class="tsd-signature-symbol">></span></ [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">meta</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">statSync</span><span class="hl-1">(</span><span class="hl-2">"test"</span><span class="hl-1">);</span><br/><span class="hl-4">if</span><span class="hl-1"> (</span><span [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/bl [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/bl [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">write</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-5">Buffer</span><span class="hl-1">.</span><span class="hl-0">from</span><span class="hl-1">(</span><spa [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writeSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-5">Buffer</span><span class="hl-1">.</span><span class="hl-0">from</span><span class="hl-1">(</span><span class="hl-2">"hello world"</span><span cla [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
<p>It could be used to write large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Writer.html" class="tsd-signature-type tsd-kind-class">Writer</a><span class="tsd-signature-symbol">></span></h4>< [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Writer.html" class="tsd-signature-type tsd-kind-class">Writer</a><span class="tsd-signature-symbol">></span></h4>< [...]
<p>It could be used to write large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="BlockingWriter.html" class="tsd-signature-type tsd-kind-class">BlockingWriter</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="BlockingWriter.html" class="tsd-signature-type tsd-kind-class">BlockingWriter</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Reader.html b/docs/nodejs/classes/Reader.html
index 330ffb4079..675b8cbc27 100644
--- a/docs/nodejs/classes/Reader.html
+++ b/docs/nodejs/classes/Reader.html
@@ -1,11 +1,11 @@
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Reader | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script a [...]
manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L553">generated.d.ts:553</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/index.d.ts#L27">index.d.ts:27</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L553">generated.d.ts:553</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/index.d.ts#L27">index.d.ts:27</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Reader.html#createReadStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Read<wbr/>Stream</span></a>
<a href="Reader.html#read" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>read</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Rea [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
<p>&mut self in async napi methods should be marked as unsafe</p>
</blockquote>
<p>Read bytes from this reader into given buffer.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">buf</span>: <span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">bigint</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-t [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">buf</span>: <span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">bigint</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-t [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/RetryLayer.html b/docs/nodejs/classes/RetryLayer.html
index 2bd7b6fbaf..d19c57823c 100644
--- a/docs/nodejs/classes/RetryLayer.html
+++ b/docs/nodejs/classes/RetryLayer.html
@@ -6,27 +6,27 @@ returns true. If operation still failed, this layer will set error to
<p><code>write</code> and <code>blocking_write</code> don't support retry so far, visit <a href="https://github.com/apache/opendal/issues/1223">this issue</a> for more details.</p>
<a id="md:examples" class="tsd-anchor"></a><h1><a href="#md:examples">Examples</a></h1><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">op</span><span class="hl-1"> = </span><span class="hl-6">new</span><span class="hl-1"> </span><span class="hl-0">Operator</span><span class="hl-1">(</span><span class="hl-2">"file"</span><span class="hl-1">, { </span><span class="hl-5">root:</span><span class="hl-1"> </span><spa [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L685">generated.d.ts:685</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L685">generated.d.ts:685</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="RetryLayer.html#factor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>factor</span></a>
<a href="RetryLayer.html#jitter" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>jitter</span></a>
<a href="RetryLayer.html#maxDelay" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>max<wbr/>Delay</span></a>
<a href="RetryLayer.html#maxTimes" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>max<wbr/>Times</span></a>
<a href="RetryLayer.html#minDelay" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>min<wbr/>Delay</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="RetryLayer.html#build" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>build</span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ret [...]
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ret [...]
<a id="md:panics" class="tsd-anchor"></a><h1><a href="#md:panics">Panics</a></h1><p>This function will panic if input factor smaller than <code>1.0</code>.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated. [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated. [...]
<p>If jitter is enabled, ExponentialBackoff will add a random jitter in `[0, min_delay)
to current delay.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">boolean</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">boolean</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated [...]
<p>Delay will not increasing if current delay is larger than max_delay.</p>
<a id="md:notes" class="tsd-anchor"></a><h1><a href="#md:notes">Notes</a></h1><ul>
<li>The unit of max_delay is millisecond.</li>
</ul>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated. [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated. [...]
<p>Backoff will return <code>None</code> if max times is reaching.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated. [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated. [...]
<a id="md:notes" class="tsd-anchor"></a><h1><a href="#md:notes">Notes</a></h1><ul>
<li>The unit of min_delay is millisecond.</li>
</ul>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated. [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated. [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Writer.html b/docs/nodejs/classes/Writer.html
index 163709087d..52886dbe46 100644
--- a/docs/nodejs/classes/Writer.html
+++ b/docs/nodejs/classes/Writer.html
@@ -1,6 +1,6 @@
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Writer | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script a [...]
manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L604">generated.d.ts:604</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/index.d.ts#L37">index.d.ts:37</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L604">generated.d.ts:604</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/index.d.ts#L37">index.d.ts:37</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Writer.html#close" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>close</span></a>
<a href="Writer.html#createWriteStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Write<wbr/>Stream</span></a>
<a href="Writer.html#write" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>write</span></a>
@@ -10,11 +10,11 @@ manner.</p>
<p>Close this writer.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writer</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">);</span> [...]
</code><button>Copy</button></pre>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L634">generated.d.ts:634</a></li></ul></aside></li></ul></section><section class [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L634">generated.d.ts:634</a></li></ul></aside></li></ul></section><section class [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
<p>&mut self in async napi methods should be marked as unsafe</p>
</blockquote>
<p>Write bytes into this writer.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writer</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">);</span> [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type [...]
\ No newline at end of file
diff --git a/docs/nodejs/interfaces/ListOptions.html b/docs/nodejs/interfaces/ListOptions.html
index b5ade0b279..fe6cfb42ea 100644
--- a/docs/nodejs/interfaces/ListOptions.html
+++ b/docs/nodejs/interfaces/ListOptions.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ListOptions | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><scr [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ListOptions | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><scr [...]
<a href="ListOptions.html#recursive" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>recursive?</span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="limit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>limit</span><a href="#limit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">li [...]
\ No newline at end of file
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="limit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>limit</span><a href="#limit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">li [...]
\ No newline at end of file
diff --git a/docs/nodejs/interfaces/PresignedRequest.html b/docs/nodejs/interfaces/PresignedRequest.html
index 912ac5dc4c..683018243e 100644
--- a/docs/nodejs/interfaces/PresignedRequest.html
+++ b/docs/nodejs/interfaces/PresignedRequest.html
@@ -1,8 +1,8 @@
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PresignedRequest | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script [...]
-</div><div class="tsd-comment tsd-typography"></div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">PresignedRequest </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><a class="tsd-kind-property" href="PresignedRequest.html#headers">headers</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class=" [...]
+</div><div class="tsd-comment tsd-typography"></div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">PresignedRequest </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><a class="tsd-kind-property" href="PresignedRequest.html#headers">headers</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class=" [...]
<a href="PresignedRequest.html#method" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>method</span></a>
<a href="PresignedRequest.html#url" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>url</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="headers" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>headers</span><a href="#headers" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">headers</span><span class="tsd-signature-symbol">: [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L42">generated.d.ts:42</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="method" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>method</span><a href="#method" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L38">generated.d.ts:38</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="url" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>url</span><a href="#url" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><di [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/57200e7/bindings/nodejs/generated.d.ts#L40">generated.d.ts:40</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="# [...]
\ No newline at end of file
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L42">generated.d.ts:42</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="method" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>method</span><a href="#method" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L38">generated.d.ts:38</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="url" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>url</span><a href="#url" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><di [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/ab1dccd/bindings/nodejs/generated.d.ts#L40">generated.d.ts:40</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="# [...]
\ No newline at end of file
diff --git a/docs/overview/index.html b/docs/overview/index.html
index 8693cb9b7b..aa4356258d 100644
--- a/docs/overview/index.html
+++ b/docs/overview/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Welcome to Apache OpenDAL™ | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/overview"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en">< [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/python/opendal.html b/docs/python/opendal.html
index b57912af74..faa4447be6 100644
--- a/docs/python/opendal.html
+++ b/docs/python/opendal.html
@@ -249,19 +249,19 @@
<a class="variable" href="#Metadata.content_disposition">content_disposition</a>
</li>
<li>
- <a class="variable" href="#Metadata.content_type">content_type</a>
+ <a class="variable" href="#Metadata.content_md5">content_md5</a>
</li>
<li>
- <a class="variable" href="#Metadata.etag">etag</a>
+ <a class="variable" href="#Metadata.mode">mode</a>
</li>
<li>
- <a class="variable" href="#Metadata.mode">mode</a>
+ <a class="variable" href="#Metadata.etag">etag</a>
</li>
<li>
<a class="variable" href="#Metadata.content_length">content_length</a>
</li>
<li>
- <a class="variable" href="#Metadata.content_md5">content_md5</a>
+ <a class="variable" href="#Metadata.content_type">content_type</a>
</li>
</ul>
@@ -269,15 +269,15 @@
<li>
<a class="class" href="#PresignedRequest">PresignedRequest</a>
<ul class="memberlist">
- <li>
- <a class="variable" href="#PresignedRequest.url">url</a>
- </li>
<li>
<a class="variable" href="#PresignedRequest.headers">headers</a>
</li>
<li>
<a class="variable" href="#PresignedRequest.method">method</a>
</li>
+ <li>
+ <a class="variable" href="#PresignedRequest.url">url</a>
+ </li>
</ul>
</li>
@@ -285,112 +285,112 @@
<a class="class" href="#Capability">Capability</a>
<ul class="memberlist">
<li>
- <a class="variable" href="#Capability.list">list</a>
+ <a class="variable" href="#Capability.write_can_empty">write_can_empty</a>
</li>
<li>
- <a class="variable" href="#Capability.read_with_override_content_type">read_with_override_content_type</a>
+ <a class="variable" href="#Capability.write_with_content_disposition">write_with_content_disposition</a>
</li>
<li>
- <a class="variable" href="#Capability.presign_stat">presign_stat</a>
+ <a class="variable" href="#Capability.write_total_max_size">write_total_max_size</a>
</li>
<li>
- <a class="variable" href="#Capability.write_with_content_disposition">write_with_content_disposition</a>
+ <a class="variable" href="#Capability.read_with_override_content_type">read_with_override_content_type</a>
</li>
<li>
- <a class="variable" href="#Capability.copy">copy</a>
+ <a class="variable" href="#Capability.stat_with_if_none_match">stat_with_if_none_match</a>
</li>
<li>
- <a class="variable" href="#Capability.write_multi_align_size">write_multi_align_size</a>
+ <a class="variable" href="#Capability.read_with_if_match">read_with_if_match</a>
</li>
<li>
- <a class="variable" href="#Capability.batch">batch</a>
+ <a class="variable" href="#Capability.write_with_cache_control">write_with_cache_control</a>
</li>
<li>
- <a class="variable" href="#Capability.create_dir">create_dir</a>
+ <a class="variable" href="#Capability.write_multi_max_size">write_multi_max_size</a>
</li>
<li>
- <a class="variable" href="#Capability.stat">stat</a>
+ <a class="variable" href="#Capability.create_dir">create_dir</a>
</li>
<li>
- <a class="variable" href="#Capability.rename">rename</a>
+ <a class="variable" href="#Capability.read_with_if_none_match">read_with_if_none_match</a>
</li>
<li>
- <a class="variable" href="#Capability.write_multi_min_size">write_multi_min_size</a>
+ <a class="variable" href="#Capability.batch">batch</a>
</li>
<li>
- <a class="variable" href="#Capability.blocking">blocking</a>
+ <a class="variable" href="#Capability.presign_read">presign_read</a>
</li>
<li>
- <a class="variable" href="#Capability.read_with_if_match">read_with_if_match</a>
+ <a class="variable" href="#Capability.presign_stat">presign_stat</a>
</li>
<li>
- <a class="variable" href="#Capability.write_can_multi">write_can_multi</a>
+ <a class="variable" href="#Capability.write_multi_min_size">write_multi_min_size</a>
</li>
<li>
- <a class="variable" href="#Capability.list_with_start_after">list_with_start_after</a>
+ <a class="variable" href="#Capability.batch_delete">batch_delete</a>
</li>
<li>
- <a class="variable" href="#Capability.write_total_max_size">write_total_max_size</a>
+ <a class="variable" href="#Capability.batch_max_operations">batch_max_operations</a>
</li>
<li>
- <a class="variable" href="#Capability.write_can_append">write_can_append</a>
+ <a class="variable" href="#Capability.rename">rename</a>
</li>
<li>
- <a class="variable" href="#Capability.write_can_empty">write_can_empty</a>
+ <a class="variable" href="#Capability.write_with_content_type">write_with_content_type</a>
</li>
<li>
- <a class="variable" href="#Capability.list_with_recursive">list_with_recursive</a>
+ <a class="variable" href="#Capability.stat_with_if_match">stat_with_if_match</a>
</li>
<li>
- <a class="variable" href="#Capability.presign_write">presign_write</a>
+ <a class="variable" href="#Capability.write_can_append">write_can_append</a>
</li>
<li>
- <a class="variable" href="#Capability.presign">presign</a>
+ <a class="variable" href="#Capability.copy">copy</a>
</li>
<li>
- <a class="variable" href="#Capability.stat_with_if_none_match">stat_with_if_none_match</a>
+ <a class="variable" href="#Capability.presign_write">presign_write</a>
</li>
<li>
- <a class="variable" href="#Capability.write">write</a>
+ <a class="variable" href="#Capability.list">list</a>
</li>
<li>
- <a class="variable" href="#Capability.write_multi_max_size">write_multi_max_size</a>
+ <a class="variable" href="#Capability.stat">stat</a>
</li>
<li>
- <a class="variable" href="#Capability.presign_read">presign_read</a>
+ <a class="variable" href="#Capability.delete">delete</a>
</li>
<li>
- <a class="variable" href="#Capability.read_with_override_content_disposition">read_with_override_content_disposition</a>
+ <a class="variable" href="#Capability.list_with_recursive">list_with_recursive</a>
</li>
<li>
- <a class="variable" href="#Capability.stat_with_if_match">stat_with_if_match</a>
+ <a class="variable" href="#Capability.list_with_limit">list_with_limit</a>
</li>
<li>
- <a class="variable" href="#Capability.write_with_content_type">write_with_content_type</a>
+ <a class="variable" href="#Capability.blocking">blocking</a>
</li>
<li>
- <a class="variable" href="#Capability.read_with_if_none_match">read_with_if_none_match</a>
+ <a class="variable" href="#Capability.read_with_override_cache_control">read_with_override_cache_control</a>
</li>
<li>
- <a class="variable" href="#Capability.read">read</a>
+ <a class="variable" href="#Capability.list_with_start_after">list_with_start_after</a>
</li>
<li>
- <a class="variable" href="#Capability.write_with_cache_control">write_with_cache_control</a>
+ <a class="variable" href="#Capability.read">read</a>
</li>
<li>
- <a class="variable" href="#Capability.list_with_limit">list_with_limit</a>
+ <a class="variable" href="#Capability.write">write</a>
</li>
<li>
- <a class="variable" href="#Capability.batch_max_operations">batch_max_operations</a>
+ <a class="variable" href="#Capability.read_with_override_content_disposition">read_with_override_content_disposition</a>
</li>
<li>
- <a class="variable" href="#Capability.batch_delete">batch_delete</a>
+ <a class="variable" href="#Capability.write_can_multi">write_can_multi</a>
</li>
<li>
- <a class="variable" href="#Capability.read_with_override_cache_control">read_with_override_cache_control</a>
+ <a class="variable" href="#Capability.write_multi_align_size">write_multi_align_size</a>
</li>
<li>
- <a class="variable" href="#Capability.delete">delete</a>
+ <a class="variable" href="#Capability.presign">presign</a>
</li>
</ul>
@@ -1467,41 +1467,41 @@ The default value for whence is <code>SEEK_SET</code>. Values for <code>whence</
</div>
- <div id="Metadata.content_type" class="classattr">
+ <div id="Metadata.content_md5" class="classattr">
<div class="attr variable">
- <span class="name">content_type</span><span class="annotation">: Optional[str]</span>
+ <span class="name">content_md5</span><span class="annotation">: Optional[str]</span>
</div>
- <a class="headerlink" href="#Metadata.content_type"></a>
+ <a class="headerlink" href="#Metadata.content_md5"></a>
- <div class="docstring"><p>Content Type of this entry.</p>
+ <div class="docstring"><p>Content MD5 of this entry.</p>
</div>
</div>
- <div id="Metadata.etag" class="classattr">
+ <div id="Metadata.mode" class="classattr">
<div class="attr variable">
- <span class="name">etag</span><span class="annotation">: Optional[str]</span>
+ <span class="name">mode</span><span class="annotation">: <a href="#EntryMode">EntryMode</a></span>
</div>
- <a class="headerlink" href="#Metadata.etag"></a>
+ <a class="headerlink" href="#Metadata.mode"></a>
- <div class="docstring"><p>ETag of this entry.</p>
+ <div class="docstring"><p>mode represent this entry's mode.</p>
</div>
</div>
- <div id="Metadata.mode" class="classattr">
+ <div id="Metadata.etag" class="classattr">
<div class="attr variable">
- <span class="name">mode</span><span class="annotation">: <a href="#EntryMode">EntryMode</a></span>
+ <span class="name">etag</span><span class="annotation">: Optional[str]</span>
</div>
- <a class="headerlink" href="#Metadata.mode"></a>
+ <a class="headerlink" href="#Metadata.etag"></a>
- <div class="docstring"><p>mode represent this entry's mode.</p>
+ <div class="docstring"><p>ETag of this entry.</p>
</div>
@@ -1519,15 +1519,15 @@ The default value for whence is <code>SEEK_SET</code>. Values for <code>whence</
</div>
- <div id="Metadata.content_md5" class="classattr">
+ <div id="Metadata.content_type" class="classattr">
<div class="attr variable">
- <span class="name">content_md5</span><span class="annotation">: Optional[str]</span>
+ <span class="name">content_type</span><span class="annotation">: Optional[str]</span>
</div>
- <a class="headerlink" href="#Metadata.content_md5"></a>
+ <a class="headerlink" href="#Metadata.content_type"></a>
- <div class="docstring"><p>Content MD5 of this entry.</p>
+ <div class="docstring"><p>Content Type of this entry.</p>
</div>
@@ -1545,41 +1545,41 @@ The default value for whence is <code>SEEK_SET</code>. Values for <code>whence</
- <div id="PresignedRequest.url" class="classattr">
+ <div id="PresignedRequest.headers" class="classattr">
<div class="attr variable">
- <span class="name">url</span><span class="annotation">: str</span>
+ <span class="name">headers</span><span class="annotation">: dict[str, str]</span>
</div>
- <a class="headerlink" href="#PresignedRequest.url"></a>
+ <a class="headerlink" href="#PresignedRequest.headers"></a>
- <div class="docstring"><p>Return the URL of this request.</p>
+ <div class="docstring"><p>Return the HTTP headers of this request.</p>
</div>
</div>
- <div id="PresignedRequest.headers" class="classattr">
+ <div id="PresignedRequest.method" class="classattr">
<div class="attr variable">
- <span class="name">headers</span><span class="annotation">: dict[str, str]</span>
+ <span class="name">method</span><span class="annotation">: str</span>
</div>
- <a class="headerlink" href="#PresignedRequest.headers"></a>
+ <a class="headerlink" href="#PresignedRequest.method"></a>
- <div class="docstring"><p>Return the HTTP headers of this request.</p>
+ <div class="docstring"><p>Return the HTTP method of this request.</p>
</div>
</div>
- <div id="PresignedRequest.method" class="classattr">
+ <div id="PresignedRequest.url" class="classattr">
<div class="attr variable">
- <span class="name">method</span><span class="annotation">: str</span>
+ <span class="name">url</span><span class="annotation">: str</span>
</div>
- <a class="headerlink" href="#PresignedRequest.method"></a>
+ <a class="headerlink" href="#PresignedRequest.url"></a>
- <div class="docstring"><p>Return the HTTP method of this request.</p>
+ <div class="docstring"><p>Return the URL of this request.</p>
</div>
@@ -1600,95 +1600,110 @@ by current Operator.</p>
</div>
- <div id="Capability.list" class="classattr">
+ <div id="Capability.write_can_empty" class="classattr">
<div class="attr variable">
- <span class="name">list</span><span class="annotation">: bool</span>
+ <span class="name">write_can_empty</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.list"></a>
+ <a class="headerlink" href="#Capability.write_can_empty"></a>
- <div class="docstring"><p>If operator supports list.</p>
+ <div class="docstring"><p>If operator supports write with empty content.</p>
</div>
</div>
- <div id="Capability.read_with_override_content_type" class="classattr">
+ <div id="Capability.write_with_content_disposition" class="classattr">
<div class="attr variable">
- <span class="name">read_with_override_content_type</span><span class="annotation">: bool</span>
+ <span class="name">write_with_content_disposition</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.read_with_override_content_type"></a>
+ <a class="headerlink" href="#Capability.write_with_content_disposition"></a>
- <div class="docstring"><p>if operator supports read with override content type.</p>
+ <div class="docstring"><p>If operator supports write with content disposition.</p>
</div>
</div>
- <div id="Capability.presign_stat" class="classattr">
+ <div id="Capability.write_total_max_size" class="classattr">
<div class="attr variable">
- <span class="name">presign_stat</span><span class="annotation">: bool</span>
+ <span class="name">write_total_max_size</span><span class="annotation">: Optional[int]</span>
</div>
- <a class="headerlink" href="#Capability.presign_stat"></a>
+ <a class="headerlink" href="#Capability.write_total_max_size"></a>
- <div class="docstring"><p>If operator supports presign stat.</p>
+ <div class="docstring"><p>write_total_max_size is the max size that services support in write_total.</p>
+
+<p>For example, Cloudflare D1 supports 1MB as max in write_total.</p>
</div>
</div>
- <div id="Capability.write_with_content_disposition" class="classattr">
+ <div id="Capability.read_with_override_content_type" class="classattr">
<div class="attr variable">
- <span class="name">write_with_content_disposition</span><span class="annotation">: bool</span>
+ <span class="name">read_with_override_content_type</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_with_content_disposition"></a>
+ <a class="headerlink" href="#Capability.read_with_override_content_type"></a>
- <div class="docstring"><p>If operator supports write with content disposition.</p>
+ <div class="docstring"><p>if operator supports read with override content type.</p>
</div>
</div>
- <div id="Capability.copy" class="classattr">
+ <div id="Capability.stat_with_if_none_match" class="classattr">
<div class="attr variable">
- <span class="name">copy</span><span class="annotation">: bool</span>
+ <span class="name">stat_with_if_none_match</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.copy"></a>
+ <a class="headerlink" href="#Capability.stat_with_if_none_match"></a>
- <div class="docstring"><p>If operator supports copy.</p>
+ <div class="docstring"><p>If operator supports stat with if none match.</p>
</div>
</div>
- <div id="Capability.write_multi_align_size" class="classattr">
+ <div id="Capability.read_with_if_match" class="classattr">
<div class="attr variable">
- <span class="name">write_multi_align_size</span><span class="annotation">: Optional[int]</span>
+ <span class="name">read_with_if_match</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_multi_align_size"></a>
+ <a class="headerlink" href="#Capability.read_with_if_match"></a>
- <div class="docstring"><p>write_multi_align_size is the align size that services required in write_multi.</p>
+ <div class="docstring"><p>If operator supports read with if match.</p>
+</div>
-<p>For example, Google GCS requires align size to 256KiB in write_multi.</p>
+
+ </div>
+ <div id="Capability.write_with_cache_control" class="classattr">
+ <div class="attr variable">
+ <span class="name">write_with_cache_control</span><span class="annotation">: bool</span>
+
+
+ </div>
+ <a class="headerlink" href="#Capability.write_with_cache_control"></a>
+
+ <div class="docstring"><p>If operator supports write with cache control.</p>
</div>
</div>
- <div id="Capability.batch" class="classattr">
+ <div id="Capability.write_multi_max_size" class="classattr">
<div class="attr variable">
- <span class="name">batch</span><span class="annotation">: bool</span>
+ <span class="name">write_multi_max_size</span><span class="annotation">: Optional[int]</span>
</div>
- <a class="headerlink" href="#Capability.batch"></a>
+ <a class="headerlink" href="#Capability.write_multi_max_size"></a>
- <div class="docstring"><p>If operator supports batch.</p>
+ <div class="docstring"><p>write_multi_max_size is the max size that services support in write_multi.</p>
+
+<p>For example, AWS S3 supports 5GiB as max in write_multi.</p>
</div>
@@ -1706,281 +1721,277 @@ by current Operator.</p>
</div>
- <div id="Capability.stat" class="classattr">
+ <div id="Capability.read_with_if_none_match" class="classattr">
<div class="attr variable">
- <span class="name">stat</span><span class="annotation">: bool</span>
+ <span class="name">read_with_if_none_match</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.stat"></a>
+ <a class="headerlink" href="#Capability.read_with_if_none_match"></a>
- <div class="docstring"><p>If operator supports stat.</p>
+ <div class="docstring"><p>If operator supports read with if none match.</p>
</div>
</div>
- <div id="Capability.rename" class="classattr">
+ <div id="Capability.batch" class="classattr">
<div class="attr variable">
- <span class="name">rename</span><span class="annotation">: bool</span>
+ <span class="name">batch</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.rename"></a>
+ <a class="headerlink" href="#Capability.batch"></a>
- <div class="docstring"><p>If operator supports rename.</p>
+ <div class="docstring"><p>If operator supports batch.</p>
</div>
</div>
- <div id="Capability.write_multi_min_size" class="classattr">
+ <div id="Capability.presign_read" class="classattr">
<div class="attr variable">
- <span class="name">write_multi_min_size</span><span class="annotation">: Optional[int]</span>
+ <span class="name">presign_read</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_multi_min_size"></a>
+ <a class="headerlink" href="#Capability.presign_read"></a>
- <div class="docstring"><p>write_multi_min_size is the min size that services support in write_multi.</p>
-
-<p>For example, AWS S3 requires at least 5MiB in write_multi expect the last one.</p>
+ <div class="docstring"><p>If operator supports presign read.</p>
</div>
</div>
- <div id="Capability.blocking" class="classattr">
+ <div id="Capability.presign_stat" class="classattr">
<div class="attr variable">
- <span class="name">blocking</span><span class="annotation">: bool</span>
+ <span class="name">presign_stat</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.blocking"></a>
+ <a class="headerlink" href="#Capability.presign_stat"></a>
- <div class="docstring"><p>If operator supports blocking.</p>
+ <div class="docstring"><p>If operator supports presign stat.</p>
</div>
</div>
- <div id="Capability.read_with_if_match" class="classattr">
+ <div id="Capability.write_multi_min_size" class="classattr">
<div class="attr variable">
- <span class="name">read_with_if_match</span><span class="annotation">: bool</span>
+ <span class="name">write_multi_min_size</span><span class="annotation">: Optional[int]</span>
</div>
- <a class="headerlink" href="#Capability.read_with_if_match"></a>
+ <a class="headerlink" href="#Capability.write_multi_min_size"></a>
- <div class="docstring"><p>If operator supports read with if match.</p>
+ <div class="docstring"><p>write_multi_min_size is the min size that services support in write_multi.</p>
+
+<p>For example, AWS S3 requires at least 5MiB in write_multi expect the last one.</p>
</div>
</div>
- <div id="Capability.write_can_multi" class="classattr">
+ <div id="Capability.batch_delete" class="classattr">
<div class="attr variable">
- <span class="name">write_can_multi</span><span class="annotation">: bool</span>
+ <span class="name">batch_delete</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_can_multi"></a>
+ <a class="headerlink" href="#Capability.batch_delete"></a>
- <div class="docstring"><p>If operator supports write can be called in multi times.</p>
+ <div class="docstring"><p>If operator supports batch delete.</p>
</div>
</div>
- <div id="Capability.list_with_start_after" class="classattr">
+ <div id="Capability.batch_max_operations" class="classattr">
<div class="attr variable">
- <span class="name">list_with_start_after</span><span class="annotation">: bool</span>
+ <span class="name">batch_max_operations</span><span class="annotation">: Optional[int]</span>
</div>
- <a class="headerlink" href="#Capability.list_with_start_after"></a>
+ <a class="headerlink" href="#Capability.batch_max_operations"></a>
- <div class="docstring"><p>If backend supports list with start after.</p>
+ <div class="docstring"><p>The max operations that operator supports in batch.</p>
</div>
</div>
- <div id="Capability.write_total_max_size" class="classattr">
+ <div id="Capability.rename" class="classattr">
<div class="attr variable">
- <span class="name">write_total_max_size</span><span class="annotation">: Optional[int]</span>
+ <span class="name">rename</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_total_max_size"></a>
+ <a class="headerlink" href="#Capability.rename"></a>
- <div class="docstring"><p>write_total_max_size is the max size that services support in write_total.</p>
-
-<p>For example, Cloudflare D1 supports 1MB as max in write_total.</p>
+ <div class="docstring"><p>If operator supports rename.</p>
</div>
</div>
- <div id="Capability.write_can_append" class="classattr">
+ <div id="Capability.write_with_content_type" class="classattr">
<div class="attr variable">
- <span class="name">write_can_append</span><span class="annotation">: bool</span>
+ <span class="name">write_with_content_type</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_can_append"></a>
+ <a class="headerlink" href="#Capability.write_with_content_type"></a>
- <div class="docstring"><p>If operator supports write by append.</p>
+ <div class="docstring"><p>If operator supports write with content type.</p>
</div>
</div>
- <div id="Capability.write_can_empty" class="classattr">
+ <div id="Capability.stat_with_if_match" class="classattr">
<div class="attr variable">
- <span class="name">write_can_empty</span><span class="annotation">: bool</span>
+ <span class="name">stat_with_if_match</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_can_empty"></a>
+ <a class="headerlink" href="#Capability.stat_with_if_match"></a>
- <div class="docstring"><p>If operator supports write with empty content.</p>
+ <div class="docstring"><p>If operator supports stat with if match.</p>
</div>
</div>
- <div id="Capability.list_with_recursive" class="classattr">
+ <div id="Capability.write_can_append" class="classattr">
<div class="attr variable">
- <span class="name">list_with_recursive</span><span class="annotation">: bool</span>
+ <span class="name">write_can_append</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.list_with_recursive"></a>
+ <a class="headerlink" href="#Capability.write_can_append"></a>
- <div class="docstring"><p>If backend supports list without delimiter.</p>
+ <div class="docstring"><p>If operator supports write by append.</p>
</div>
</div>
- <div id="Capability.presign_write" class="classattr">
+ <div id="Capability.copy" class="classattr">
<div class="attr variable">
- <span class="name">presign_write</span><span class="annotation">: bool</span>
+ <span class="name">copy</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.presign_write"></a>
+ <a class="headerlink" href="#Capability.copy"></a>
- <div class="docstring"><p>If operator supports presign write.</p>
+ <div class="docstring"><p>If operator supports copy.</p>
</div>
</div>
- <div id="Capability.presign" class="classattr">
+ <div id="Capability.presign_write" class="classattr">
<div class="attr variable">
- <span class="name">presign</span><span class="annotation">: bool</span>
+ <span class="name">presign_write</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.presign"></a>
+ <a class="headerlink" href="#Capability.presign_write"></a>
- <div class="docstring"><p>If operator supports presign.</p>
+ <div class="docstring"><p>If operator supports presign write.</p>
</div>
</div>
- <div id="Capability.stat_with_if_none_match" class="classattr">
+ <div id="Capability.list" class="classattr">
<div class="attr variable">
- <span class="name">stat_with_if_none_match</span><span class="annotation">: bool</span>
+ <span class="name">list</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.stat_with_if_none_match"></a>
+ <a class="headerlink" href="#Capability.list"></a>
- <div class="docstring"><p>If operator supports stat with if none match.</p>
+ <div class="docstring"><p>If operator supports list.</p>
</div>
</div>
- <div id="Capability.write" class="classattr">
+ <div id="Capability.stat" class="classattr">
<div class="attr variable">
- <span class="name">write</span><span class="annotation">: bool</span>
+ <span class="name">stat</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write"></a>
+ <a class="headerlink" href="#Capability.stat"></a>
- <div class="docstring"><p>If operator supports write.</p>
+ <div class="docstring"><p>If operator supports stat.</p>
</div>
</div>
- <div id="Capability.write_multi_max_size" class="classattr">
+ <div id="Capability.delete" class="classattr">
<div class="attr variable">
- <span class="name">write_multi_max_size</span><span class="annotation">: Optional[int]</span>
+ <span class="name">delete</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_multi_max_size"></a>
+ <a class="headerlink" href="#Capability.delete"></a>
- <div class="docstring"><p>write_multi_max_size is the max size that services support in write_multi.</p>
-
-<p>For example, AWS S3 supports 5GiB as max in write_multi.</p>
+ <div class="docstring"><p>If operator supports delete.</p>
</div>
</div>
- <div id="Capability.presign_read" class="classattr">
+ <div id="Capability.list_with_recursive" class="classattr">
<div class="attr variable">
- <span class="name">presign_read</span><span class="annotation">: bool</span>
+ <span class="name">list_with_recursive</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.presign_read"></a>
+ <a class="headerlink" href="#Capability.list_with_recursive"></a>
- <div class="docstring"><p>If operator supports presign read.</p>
+ <div class="docstring"><p>If backend supports list without delimiter.</p>
</div>
</div>
- <div id="Capability.read_with_override_content_disposition" class="classattr">
+ <div id="Capability.list_with_limit" class="classattr">
<div class="attr variable">
- <span class="name">read_with_override_content_disposition</span><span class="annotation">: bool</span>
+ <span class="name">list_with_limit</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.read_with_override_content_disposition"></a>
+ <a class="headerlink" href="#Capability.list_with_limit"></a>
- <div class="docstring"><p>if operator supports read with override content disposition.</p>
+ <div class="docstring"><p>If backend supports list with limit.</p>
</div>
</div>
- <div id="Capability.stat_with_if_match" class="classattr">
+ <div id="Capability.blocking" class="classattr">
<div class="attr variable">
- <span class="name">stat_with_if_match</span><span class="annotation">: bool</span>
+ <span class="name">blocking</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.stat_with_if_match"></a>
+ <a class="headerlink" href="#Capability.blocking"></a>
- <div class="docstring"><p>If operator supports stat with if match.</p>
+ <div class="docstring"><p>If operator supports blocking.</p>
</div>
</div>
- <div id="Capability.write_with_content_type" class="classattr">
+ <div id="Capability.read_with_override_cache_control" class="classattr">
<div class="attr variable">
- <span class="name">write_with_content_type</span><span class="annotation">: bool</span>
+ <span class="name">read_with_override_cache_control</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_with_content_type"></a>
+ <a class="headerlink" href="#Capability.read_with_override_cache_control"></a>
- <div class="docstring"><p>If operator supports write with content type.</p>
+ <div class="docstring"><p>if operator supports read with override cache control.</p>
</div>
</div>
- <div id="Capability.read_with_if_none_match" class="classattr">
+ <div id="Capability.list_with_start_after" class="classattr">
<div class="attr variable">
- <span class="name">read_with_if_none_match</span><span class="annotation">: bool</span>
+ <span class="name">list_with_start_after</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.read_with_if_none_match"></a>
+ <a class="headerlink" href="#Capability.list_with_start_after"></a>
- <div class="docstring"><p>If operator supports read with if none match.</p>
+ <div class="docstring"><p>If backend supports list with start after.</p>
</div>
@@ -1998,80 +2009,69 @@ by current Operator.</p>
</div>
- <div id="Capability.write_with_cache_control" class="classattr">
+ <div id="Capability.write" class="classattr">
<div class="attr variable">
- <span class="name">write_with_cache_control</span><span class="annotation">: bool</span>
+ <span class="name">write</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_with_cache_control"></a>
+ <a class="headerlink" href="#Capability.write"></a>
- <div class="docstring"><p>If operator supports write with cache control.</p>
+ <div class="docstring"><p>If operator supports write.</p>
</div>
</div>
- <div id="Capability.list_with_limit" class="classattr">
+ <div id="Capability.read_with_override_content_disposition" class="classattr">
<div class="attr variable">
- <span class="name">list_with_limit</span><span class="annotation">: bool</span>
+ <span class="name">read_with_override_content_disposition</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.list_with_limit"></a>
+ <a class="headerlink" href="#Capability.read_with_override_content_disposition"></a>
- <div class="docstring"><p>If backend supports list with limit.</p>
+ <div class="docstring"><p>if operator supports read with override content disposition.</p>
</div>
</div>
- <div id="Capability.batch_max_operations" class="classattr">
+ <div id="Capability.write_can_multi" class="classattr">
<div class="attr variable">
- <span class="name">batch_max_operations</span><span class="annotation">: Optional[int]</span>
+ <span class="name">write_can_multi</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.batch_max_operations"></a>
+ <a class="headerlink" href="#Capability.write_can_multi"></a>
- <div class="docstring"><p>The max operations that operator supports in batch.</p>
+ <div class="docstring"><p>If operator supports write can be called in multi times.</p>
</div>
</div>
- <div id="Capability.batch_delete" class="classattr">
+ <div id="Capability.write_multi_align_size" class="classattr">
<div class="attr variable">
- <span class="name">batch_delete</span><span class="annotation">: bool</span>
+ <span class="name">write_multi_align_size</span><span class="annotation">: Optional[int]</span>
</div>
- <a class="headerlink" href="#Capability.batch_delete"></a>
+ <a class="headerlink" href="#Capability.write_multi_align_size"></a>
- <div class="docstring"><p>If operator supports batch delete.</p>
-</div>
-
-
- </div>
- <div id="Capability.read_with_override_cache_control" class="classattr">
- <div class="attr variable">
- <span class="name">read_with_override_cache_control</span><span class="annotation">: bool</span>
+ <div class="docstring"><p>write_multi_align_size is the align size that services required in write_multi.</p>
-
- </div>
- <a class="headerlink" href="#Capability.read_with_override_cache_control"></a>
-
- <div class="docstring"><p>if operator supports read with override cache control.</p>
+<p>For example, Google GCS requires align size to 256KiB in write_multi.</p>
</div>
</div>
- <div id="Capability.delete" class="classattr">
+ <div id="Capability.presign" class="classattr">
<div class="attr variable">
- <span class="name">delete</span><span class="annotation">: bool</span>
+ <span class="name">presign</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.delete"></a>
+ <a class="headerlink" href="#Capability.presign"></a>
- <div class="docstring"><p>If operator supports delete.</p>
+ <div class="docstring"><p>If operator supports presign.</p>
</div>
diff --git a/docs/python/search.js b/docs/python/search.js
index 7ed86aa458..b743813eae 100644
--- a/docs/python/search.js
+++ b/docs/python/search.js
@@ -1,6 +1,6 @@
window.pdocSearch = (function(){
/** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.wa [...]
- /** pdoc search index */const docs = {"version": "0.9.5", "fields": ["qualname", "fullname", "annotation", "default_value", "signature", "bases", "doc"], "ref": "fullname", "documentStore": {"docs": {"opendal": {"fullname": "opendal", "modulename": "opendal", "kind": "module", "doc": "<p>Apache OpenDAL\u2122 Python binding</p>\n\n<h2 id=\"installation\">Installation</h2>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code>pip<span class=\"w\"> </span>install<span class=\ [...]
+ /** pdoc search index */const docs = {"version": "0.9.5", "fields": ["qualname", "fullname", "annotation", "default_value", "signature", "bases", "doc"], "ref": "fullname", "documentStore": {"docs": {"opendal": {"fullname": "opendal", "modulename": "opendal", "kind": "module", "doc": "<p>Apache OpenDAL\u2122 Python binding</p>\n\n<h2 id=\"installation\">Installation</h2>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code>pip<span class=\"w\"> </span>install<span class=\ [...]
// mirrored in build-search-index.js (part 1)
// Also split on html tags. this is a cheap heuristic, but good enough.
diff --git a/docs/quickstart/index.html b/docs/quickstart/index.html
index d3851d595b..e4dfc9ac6c 100644
--- a/docs/quickstart/index.html
+++ b/docs/quickstart/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Quickstart | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/quickstart"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh=" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/rust/opendal/all.html b/docs/rust/opendal/all.html
index 4228b10cd2..d3596c490b 100644
--- a/docs/rust/opendal/all.html
+++ b/docs/rust/opendal/all.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of all items in this crate"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of all items in this crate"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/comparisons/vs_object_store/index.html b/docs/rust/opendal/docs/comparisons/vs_object_store/index.html
index 562af49def..3a4a058f30 100644
--- a/docs/rust/opendal/docs/comparisons/vs_object_store/index.html
+++ b/docs/rust/opendal/docs/comparisons/vs_object_store/index.html
@@ -48,7 +48,7 @@ object_store’s maintainers. So it could not be very objective.</p>
.get(<span class="kw-2">&</span>path)
.<span class="kw">await</span><span class="question-mark">?
</span>.into_stream();</code></pre></div>
-<p><code>opendal</code> has a similar trait called <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a></p>
+<p><code>opendal</code> has a similar trait called <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a></p>
<p>But <code>opendal</code> don’t expose this trait to end users directly. Instead, <code>opendal</code> expose a new struct called <a href="../../../struct.Operator.html" title="struct opendal::Operator"><code>Operator</code></a> and builds public API on it.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>op: Operator = Operator::from_env(Scheme::S3)<span class="question-mark">?</span>;
diff --git a/docs/rust/opendal/docs/concepts/index.html b/docs/rust/opendal/docs/concepts/index.html
index c69a9cec3c..2f2d939fa7 100644
--- a/docs/rust/opendal/docs/concepts/index.html
+++ b/docs/rust/opendal/docs/concepts/index.html
@@ -31,7 +31,7 @@ general name. For example, we will rename <code>S3Builder</code> to <code>S3</co
builder.bucket(<span class="string">"example"</span>);
builder.root(<span class="string">"/path/to/file"</span>);</code></pre></div>
<h2 id="operator"><a class="doc-anchor" href="#operator">§</a>Operator</h2>
-<p>The <a href="../../struct.Operator.html" title="struct opendal::Operator"><code>Operator</code></a> is a delegate for Service, the underlying implementation detail that implements <a href="../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a>,
+<p>The <a href="../../struct.Operator.html" title="struct opendal::Operator"><code>Operator</code></a> is a delegate for Service, the underlying implementation detail that implements <a href="../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a>,
and it also provides one unified access interface.
It will hold one reference of Service with its all generic types erased by OpenDAL,
which is the reason why we say the Operator is the delegate of one Service.</p>
diff --git a/docs/rust/opendal/docs/internals/accessor/index.html b/docs/rust/opendal/docs/internals/accessor/index.html
index e3d526ed5c..2d42777589 100644
--- a/docs/rust/opendal/docs/internals/accessor/index.html
+++ b/docs/rust/opendal/docs/internals/accessor/index.html
@@ -1,8 +1,8 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The internal implementation details of `Accessor`."><title>opendal::docs::internals::accessor - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2, [...]
-<p><a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> is the core trait of OpenDAL’s raw API. We operate
-underlying storage services via APIs provided by <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a>.</p>
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The internal implementation details of `Access`."><title>opendal::docs::internals::accessor - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi [...]
+<p><a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> is the core trait of OpenDAL’s raw API. We operate
+underlying storage services via APIs provided by <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a>.</p>
<h2 id="introduction"><a class="doc-anchor" href="#introduction">§</a>Introduction</h2>
-<p><a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> can be split in the following parts:</p>
+<p><a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> can be split in the following parts:</p>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="comment">// Attributes
</span><span class="attr">#[async_trait]
@@ -17,9 +17,9 @@ underlying storage services via APIs provided by <a href="../../../raw/trait.Acc
</span><span class="kw">async fn </span>hello(<span class="kw-2">&</span><span class="self">self</span>, path: <span class="kw-2">&</span>str, args: OpCreate) -> <span class="prelude-ty">Result</span><RpCreate>;
<span class="kw">async fn </span>world(<span class="kw-2">&</span><span class="self">self</span>, path: <span class="kw-2">&</span>str, args: OpCreate) -> <span class="prelude-ty">Result</span><RpCreate>;
}</code></pre></div>
-<p>Let’s go deep into <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> line by line.</p>
+<p>Let’s go deep into <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> line by line.</p>
<h3 id="async-trait"><a class="doc-anchor" href="#async-trait">§</a>Async Trait</h3>
-<p>At the first line of <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a>, we will read:</p>
+<p>At the first line of <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a>, we will read:</p>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="attr">#[async_trait]</span></code></pre></div>
<p>This is an attribute from <a href="https://docs.rs/async-trait/latest/async_trait/"><code>async_trait</code></a>. By using this attribute, we can write the following code without use nightly feature.</p>
@@ -37,10 +37,10 @@ underlying storage services via APIs provided by <a href="../../../raw/trait.Acc
}</code></pre></div>
<p>It’s not zero cost, and we will improve this part once the related features are stabilised.</p>
<h3 id="trait-bound"><a class="doc-anchor" href="#trait-bound">§</a>Trait Bound</h3>
-<p>Then we will read the declare of <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> trait:</p>
+<p>Then we will read the declare of <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> trait:</p>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">pub trait </span>Accessor: Send + Sync + Debug + Unpin + <span class="lifetime">'static </span>{}</code></pre></div>
-<p>There are many trait boundings here. For now, <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> requires the following bound:</p>
+<p>There are many trait boundings here. For now, <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> requires the following bound:</p>
<ul>
<li><a href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send"><code>Send</code></a>: Allow user to send between threads without extra wrapper.</li>
<li><a href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync"><code>Sync</code></a>: Allow user to sync between threads without extra lock.</li>
@@ -54,10 +54,10 @@ underlying storage services via APIs provided by <a href="../../../raw/trait.Acc
<li>Make sure the backend is <code>Send</code> and <code>Sync</code>, wrap the internal struct with <code>Arc<Mutex<T>></code> if necessary.</li>
</ul>
<h3 id="associated-type"><a class="doc-anchor" href="#associated-type">§</a>Associated Type</h3>
-<p>The first block of <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> trait is our associated types. We
+<p>The first block of <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> trait is our associated types. We
require implementers to specify the type to be returned, thus avoiding
the additional overhead of dynamic dispatch.</p>
-<p><a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> has four associated type so far:</p>
+<p><a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> has four associated type so far:</p>
<ul>
<li><code>Reader</code>: reader returned by <code>read</code> operation.</li>
<li><code>BlockingReader</code>: reader returned by <code>blocking_read</code> operation.</li>
@@ -70,16 +70,16 @@ the additional overhead of dynamic dispatch.</p>
<li>Use <code>()</code> as type if the operation is not supported.</li>
</ul>
<h3 id="api-style"><a class="doc-anchor" href="#api-style">§</a>API Style</h3>
-<p>Every API of <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> follows the same style:</p>
+<p>Every API of <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> follows the same style:</p>
<ul>
<li>All APIs have a unique <a href="../../../raw/enum.Operation.html" title="enum opendal::raw::Operation"><code>Operation</code></a> and <a href="../../../struct.Capability.html" title="struct opendal::Capability"><code>Capability</code></a></li>
<li>All APIs are orthogonal and do not overlap with each other</li>
<li>Most APIs accept <code>path</code> and <code>OpXxx</code>, and returns <code>RpXxx</code>.</li>
<li>Most APIs have <code>async</code> and <code>blocking</code> variants, they share the same semantics but may have different underlying implementations.</li>
</ul>
-<p><a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> can declare their capabilities via <a href="../../../raw/struct.AccessorInfo.html" title="struct opendal::raw::AccessorInfo"><code>AccessorInfo</code></a>’s <code>set_capability</code>:</p>
+<p><a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> can declare their capabilities via <a href="crate::raw::AccessInfo"><code>AccessorInfo</code></a>’s <code>set_capability</code>:</p>
-<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">impl </span>Accessor <span class="kw">for </span>MyBackend {
+<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">impl </span>Access <span class="kw">for </span>MyBackend {
<span class="kw">fn </span>metadata(<span class="kw-2">&</span><span class="self">self</span>) -> AccessorInfo {
<span class="kw">let </span><span class="kw-2">mut </span>am = AccessorInfo::default();
am.set_capability(
@@ -92,7 +92,7 @@ the additional overhead of dynamic dispatch.</p>
am
}
}</code></pre></div>
-<p>Now that you have mastered <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a>, let’s go and implement our own backend!</p>
+<p>Now that you have mastered <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a>, let’s go and implement our own backend!</p>
<h2 id="tutorial"><a class="doc-anchor" href="#tutorial">§</a>Tutorial</h2>
<p>This tutorial implements a <code>duck</code> storage service that sends API
requests to a super-powered duck. Gagaga!</p>
@@ -207,7 +207,7 @@ angry ducks.</p>
<p><code>DuckBuilder</code> is ready now, let’s try to play with real ducks!</p>
<h3 id="backend"><a class="doc-anchor" href="#backend">§</a>Backend</h3>
<p>I’m sure you can see it already: <code>DuckBuilder</code> will build a
-<code>DuckBackend</code> that implements <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a>. The backend is what we used
+<code>DuckBackend</code> that implements <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a>. The backend is what we used
to communicate with the super-powered ducks!</p>
<p>Let’s keep adding more code under <code>backend.rs</code>:</p>
@@ -218,7 +218,7 @@ to communicate with the super-powered ducks!</p>
}
<span class="attr">#[async_trait]
-</span><span class="kw">impl </span>Accessor <span class="kw">for </span>DuckBackend {
+</span><span class="kw">impl </span>Access <span class="kw">for </span>DuckBackend {
<span class="kw">type </span>Reader = DuckReader;
<span class="kw">type </span>BlockingReader = ();
<span class="kw">type </span>Writer = ();
@@ -243,7 +243,7 @@ to communicate with the super-powered ducks!</p>
<span class="macro">gagaga!</span>()
}
}</code></pre></div>
-<p>Congratulations, we have implemented an <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> that can talk to
+<p>Congratulations, we have implemented an <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> that can talk to
Super Power Ducks!</p>
<p>What!? There are no Super Power Ducks? So sad, but never mind, we have
really powerful storage services <a href="https://github.com/apache/opendal/issues/5">here</a>. Welcome to pick one to implement. I promise you won’t
diff --git a/docs/rust/opendal/docs/internals/index.html b/docs/rust/opendal/docs/internals/index.html
index 316ccbef2b..0cf9700956 100644
--- a/docs/rust/opendal/docs/internals/index.html
+++ b/docs/rust/opendal/docs/internals/index.html
@@ -2,19 +2,19 @@
<p>OpenDAL has provides unified abstraction via two-level API sets:</p>
<ul>
<li>Public API like <a href="../../struct.Operator.html" title="struct opendal::Operator"><code>Operator</code></a> provides user level API.</li>
-<li>Raw API like <a href="../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a>, <a href="../../raw/trait.Layer.html" title="trait opendal::raw::Layer"><code>Layer</code></a> provides developer level API.</li>
+<li>Raw API like <a href="../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a>, <a href="../../raw/trait.Layer.html" title="trait opendal::raw::Layer"><code>Layer</code></a> provides developer level API.</li>
</ul>
<p>OpenDAL tries it’s best to keep the public API stable. But raw APIs
may change between minor releases from time to time. So most users
should only use the public API. And only developers need to implement
-with raw API to implement a new service <a href="../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> or their own
+with raw API to implement a new service <a href="../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> or their own
<a href="../../raw/trait.Layer.html" title="trait opendal::raw::Layer"><code>Layer</code></a>.</p>
<p>In this section, we will talk about the following components:</p>
<ul>
-<li><a href="accessor/index.html" title="mod opendal::docs::internals::accessor"><code>Accessor</code></a>: to connect underlying storage services.</li>
+<li><a href="accessor/index.html" title="mod opendal::docs::internals::accessor"><code>Access</code></a>: to connect underlying storage services.</li>
<li><a href="layer/index.html" title="mod opendal::docs::internals::layer"><code>Layer</code></a>: middleware/interceptor between storage services.</li>
</ul>
-<p>The relation between <a href="../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a>, <a href="../../raw/trait.Layer.html" title="trait opendal::raw::Layer"><code>Layer</code></a> and <a href="../../struct.Operator.html" title="struct opendal::Operator"><code>Operator</code></a> looks like the following:</p>
+<p>The relation between <a href="../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a>, <a href="../../raw/trait.Layer.html" title="trait opendal::raw::Layer"><code>Layer</code></a> and <a href="../../struct.Operator.html" title="struct opendal::Operator"><code>Operator</code></a> looks like the following:</p>
<div class="example-wrap"><pre class="language-text"><code>┌─────────────────────────────────────────────────┬──────────┐
│ │ │
│ ┌──────────┐ ┌────────┐ │ │
@@ -30,4 +30,4 @@ with raw API to implement a new service <a href="../../raw/trait.Accessor.html"
│ └──────────┘ └──────┘ │ │
│ │ │
└─────────────────────────────────────────────────┴──────────┘
-</code></pre></div></div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="mod" href="accessor/index.html" title="mod opendal::docs::internals::accessor">accessor</a></div><div class="desc docblock-short">The internal implementation details of <a href="../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a>.</div></li><li><div class="item-na [...]
\ No newline at end of file
+</code></pre></div></div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="mod" href="accessor/index.html" title="mod opendal::docs::internals::accessor">accessor</a></div><div class="desc docblock-short">The internal implementation details of <a href="../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a>.</div></li><li><div class="item-name"><a [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/internals/layer/index.html b/docs/rust/opendal/docs/internals/layer/index.html
index de3c67a5ef..962cabab92 100644
--- a/docs/rust/opendal/docs/internals/layer/index.html
+++ b/docs/rust/opendal/docs/internals/layer/index.html
@@ -1,18 +1,18 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The internal implementation details of `Layer`."><title>opendal::docs::internals::layer - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
<p><a href="../../../raw/trait.Layer.html" title="trait opendal::raw::Layer"><code>Layer</code></a> itself is quite simple:</p>
-<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">pub trait </span>Layer<A: Accessor> {
- <span class="kw">type </span>LayeredAccessor: Accessor;
+<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">pub trait </span>Layer<A: Access> {
+ <span class="kw">type </span>LayeredAccess: Accessor;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor;
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess;
}</code></pre></div>
-<p><code>XxxLayer</code> will wrap input <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> as inner and return a new <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a>. So normally the implementation of <a href="../../../raw/trait.Layer.html" title="trait opendal::raw::Layer"><code>Layer</code></a> will be split into two parts:</p>
+<p><code>XxxLayer</code> will wrap input <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> as inner and return a new <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a>. So normally the implementation of <a href="../../../raw/trait.Layer.html" title="trait opendal::raw::Layer"><code>Layer</code></a> will be split into two parts:</p>
<ul>
-<li><code>XxxLayer</code> will implement <a href="../../../raw/trait.Layer.html" title="trait opendal::raw::Layer"><code>Layer</code></a> and return <code>XxxAccessor</code> as <code>Self::LayeredAccessor</code>.</li>
-<li><code>XxxAccessor</code> will implement <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> and be built by <code>XxxLayer</code>.</li>
+<li><code>XxxLayer</code> will implement <a href="../../../raw/trait.Layer.html" title="trait opendal::raw::Layer"><code>Layer</code></a> and return <code>XxxAccessor</code> as <code>Self::LayeredAccess</code>.</li>
+<li><code>XxxAccessor</code> will implement <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> and be built by <code>XxxLayer</code>.</li>
</ul>
-<p>Most layer only implements part of <a href="../../../raw/trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a>, so we provide
-<a href="../../../raw/trait.LayeredAccessor.html" title="trait opendal::raw::LayeredAccessor"><code>LayeredAccessor</code></a> which will forward all unimplemented methods to
-<code>inner</code>. It’s highly recommend to implement <a href="../../../raw/trait.LayeredAccessor.html" title="trait opendal::raw::LayeredAccessor"><code>LayeredAccessor</code></a> trait
+<p>Most layer only implements part of <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a>, so we provide
+<a href="../../../raw/trait.LayeredAccess.html" title="trait opendal::raw::LayeredAccess"><code>LayeredAccess</code></a> which will forward all unimplemented methods to
+<code>inner</code>. It’s highly recommend to implement <a href="../../../raw/trait.LayeredAccess.html" title="trait opendal::raw::LayeredAccess"><code>LayeredAccess</code></a> trait
instead.</p>
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/layers/struct.AsyncBacktraceLayer.html b/docs/rust/opendal/layers/struct.AsyncBacktraceLayer.html
index 26f62872a8..2aeb60c468 100644
--- a/docs/rust/opendal/layers/struct.AsyncBacktraceLayer.html
+++ b/docs/rust/opendal/layers/struct.AsyncBacktraceLayer.html
@@ -13,7 +13,7 @@ Read more about <a href="https://docs.rs/async-backtrace/latest/async_backtrace/
.expect(<span class="string">"must init"</span>)
.layer(AsyncBacktraceLayer::default())
.finish();</code></pre></div>
-</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-AsyncBacktraceLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/async_backtrace.rs.html#43">source</a><a href="#impl-Clone-for-AsyncBacktraceLayer" class="anchor">§</a><h3 class="code-header">im [...]
+</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-AsyncBacktraceLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/async_backtrace.rs.html#43">source</a><a href="#impl-Clone-for-AsyncBacktraceLayer" class="anchor">§</a><h3 class="code-header">im [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.AwaitTreeLayer.html b/docs/rust/opendal/layers/struct.AwaitTreeLayer.html
index e8b15ab96d..d4349788d6 100644
--- a/docs/rust/opendal/layers/struct.AwaitTreeLayer.html
+++ b/docs/rust/opendal/layers/struct.AwaitTreeLayer.html
@@ -15,7 +15,7 @@ Read more about <a href="https://docs.rs/await-tree/latest/await_tree/">await-tr
.layer(AwaitTreeLayer::new())
.finish();</code></pre></div>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AwaitTreeLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/await_tree.rs.html#48-53">source</a><a href="#impl-AwaitTreeLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.AwaitTreeLayer.html" t [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-AwaitTreeLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/await_tree.rs.html#45">source</a><a href="#impl-Clone-for-AwaitTreeLayer" class="anchor">§</a><h3 class="code-hea [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-AwaitTreeLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/await_tree.rs.html#45">source</a><a href="#impl-Clone-for-AwaitTreeLayer" class="anchor">§</a><h3 class="code-hea [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.BlockingLayer.html b/docs/rust/opendal/layers/struct.BlockingLayer.html
index 7691be51a5..e5d870c0ae 100644
--- a/docs/rust/opendal/layers/struct.BlockingLayer.html
+++ b/docs/rust/opendal/layers/struct.BlockingLayer.html
@@ -97,7 +97,7 @@ runtime on demand.</p>
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/blocking.rs.html#140-148">source</a><a href="#impl-BlockingLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.BlockingLayer.html" titl [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-BlockingLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/blocking.rs.html#135">source</a><a href="#impl-Clone-for-BlockingLayer" class="anchor">§</a><h3 class="code-header [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-BlockingLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/blocking.rs.html#135">source</a><a href="#impl-Clone-for-BlockingLayer" class="anchor">§</a><h3 class="code-header [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.ChaosLayer.html b/docs/rust/opendal/layers/struct.ChaosLayer.html
index 7b556ffc13..80be0080aa 100644
--- a/docs/rust/opendal/layers/struct.ChaosLayer.html
+++ b/docs/rust/opendal/layers/struct.ChaosLayer.html
@@ -22,7 +22,7 @@ be added in the future.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ChaosLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/chaos.rs.html#64-77">source</a><a href="#impl-ChaosLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ChaosLayer.html" title="struct open [...]
<h5 id="panics"><a class="doc-anchor" href="#panics">§</a>Panics</h5>
<p>Input error_ratio must in [0.0..=1.0]</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ChaosLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/chaos.rs.html#59">source</a><a href="#impl-Clone-for-ChaosLayer" class="anchor">§</a><h3 class="code-header">impl <a [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ChaosLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/chaos.rs.html#59">source</a><a href="#impl-Clone-for-ChaosLayer" class="anchor">§</a><h3 class="code-header">impl <a [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html b/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html
index c854962736..218a47ca35 100644
--- a/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html
+++ b/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html
@@ -14,7 +14,7 @@ between OpenDAL and underlying storage services.</p>
.layer(ConcurrentLimitLayer::new(<span class="number">1024</span>))
.finish();</code></pre></div>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ConcurrentLimitLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/concurrent_limit.rs.html#53-58">source</a><a href="#impl-ConcurrentLimitLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Conc [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ConcurrentLimitLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/concurrent_limit.rs.html#48">source</a><a href="#impl-Clone-for-ConcurrentLimitLayer" class="anchor">§</a>< [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ConcurrentLimitLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/concurrent_limit.rs.html#48">source</a><a href="#impl-Clone-for-ConcurrentLimitLayer" class="anchor">§</a>< [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.DtraceLayer.html b/docs/rust/opendal/layers/struct.DtraceLayer.html
index ad7434c55e..970bb3e0a3 100644
--- a/docs/rust/opendal/layers/struct.DtraceLayer.html
+++ b/docs/rust/opendal/layers/struct.DtraceLayer.html
@@ -134,7 +134,7 @@ async fn main() -> Result<()> {
Location: 0x00000000000f9546, Base: 0x0000000000000000, Semaphore: 0x0000000000364a2a
Arguments: -8@%rax
stapsdt 0x0000003c NT_STAPSDT (SystemTap probe descriptors)
-</code></pre></div></div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-DtraceLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/dtrace.rs.html#168">source</a><a href="#impl-Clone-for-DtraceLayer" class="anchor">§</a><h3 class="code-header">impl <a [...]
+</code></pre></div></div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-DtraceLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/dtrace.rs.html#168">source</a><a href="#impl-Clone-for-DtraceLayer" class="anchor">§</a><h3 class="code-header">impl <a [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html b/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html
index d25c0134e1..8388d27480 100644
--- a/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html
+++ b/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html
@@ -20,7 +20,7 @@
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ImmutableIndexLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/immutable_index.rs.html#54-67">source</a><a href="#impl-ImmutableIndexLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Immutab [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.extend_iter" class="method"><a class="src rightside" href="../../src/opendal/layers/immutable_index.rs.html#61-66">source</a><h4 class="code-header">pub fn <a href="#method.extend_iter" class="fn">extend_iter</a><I>(&mut self, iter: I)<div class="where">where
I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,</div></h4></section></summary><div class="docblock"><p>Insert keys from iter.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ImmutableIndexLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/immutable_index.rs.html#49">source</a><a href="#impl-Clone-for-ImmutableIndexLayer" class="anchor">§</a><h3 [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ImmutableIndexLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/immutable_index.rs.html#49">source</a><a href="#impl-Clone-for-ImmutableIndexLayer" class="anchor">§</a><h3 [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.LoggingLayer.html b/docs/rust/opendal/layers/struct.LoggingLayer.html
index 726c62f6d0..a5a1df4dea 100644
--- a/docs/rust/opendal/layers/struct.LoggingLayer.html
+++ b/docs/rust/opendal/layers/struct.LoggingLayer.html
@@ -46,7 +46,7 @@
<li>When the error is an expected error, backtrace will not be output.</li>
<li>backtrace output is disable by default.</li>
</ul>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-LoggingLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/logging.rs.html#84">source</a><a href="#impl-Clone-for-LoggingLayer" class="anchor">§</a><h3 class="code-header">im [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-LoggingLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/logging.rs.html#84">source</a><a href="#impl-Clone-for-LoggingLayer" class="anchor">§</a><h3 class="code-header">im [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.MadsimLayer.html b/docs/rust/opendal/layers/struct.MadsimLayer.html
index b0ca71ab81..28e9dc62b5 100644
--- a/docs/rust/opendal/layers/struct.MadsimLayer.html
+++ b/docs/rust/opendal/layers/struct.MadsimLayer.html
@@ -47,7 +47,7 @@ async fn deterministic_simulation_test() {
<p>To enable logging output, please set <code>RUSTFLAGS="--cfg madsim"</code>:</p>
<div class="example-wrap"><pre class="language-shell"><code>RUSTFLAGS="--cfg madsim" cargo test
</code></pre></div></div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-MadsimLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/madsim.rs.html#107-121">source</a><a href="#impl-MadsimLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.MadsimLayer [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-MadsimLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/madsim.rs.html#101">source</a><a href="#impl-Clone-for-MadsimLayer" class="anchor">§</a><h3 class="code-header">impl [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-MadsimLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/madsim.rs.html#101">source</a><a href="#impl-Clone-for-MadsimLayer" class="anchor">§</a><h3 class="code-header">impl [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.MetricsLayer.html b/docs/rust/opendal/layers/struct.MetricsLayer.html
index 9064664c93..8aca516a29 100644
--- a/docs/rust/opendal/layers/struct.MetricsLayer.html
+++ b/docs/rust/opendal/layers/struct.MetricsLayer.html
@@ -37,7 +37,7 @@ builder.install().expect(<span class="string">"failed to install recorder/export
<span class="kw">let </span>handle = builder.install_recorder().expect(<span class="string">"failed to install recorder"</span>);
<span class="kw">let </span>(recorder, exporter) = builder.build().expect(<span class="string">"failed to build recorder/exporter"</span>);
<span class="kw">let </span>recorder = builder.build_recorder().expect(<span class="string">"failed to build recorder"</span>);</code></pre></div>
-</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-MetricsLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/metrics.rs.html#112">source</a><a href="#impl-Clone-for-MetricsLayer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" h [...]
+</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-MetricsLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/metrics.rs.html#112">source</a><a href="#impl-Clone-for-MetricsLayer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" h [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.MinitraceLayer.html b/docs/rust/opendal/layers/struct.MinitraceLayer.html
index fbc0c4c138..90a8375dfa 100644
--- a/docs/rust/opendal/layers/struct.MinitraceLayer.html
+++ b/docs/rust/opendal/layers/struct.MinitraceLayer.html
@@ -62,7 +62,7 @@ let reporter =
minitrace::set_reporter(reporter, Config::default());
</code></pre></div>
<p>For real-world usage, please take a look at <a href="https://crates.io/crates/minitrace-datadog"><code>minitrace-datadog</code></a> or <a href="https://crates.io/crates/minitrace-jaeger"><code>minitrace-jaeger</code></a> .</p>
-</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Layer%3CA%3E-for-MinitraceLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/minitrace.rs.html#115-121">source</a><a href="#impl-Layer%3CA%3E-for-MinitraceLayer" class="anchor">§</a><h3 class="code-header" [...]
+</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Layer%3CA%3E-for-MinitraceLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/minitrace.rs.html#115-121">source</a><a href="#impl-Layer%3CA%3E-for-MinitraceLayer" class="anchor">§</a><h3 class="code-header" [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.OtelTraceLayer.html b/docs/rust/opendal/layers/struct.OtelTraceLayer.html
index 6f435b3ce0..4471b8ee04 100644
--- a/docs/rust/opendal/layers/struct.OtelTraceLayer.html
+++ b/docs/rust/opendal/layers/struct.OtelTraceLayer.html
@@ -9,7 +9,7 @@ let _ = Operator::new(services::Memory::default())
.expect("must init")
.layer(OtelTraceLayer)
.finish();
-</code></pre></div></div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Layer%3CA%3E-for-OtelTraceLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/oteltrace.rs.html#52-58">source</a><a href="#impl-Layer%3CA%3E-for-OtelTraceLayer" class="anchor">§</a><h3 cl [...]
+</code></pre></div></div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Layer%3CA%3E-for-OtelTraceLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/oteltrace.rs.html#52-58">source</a><a href="#impl-Layer%3CA%3E-for-OtelTraceLayer" class="anchor">§</a><h3 cl [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.PrometheusClientLayer.html b/docs/rust/opendal/layers/struct.PrometheusClientLayer.html
index 809057ba72..257ea3438a 100644
--- a/docs/rust/opendal/layers/struct.PrometheusClientLayer.html
+++ b/docs/rust/opendal/layers/struct.PrometheusClientLayer.html
@@ -40,7 +40,7 @@ async fn main() -> Result<()> {
</code></pre></div></div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-PrometheusClientLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/prometheus_client.rs.html#86-94">source</a><a href="#impl-PrometheusClientLayer" class="anchor">§</a><h3 class="code-header">impl <a class="str [...]
that do NOT call this method multiple times with a same registry. If you want initialize multiple
<a href="struct.PrometheusClientLayer.html" title="struct opendal::layers::PrometheusClientLayer"><code>PrometheusClientLayer</code></a> with a single registry, you should use [<code>clone</code>] instead.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-PrometheusClientLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/prometheus_client.rs.html#81">source</a><a href="#impl-Clone-for-PrometheusClientLayer" class="anchor">§</ [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-PrometheusClientLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/prometheus_client.rs.html#81">source</a><a href="#impl-Clone-for-PrometheusClientLayer" class="anchor">§</ [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.PrometheusLayer.html b/docs/rust/opendal/layers/struct.PrometheusLayer.html
index 7cc92e9cbf..dc40114094 100644
--- a/docs/rust/opendal/layers/struct.PrometheusLayer.html
+++ b/docs/rust/opendal/layers/struct.PrometheusLayer.html
@@ -56,7 +56,7 @@ async fn main() -> Result<()> {
</div></details><details class="toggle method-toggle" open><summary><section id="method.enable_path_label" class="method"><a class="src rightside" href="../../src/opendal/layers/prometheus.rs.html#140-143">source</a><h4 class="code-header">pub fn <a href="#method.enable_path_label" class="fn">enable_path_label</a>(self, level: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> Self</h4></section></summary><div class="docblock"><p>set p [...]
0: no path label, the path label will be the “”
>0: the path label will be the path split by “/” and get the last n level, like “/abc/def/ghi”, if n=1, the path label will be “/abc”</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-PrometheusLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/prometheus.rs.html#102">source</a><a href="#impl-Clone-for-PrometheusLayer" class="anchor">§</a><h3 class="code- [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-PrometheusLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/prometheus.rs.html#102">source</a><a href="#impl-Clone-for-PrometheusLayer" class="anchor">§</a><h3 class="code- [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.RetryLayer.html b/docs/rust/opendal/layers/struct.RetryLayer.html
index 87a3237e9a..5997de618d 100644
--- a/docs/rust/opendal/layers/struct.RetryLayer.html
+++ b/docs/rust/opendal/layers/struct.RetryLayer.html
@@ -87,7 +87,7 @@ to current delay.</p>
<p>Delay will not increasing if current delay is larger than max_delay.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_max_times" class="method"><a class="src rightside" href="../../src/opendal/layers/retry.rs.html#200-203">source</a><h4 class="code-header">pub fn <a href="#method.with_max_times" class="fn">with_max_times</a>(self, max_times: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> Self</h4></section></summary><div class="docblock"><p>Set max_times o [...]
<p>Backoff will return <code>None</code> if max times is reaching.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RetryLayer%3CI%3E" class="impl"><a class="src rightside" href="../../src/opendal/layers/retry.rs.html#94-101">source</a><a href="#impl-Clone-for-RetryLayer%3CI%3E" class="anchor">§</a><h3 class="cod [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RetryLayer%3CI%3E" class="impl"><a class="src rightside" href="../../src/opendal/layers/retry.rs.html#94-101">source</a><a href="#impl-Clone-for-RetryLayer%3CI%3E" class="anchor">§</a><h3 class="cod [...]
I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</div></h3></section><section id="impl-Send-for-RetryLayer%3CI%3E" class="impl"><a href="#impl-Send-for-RetryLayer%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a [...]
I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-Sync-for-RetryLayer%3CI%3E" class="impl"><a href="#impl-Sync-for-RetryLayer%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="https://doc.rust-lang.o [...]
I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-Unpin-for-RetryLayer%3CI%3E" class="impl"><a href="#impl-Unpin-for-RetryLayer%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="https://doc.rust-lang [...]
diff --git a/docs/rust/opendal/layers/struct.ThrottleLayer.html b/docs/rust/opendal/layers/struct.ThrottleLayer.html
index 5a04b1f0a3..1d20cbf4da 100644
--- a/docs/rust/opendal/layers/struct.ThrottleLayer.html
+++ b/docs/rust/opendal/layers/struct.ThrottleLayer.html
@@ -25,7 +25,7 @@ let _ = Operator::new(services::Memory::default())
<li>bandwidth: the maximum number of bytes allowed to pass through per second.</li>
<li>burst: the maximum number of bytes allowed to pass through at once.</li>
</ul>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ThrottleLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/throttle.rs.html#65">source</a><a href="#impl-Clone-for-ThrottleLayer" class="anchor">§</a><h3 class="code-header" [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ThrottleLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/throttle.rs.html#65">source</a><a href="#impl-Clone-for-ThrottleLayer" class="anchor">§</a><h3 class="code-header" [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.TimeoutLayer.html b/docs/rust/opendal/layers/struct.TimeoutLayer.html
index bf1ee13c6b..03bbd21116 100644
--- a/docs/rust/opendal/layers/struct.TimeoutLayer.html
+++ b/docs/rust/opendal/layers/struct.TimeoutLayer.html
@@ -57,7 +57,7 @@ until this TCP connection is closed for reaching the linux <a href="https://man7
large could result in all write operations failing.</p>
<h5 id="panics"><a class="doc-anchor" href="#panics">§</a>Panics</h5>
<p>This function will panic if speed is 0.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-TimeoutLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/timeout.rs.html#85">source</a><a href="#impl-Clone-for-TimeoutLayer" class="anchor">§</a><h3 class="code-header">im [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-TimeoutLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/timeout.rs.html#85">source</a><a href="#impl-Clone-for-TimeoutLayer" class="anchor">§</a><h3 class="code-header">im [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/layers/struct.TracingLayer.html b/docs/rust/opendal/layers/struct.TracingLayer.html
index 87d9574937..4d6c60ddd9 100644
--- a/docs/rust/opendal/layers/struct.TracingLayer.html
+++ b/docs/rust/opendal/layers/struct.TracingLayer.html
@@ -66,7 +66,7 @@ tracing::subscriber::set_global_default(my_subscriber)
.expect("setting tracing default failed");
</code></pre></div>
<p>For real-world usage, please take a look at <a href="https://crates.io/crates/tracing-opentelemetry"><code>tracing-opentelemetry</code></a>.</p>
-</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Layer%3CA%3E-for-TracingLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/tracing.rs.html#116-122">source</a><a href="#impl-Layer%3CA%3E-for-TracingLayer" class="anchor">§</a><h3 class="code-header">impl& [...]
+</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Layer%3CA%3E-for-TracingLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/tracing.rs.html#116-122">source</a><a href="#impl-Layer%3CA%3E-for-TracingLayer" class="anchor">§</a><h3 class="code-header">impl& [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/raw/accessor/trait.Accessor.html b/docs/rust/opendal/raw/accessor/trait.Access.html
similarity index 51%
rename from docs/rust/opendal/raw/accessor/trait.Accessor.html
rename to docs/rust/opendal/raw/accessor/trait.Access.html
index 1edcb536cc..58f4ed16ad 100644
--- a/docs/rust/opendal/raw/accessor/trait.Accessor.html
+++ b/docs/rust/opendal/raw/accessor/trait.Access.html
@@ -1,11 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
- <meta http-equiv="refresh" content="0;URL=../../../opendal/raw/trait.Accessor.html">
+ <meta http-equiv="refresh" content="0;URL=../../../opendal/raw/trait.Access.html">
<title>Redirection</title>
</head>
<body>
- <p>Redirecting to <a href="../../../opendal/raw/trait.Accessor.html">../../../opendal/raw/trait.Accessor.html</a>...</p>
- <script>location.replace("../../../opendal/raw/trait.Accessor.html" + location.search + location.hash);</script>
+ <p>Redirecting to <a href="../../../opendal/raw/trait.Access.html">../../../opendal/raw/trait.Access.html</a>...</p>
+ <script>location.replace("../../../opendal/raw/trait.Access.html" + location.search + location.hash);</script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/accessor/type.Accessor.html b/docs/rust/opendal/raw/accessor/type.Accessor.html
new file mode 100644
index 0000000000..7cdb502357
--- /dev/null
+++ b/docs/rust/opendal/raw/accessor/type.Accessor.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="refresh" content="0;URL=../../../opendal/raw/type.Accessor.html">
+ <title>Redirection</title>
+</head>
+<body>
+ <p>Redirecting to <a href="../../../opendal/raw/type.Accessor.html">../../../opendal/raw/type.Accessor.html</a>...</p>
+ <script>location.replace("../../../opendal/raw/type.Accessor.html" + location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/accessor/type.FusedAccessor.html b/docs/rust/opendal/raw/accessor/type.FusedAccessor.html
deleted file mode 100644
index 14c675dc0d..0000000000
--- a/docs/rust/opendal/raw/accessor/type.FusedAccessor.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta http-equiv="refresh" content="0;URL=../../../opendal/raw/type.FusedAccessor.html">
- <title>Redirection</title>
-</head>
-<body>
- <p>Redirecting to <a href="../../../opendal/raw/type.FusedAccessor.html">../../../opendal/raw/type.FusedAccessor.html</a>...</p>
- <script>location.replace("../../../opendal/raw/type.FusedAccessor.html" + location.search + location.hash);</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/adapters/kv/struct.Backend.html b/docs/rust/opendal/raw/adapters/kv/struct.Backend.html
index f0df3199ef..45952a3e5c 100644
--- a/docs/rust/opendal/raw/adapters/kv/struct.Backend.html
+++ b/docs/rust/opendal/raw/adapters/kv/struct.Backend.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Backend of kv service. If the storage service is one k-v-like service, it should implement this kv `Backend` by right."><title>Backend in opendal::raw::adapters::kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Backend of kv service. If the storage service is one k-v-like service, it should implement this kv `Backend` by right."><title>Backend in opendal::raw::adapters::kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regu [...]
<p><code>Backend</code> implements one general logic on how to read, write, scan the data from one kv store efficiently.
And the <a href="trait.Adapter.html" title="trait opendal::raw::adapters::kv::Adapter"><code>Adapter</code></a> held by <code>Backend</code> will handle how to communicate with one k-v-like service really and provides
a series of basic operation for this service.</p>
@@ -6,51 +6,51 @@ a series of basic operation for this service.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Backend%3CS%3E" class="impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#40-57">source</a><a href="#impl-Backend%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="struct" href="struct.B [...]
S: <a class="trait" href="trait.Adapter.html" title="trait opendal::raw::adapters::kv::Adapter">Adapter</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#45-50">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(kv: S) -> Self</h4></section></summary><div class="doc [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_root" class="method"><a class="src rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#53-56">source</a><h4 class="code-header">pub fn <a href="#method.with_root" class="fn">with_root</a>(self, root: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> Self</h4></section></summary><div class="docblock"><p>Configure root with [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Accessor-for-Backend%3CS%3E" class="impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#59-183">source</a><a href="#impl-Accessor-for-Backend%3CS%3E" class="anchor">§< [...]
-<a href="../../../struct.Reader.html" title="struct opendal::Reader"><code>Reader</code></a> if operate successful. <a href="../../trait.Accessor.html#method.read">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_read" class="method trait-impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#99-106">source</a><a href="#method.blocking_read" class="anchor">§</a><h4 class="code-header">fn <a [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Access-for-Backend%3CS%3E" class="impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#59-183">source</a><a href="#impl-Access-for-Backend%3CS%3E" class="anchor">§</a>< [...]
+<a href="../../../struct.Reader.html" title="struct opendal::Reader"><code>Reader</code></a> if operate successful. <a href="../../trait.Access.html#method.read">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_read" class="method trait-impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#99-106">source</a><a href="#method.blocking_read" class="anchor">§</a><h4 class="code-header">fn <a h [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
_: <a class="struct" href="../../struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
-) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="../../trait.Accessor.html#associatedtype.BlockingReader" title="type opendal::raw::Accessor::BlockingReader">BlockingReader</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_read</code> operation on the specified path. <a hr [...]
-written size if operate successful. <a href="../../trait.Accessor.html#method.write">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_write" class="method trait-impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#114-118">source</a><a href="#method.blocking_write" class="anchor">§</a><h4 class="code-header">fn <a href="../../trait.Accessor.html#method.blocking_write" class="fn">blocking_ [...]
+) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.BlockingReader" title="type opendal::raw::Access::BlockingReader">BlockingReader</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_read</code> operation on the specified path. <a href=" [...]
+written size if operate successful. <a href="../../trait.Access.html#method.write">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_write" class="method trait-impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#114-118">source</a><a href="#method.blocking_write" class="anchor">§</a><h4 class="code-header">fn <a href="../../trait.Access.html#method.blocking_write" class="fn">blocking_write</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
_: <a class="struct" href="../../struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
-) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="../../trait.Accessor.html#associatedtype.BlockingWriter" title="type opendal::raw::Accessor::BlockingWriter">BlockingWriter</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_write</code> operation on the specified path. < [...]
+) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.BlockingWriter" title="type opendal::raw::Access::BlockingWriter">BlockingWriter</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_write</code> operation on the specified path. <a hr [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
-) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="../../trait.Accessor.html#associatedtype.BlockingLister" title="type opendal::raw::Accessor::BlockingLister">BlockingLister</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_list</code> operation on the specified path. <a hr [...]
+) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.BlockingLister" title="type opendal::raw::Access::BlockingLister">BlockingLister</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_list</code> operation on the specified path. <a href=" [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpCreateDir.html" title="struct opendal::raw::OpCreateDir">OpCreateDir</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></ [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></ [...]
&self,
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpCopy.html" title="struct opendal::raw::OpCopy">OpCopy</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpCopy.html" title="struct opendal::raw::RpCopy">RpCopy</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></section></ [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpCopy.html" title="struct opendal::raw::RpCopy">RpCopy</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></section></ [...]
&self,
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpRename.html" title="struct opendal::raw::OpRename">OpRename</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></sect [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></sect [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpPresign.html" title="struct opendal::raw::OpPresign">OpPresign</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpPresign.html" title="struct opendal::raw::RpPresign">RpPresign</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></s [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpPresign.html" title="struct opendal::raw::RpPresign">RpPresign</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></s [...]
&self,
args: <a class="struct" href="../../struct.OpBatch.html" title="struct opendal::raw::OpBatch">OpBatch</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpBatch.html" title="struct opendal::raw::RpBatch">RpBatch</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></section [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpBatch.html" title="struct opendal::raw::RpBatch">RpBatch</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></section [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpCreateDir.html" title="struct opendal::raw::OpCreateDir">OpCreateDir</a>
-) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>></h4></section></summary><div class='docblock'>Invoke the <code>blocking_create</code> operation on the specified path. <a href="../../trait.Accessor.html#method.blocking_create_dir">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id=" [...]
+) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>></h4></section></summary><div class='docblock'>Invoke the <code>blocking_create</code> operation on the specified path. <a href="../../trait.Access.html#method.blocking_create_dir">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="me [...]
&self,
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpRename.html" title="struct opendal::raw::OpRename">OpRename</a>
-) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section></summary><div class='docblock'>Invoke the <code>blocking_rename</code> operation on the specified <code>from</code> path and <code>to</code> path. <a href="../../trait.Accessor.html#method.blocking_rename">Read more</a></div></details></div></details><details class="tog [...]
+) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section></summary><div class='docblock'>Invoke the <code>blocking_rename</code> operation on the specified <code>from</code> path and <code>to</code> path. <a href="../../trait.Access.html#method.blocking_rename">Read more</a></div></details></div></details><details class="toggl [...]
S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</div></h3></section><section id="impl-Send-for-Backend%3CS%3E" class="impl"><a href="#impl-Send-for-Backend%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for [...]
S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</div></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a clas [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/raw/adapters/typed_kv/struct.Backend.html b/docs/rust/opendal/raw/adapters/typed_kv/struct.Backend.html
index d3e219ab42..52ddb59ed5 100644
--- a/docs/rust/opendal/raw/adapters/typed_kv/struct.Backend.html
+++ b/docs/rust/opendal/raw/adapters/typed_kv/struct.Backend.html
@@ -1,56 +1,56 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The typed kv backend which implements Accessor for typed kv adapter."><title>Backend in opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The typed kv backend which implements Accessor for typed kv adapter."><title>Backend in opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regu [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Backend%3CS%3E" class="impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/backend.rs.html#35-52">source</a><a href="#impl-Backend%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="struct" href="st [...]
S: <a class="trait" href="trait.Adapter.html" title="trait opendal::raw::adapters::typed_kv::Adapter">Adapter</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/backend.rs.html#40-45">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(kv: S) -> Self</h4></section></summary><di [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_root" class="method"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/backend.rs.html#48-51">source</a><h4 class="code-header">pub fn <a href="#method.with_root" class="fn">with_root</a>(self, root: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> Self</h4></section></summary><div class="docblock"><p>Configure roo [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Accessor-for-Backend%3CS%3E" class="impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/backend.rs.html#54-192">source</a><a href="#impl-Accessor-for-Backend%3CS%3E" class="anch [...]
-<a href="../../../struct.Reader.html" title="struct opendal::Reader"><code>Reader</code></a> if operate successful. <a href="../../trait.Accessor.html#method.read">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_read" class="method trait-impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/backend.rs.html#109-119">source</a><a href="#method.blocking_read" class="anchor">§</a><h4 class="code-header [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Access-for-Backend%3CS%3E" class="impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/backend.rs.html#54-192">source</a><a href="#impl-Access-for-Backend%3CS%3E" class="anchor"> [...]
+<a href="../../../struct.Reader.html" title="struct opendal::Reader"><code>Reader</code></a> if operate successful. <a href="../../trait.Access.html#method.read">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_read" class="method trait-impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/backend.rs.html#109-119">source</a><a href="#method.blocking_read" class="anchor">§</a><h4 class="code-header"> [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
_: <a class="struct" href="../../struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
-) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="../../trait.Accessor.html#associatedtype.BlockingReader" title="type opendal::raw::Accessor::BlockingReader">BlockingReader</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_read</code> operation on the specified path. <a hr [...]
+) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.BlockingReader" title="type opendal::raw::Access::BlockingReader">BlockingReader</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_read</code> operation on the specified path. <a href=" [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
-) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="../../trait.Accessor.html#associatedtype.Writer" title="type opendal::raw::Accessor::Writer">Writer</a>)></h4></section></summary><div class='docblock'>Invoke the <code>write</code> operation on the specified path, returns a
-written size if operate successful. <a href="../../trait.Accessor.html#method.write">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_write" class="method trait-impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/backend.rs.html#127-131">source</a><a href="#method.blocking_write" class="anchor">§</a><h4 class="code-header">fn <a href="../../trait.Accessor.html#method.blocking_write" class="fn">blo [...]
+) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Writer" title="type opendal::raw::Access::Writer">Writer</a>)></h4></section></summary><div class='docblock'>Invoke the <code>write</code> operation on the specified path, returns a
+written size if operate successful. <a href="../../trait.Access.html#method.write">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_write" class="method trait-impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/backend.rs.html#127-131">source</a><a href="#method.blocking_write" class="anchor">§</a><h4 class="code-header">fn <a href="../../trait.Access.html#method.blocking_write" class="fn">blockin [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
-) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="../../trait.Accessor.html#associatedtype.BlockingWriter" title="type opendal::raw::Accessor::BlockingWriter">BlockingWriter</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_write</code> operation on the specified path. < [...]
+) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.BlockingWriter" title="type opendal::raw::Access::BlockingWriter">BlockingWriter</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_write</code> operation on the specified path. <a hr [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
-) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="../../trait.Accessor.html#associatedtype.BlockingLister" title="type opendal::raw::Accessor::BlockingLister">BlockingLister</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_list</code> operation on the specified path. <a hr [...]
+) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="../../struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.BlockingLister" title="type opendal::raw::Access::BlockingLister">BlockingLister</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_list</code> operation on the specified path. <a href=" [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpCreateDir.html" title="struct opendal::raw::OpCreateDir">OpCreateDir</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></ [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></ [...]
&self,
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpCopy.html" title="struct opendal::raw::OpCopy">OpCopy</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpCopy.html" title="struct opendal::raw::RpCopy">RpCopy</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></section></ [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpCopy.html" title="struct opendal::raw::RpCopy">RpCopy</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></section></ [...]
&self,
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpRename.html" title="struct opendal::raw::OpRename">OpRename</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></sect [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></sect [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpPresign.html" title="struct opendal::raw::OpPresign">OpPresign</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpPresign.html" title="struct opendal::raw::RpPresign">RpPresign</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></s [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpPresign.html" title="struct opendal::raw::RpPresign">RpPresign</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></s [...]
&self,
args: <a class="struct" href="../../struct.OpBatch.html" title="struct opendal::raw::OpBatch">OpBatch</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpBatch.html" title="struct opendal::raw::RpBatch">RpBatch</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></section [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpBatch.html" title="struct opendal::raw::RpBatch">RpBatch</a>>> + <a class="trait" href="../../trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></section [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpCreateDir.html" title="struct opendal::raw::OpCreateDir">OpCreateDir</a>
-) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>></h4></section></summary><div class='docblock'>Invoke the <code>blocking_create</code> operation on the specified path. <a href="../../trait.Accessor.html#method.blocking_create_dir">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id=" [...]
+) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>></h4></section></summary><div class='docblock'>Invoke the <code>blocking_create</code> operation on the specified path. <a href="../../trait.Access.html#method.blocking_create_dir">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="me [...]
&self,
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="../../struct.OpRename.html" title="struct opendal::raw::OpRename">OpRename</a>
-) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section></summary><div class='docblock'>Invoke the <code>blocking_rename</code> operation on the specified <code>from</code> path and <code>to</code> path. <a href="../../trait.Accessor.html#method.blocking_rename">Read more</a></div></details></div></details><details class="tog [...]
+) -> <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section></summary><div class='docblock'>Invoke the <code>blocking_rename</code> operation on the specified <code>from</code> path and <code>to</code> path. <a href="../../trait.Access.html#method.blocking_rename">Read more</a></div></details></div></details><details class="toggl [...]
S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</div></h3></section><section id="impl-Send-for-Backend%3CS%3E" class="impl"><a href="#impl-Send-for-Backend%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for [...]
S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</div></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a clas [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/raw/enum.Operation.html b/docs/rust/opendal/raw/enum.Operation.html
index 445b63bdf7..0196d65c2e 100644
--- a/docs/rust/opendal/raw/enum.Operation.html
+++ b/docs/rust/opendal/raw/enum.Operation.html
@@ -19,25 +19,25 @@
BlockingDelete,
BlockingList,
</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Operation is the name for APIs in <code>Accessor</code>.</p>
-</div></details><h2 id="variants" class="variants section-header">Variants (Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details class="toggle non-exhaustive"><summary class="hideme"><span>This enum is marked as non-exhaustive</span></summary><div class="docblock">Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.</di [...]
-</div><section id="variant.CreateDir" class="variant"><a href="#variant.CreateDir" class="anchor">§</a><h3 class="code-header">CreateDir</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.create_dir" title="method opendal::raw::Accessor::create_dir"><code>crate::raw::Accessor::create_dir</code></a></p>
-</div><section id="variant.Read" class="variant"><a href="#variant.Read" class="anchor">§</a><h3 class="code-header">Read</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.read" title="method opendal::raw::Accessor::read"><code>crate::raw::Accessor::read</code></a></p>
-</div><section id="variant.Write" class="variant"><a href="#variant.Write" class="anchor">§</a><h3 class="code-header">Write</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.write" title="method opendal::raw::Accessor::write"><code>crate::raw::Accessor::write</code></a></p>
-</div><section id="variant.Copy" class="variant"><a href="#variant.Copy" class="anchor">§</a><h3 class="code-header">Copy</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.copy" title="method opendal::raw::Accessor::copy"><code>crate::raw::Accessor::copy</code></a></p>
-</div><section id="variant.Rename" class="variant"><a href="#variant.Rename" class="anchor">§</a><h3 class="code-header">Rename</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.rename" title="method opendal::raw::Accessor::rename"><code>crate::raw::Accessor::rename</code></a></p>
-</div><section id="variant.Stat" class="variant"><a href="#variant.Stat" class="anchor">§</a><h3 class="code-header">Stat</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.stat" title="method opendal::raw::Accessor::stat"><code>crate::raw::Accessor::stat</code></a></p>
-</div><section id="variant.Delete" class="variant"><a href="#variant.Delete" class="anchor">§</a><h3 class="code-header">Delete</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.delete" title="method opendal::raw::Accessor::delete"><code>crate::raw::Accessor::delete</code></a></p>
-</div><section id="variant.List" class="variant"><a href="#variant.List" class="anchor">§</a><h3 class="code-header">List</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.list" title="method opendal::raw::Accessor::list"><code>crate::raw::Accessor::list</code></a></p>
-</div><section id="variant.Batch" class="variant"><a href="#variant.Batch" class="anchor">§</a><h3 class="code-header">Batch</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.batch" title="method opendal::raw::Accessor::batch"><code>crate::raw::Accessor::batch</code></a></p>
-</div><section id="variant.Presign" class="variant"><a href="#variant.Presign" class="anchor">§</a><h3 class="code-header">Presign</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.presign" title="method opendal::raw::Accessor::presign"><code>crate::raw::Accessor::presign</code></a></p>
-</div><section id="variant.BlockingCreateDir" class="variant"><a href="#variant.BlockingCreateDir" class="anchor">§</a><h3 class="code-header">BlockingCreateDir</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.blocking_create_dir" title="method opendal::raw::Accessor::blocking_create_dir"><code>crate::raw::Accessor::blocking_create_dir</code></a></p>
-</div><section id="variant.BlockingRead" class="variant"><a href="#variant.BlockingRead" class="anchor">§</a><h3 class="code-header">BlockingRead</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.blocking_read" title="method opendal::raw::Accessor::blocking_read"><code>crate::raw::Accessor::blocking_read</code></a></p>
-</div><section id="variant.BlockingWrite" class="variant"><a href="#variant.BlockingWrite" class="anchor">§</a><h3 class="code-header">BlockingWrite</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.blocking_write" title="method opendal::raw::Accessor::blocking_write"><code>crate::raw::Accessor::blocking_write</code></a></p>
-</div><section id="variant.BlockingCopy" class="variant"><a href="#variant.BlockingCopy" class="anchor">§</a><h3 class="code-header">BlockingCopy</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.blocking_copy" title="method opendal::raw::Accessor::blocking_copy"><code>crate::raw::Accessor::blocking_copy</code></a></p>
-</div><section id="variant.BlockingRename" class="variant"><a href="#variant.BlockingRename" class="anchor">§</a><h3 class="code-header">BlockingRename</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.blocking_rename" title="method opendal::raw::Accessor::blocking_rename"><code>crate::raw::Accessor::blocking_rename</code></a></p>
-</div><section id="variant.BlockingStat" class="variant"><a href="#variant.BlockingStat" class="anchor">§</a><h3 class="code-header">BlockingStat</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.blocking_stat" title="method opendal::raw::Accessor::blocking_stat"><code>crate::raw::Accessor::blocking_stat</code></a></p>
-</div><section id="variant.BlockingDelete" class="variant"><a href="#variant.BlockingDelete" class="anchor">§</a><h3 class="code-header">BlockingDelete</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.blocking_delete" title="method opendal::raw::Accessor::blocking_delete"><code>crate::raw::Accessor::blocking_delete</code></a></p>
-</div><section id="variant.BlockingList" class="variant"><a href="#variant.BlockingList" class="anchor">§</a><h3 class="code-header">BlockingList</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.blocking_list" title="method opendal::raw::Accessor::blocking_list"><code>crate::raw::Accessor::blocking_list</code></a></p>
+</div></details><h2 id="variants" class="variants section-header">Variants (Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details class="toggle non-exhaustive"><summary class="hideme"><span>This enum is marked as non-exhaustive</span></summary><div class="docblock">Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.</di [...]
+</div><section id="variant.CreateDir" class="variant"><a href="#variant.CreateDir" class="anchor">§</a><h3 class="code-header">CreateDir</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.create_dir" title="method opendal::raw::Access::create_dir"><code>crate::raw::Access::create_dir</code></a></p>
+</div><section id="variant.Read" class="variant"><a href="#variant.Read" class="anchor">§</a><h3 class="code-header">Read</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.read" title="method opendal::raw::Access::read"><code>crate::raw::Access::read</code></a></p>
+</div><section id="variant.Write" class="variant"><a href="#variant.Write" class="anchor">§</a><h3 class="code-header">Write</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.write" title="method opendal::raw::Access::write"><code>crate::raw::Access::write</code></a></p>
+</div><section id="variant.Copy" class="variant"><a href="#variant.Copy" class="anchor">§</a><h3 class="code-header">Copy</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.copy" title="method opendal::raw::Access::copy"><code>crate::raw::Access::copy</code></a></p>
+</div><section id="variant.Rename" class="variant"><a href="#variant.Rename" class="anchor">§</a><h3 class="code-header">Rename</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.rename" title="method opendal::raw::Access::rename"><code>crate::raw::Access::rename</code></a></p>
+</div><section id="variant.Stat" class="variant"><a href="#variant.Stat" class="anchor">§</a><h3 class="code-header">Stat</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.stat" title="method opendal::raw::Access::stat"><code>crate::raw::Access::stat</code></a></p>
+</div><section id="variant.Delete" class="variant"><a href="#variant.Delete" class="anchor">§</a><h3 class="code-header">Delete</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.delete" title="method opendal::raw::Access::delete"><code>crate::raw::Access::delete</code></a></p>
+</div><section id="variant.List" class="variant"><a href="#variant.List" class="anchor">§</a><h3 class="code-header">List</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.list" title="method opendal::raw::Access::list"><code>crate::raw::Access::list</code></a></p>
+</div><section id="variant.Batch" class="variant"><a href="#variant.Batch" class="anchor">§</a><h3 class="code-header">Batch</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.batch" title="method opendal::raw::Access::batch"><code>crate::raw::Access::batch</code></a></p>
+</div><section id="variant.Presign" class="variant"><a href="#variant.Presign" class="anchor">§</a><h3 class="code-header">Presign</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.presign" title="method opendal::raw::Access::presign"><code>crate::raw::Access::presign</code></a></p>
+</div><section id="variant.BlockingCreateDir" class="variant"><a href="#variant.BlockingCreateDir" class="anchor">§</a><h3 class="code-header">BlockingCreateDir</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.blocking_create_dir" title="method opendal::raw::Access::blocking_create_dir"><code>crate::raw::Access::blocking_create_dir</code></a></p>
+</div><section id="variant.BlockingRead" class="variant"><a href="#variant.BlockingRead" class="anchor">§</a><h3 class="code-header">BlockingRead</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.blocking_read" title="method opendal::raw::Access::blocking_read"><code>crate::raw::Access::blocking_read</code></a></p>
+</div><section id="variant.BlockingWrite" class="variant"><a href="#variant.BlockingWrite" class="anchor">§</a><h3 class="code-header">BlockingWrite</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.blocking_write" title="method opendal::raw::Access::blocking_write"><code>crate::raw::Access::blocking_write</code></a></p>
+</div><section id="variant.BlockingCopy" class="variant"><a href="#variant.BlockingCopy" class="anchor">§</a><h3 class="code-header">BlockingCopy</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.blocking_copy" title="method opendal::raw::Access::blocking_copy"><code>crate::raw::Access::blocking_copy</code></a></p>
+</div><section id="variant.BlockingRename" class="variant"><a href="#variant.BlockingRename" class="anchor">§</a><h3 class="code-header">BlockingRename</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.blocking_rename" title="method opendal::raw::Access::blocking_rename"><code>crate::raw::Access::blocking_rename</code></a></p>
+</div><section id="variant.BlockingStat" class="variant"><a href="#variant.BlockingStat" class="anchor">§</a><h3 class="code-header">BlockingStat</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.blocking_stat" title="method opendal::raw::Access::blocking_stat"><code>crate::raw::Access::blocking_stat</code></a></p>
+</div><section id="variant.BlockingDelete" class="variant"><a href="#variant.BlockingDelete" class="anchor">§</a><h3 class="code-header">BlockingDelete</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.blocking_delete" title="method opendal::raw::Access::blocking_delete"><code>crate::raw::Access::blocking_delete</code></a></p>
+</div><section id="variant.BlockingList" class="variant"><a href="#variant.BlockingList" class="anchor">§</a><h3 class="code-header">BlockingList</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.blocking_list" title="method opendal::raw::Access::blocking_list"><code>crate::raw::Access::blocking_list</code></a></p>
</div></div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Operation" class="impl"><a class="src rightside" href="../../src/opendal/raw/operation.rs.html#66-71">source</a><a href="#impl-Operation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Operation.html" title="enum opendal::raw::Op [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Operation" class="impl"><a class="src rightside" href="../../src/opendal/raw/operation.rs.html#22">source</a><a href="#impl-Clone-for-Operation" class="anchor">§</a><h3 class="code-header">impl <a c [...]
H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
diff --git a/docs/rust/opendal/raw/index.html b/docs/rust/opendal/raw/index.html
index 9d91390db7..eee809214b 100644
--- a/docs/rust/opendal/raw/index.html
+++ b/docs/rust/opendal/raw/index.html
@@ -9,7 +9,7 @@ API should never expose raw API directly.</li>
them whenever possible.</li>
</ul>
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="mod" href="adapters/index.html" title="mod opendal::raw::adapters">adapters</a></div><div class="desc docblock-short">Providing adapters and its implementations.</div></li><li><div class="item-name"><a class="mod" href="oio/index.html" title="mod opendal::raw::oio">oio</a></div><div class="desc docblock-short"><code>oio</co [...]
-output.</div></li><li><div class="item-name"><a class="mod" href="tests/index.html" title="mod opendal::raw::tests">tests</a><span class="stab portability" title="Available on crate feature `tests` only"><code>tests</code></span></div><div class="desc docblock-short">Utilities for opendal testing.</div></li></ul><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.Access [...]
-<code>Box<dyn AccessorDyn></code>.</div></li><li><div class="item-name"><a class="trait" href="trait.Layer.html" title="trait opendal::raw::Layer">Layer</a></div><div class="desc docblock-short">Layer is used to intercept the operations on the underlying storage.</div></li><li><div class="item-name"><a class="trait" href="trait.LayeredAccessor.html" title="trait opendal::raw::LayeredAccessor">LayeredAccessor</a></div><div class="desc docblock-short">LayeredAccessor is layered acces [...]
+output.</div></li><li><div class="item-name"><a class="mod" href="tests/index.html" title="mod opendal::raw::tests">tests</a><span class="stab portability" title="Available on crate feature `tests` only"><code>tests</code></span></div><div class="desc docblock-short">Utilities for opendal testing.</div></li></ul><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.Access [...]
+<code>Box<dyn AccessorDyn></code>.</div></li><li><div class="item-name"><a class="trait" href="trait.Layer.html" title="trait opendal::raw::Layer">Layer</a></div><div class="desc docblock-short">Layer is used to intercept the operations on the underlying storage.</div></li><li><div class="item-name"><a class="trait" href="trait.LayeredAccess.html" title="trait opendal::raw::LayeredAccess">LayeredAccess</a></div><div class="desc docblock-short">LayeredAccess is layered accessor that [...]
method to inner.</div></li><li><div class="item-name"><a class="trait" href="trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></div><div class="desc docblock-short">MaybeSend is a marker to determine whether a type is <code>Send</code> or not.
-We use this trait to wrap the <code>Send</code> requirement for wasm32 target.</div></li><li><div class="item-name"><a class="trait" href="trait.Part.html" title="trait opendal::raw::Part">Part</a></div><div class="desc docblock-short">Part is a trait for multipart part.</div></li><li><div class="item-name"><a class="trait" href="trait.PathQuery.html" title="trait opendal::raw::PathQuery">PathQuery</a><span class="stab portability" title="Available on crate feature `internal-path-cache` [...]
\ No newline at end of file
+We use this trait to wrap the <code>Send</code> requirement for wasm32 target.</div></li><li><div class="item-name"><a class="trait" href="trait.Part.html" title="trait opendal::raw::Part">Part</a></div><div class="desc docblock-short">Part is a trait for multipart part.</div></li><li><div class="item-name"><a class="trait" href="trait.PathQuery.html" title="trait opendal::raw::PathQuery">PathQuery</a><span class="stab portability" title="Available on crate feature `internal-path-cache` [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/layer/trait.LayeredAccessor.html b/docs/rust/opendal/raw/layer/trait.LayeredAccess.html
similarity index 62%
rename from docs/rust/opendal/raw/layer/trait.LayeredAccessor.html
rename to docs/rust/opendal/raw/layer/trait.LayeredAccess.html
index ec72bb362f..f4b37ce440 100644
--- a/docs/rust/opendal/raw/layer/trait.LayeredAccessor.html
+++ b/docs/rust/opendal/raw/layer/trait.LayeredAccess.html
@@ -1,11 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
- <meta http-equiv="refresh" content="0;URL=../../../opendal/raw/trait.LayeredAccessor.html">
+ <meta http-equiv="refresh" content="0;URL=../../../opendal/raw/trait.LayeredAccess.html">
<title>Redirection</title>
</head>
<body>
- <p>Redirecting to <a href="../../../opendal/raw/trait.LayeredAccessor.html">../../../opendal/raw/trait.LayeredAccessor.html</a>...</p>
- <script>location.replace("../../../opendal/raw/trait.LayeredAccessor.html" + location.search + location.hash);</script>
+ <p>Redirecting to <a href="../../../opendal/raw/trait.LayeredAccess.html">../../../opendal/raw/trait.LayeredAccess.html</a>...</p>
+ <script>location.replace("../../../opendal/raw/trait.LayeredAccess.html" + location.search + location.hash);</script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/index.html b/docs/rust/opendal/raw/oio/index.html
index 9f93bdab21..910b78a206 100644
--- a/docs/rust/opendal/raw/oio/index.html
+++ b/docs/rust/opendal/raw/oio/index.html
@@ -11,7 +11,7 @@ uploads.</div></li><li><div class="item-name"><a class="struct" href="struct.One
object. By implementing AppendWrite, services don’t need to
care about the details of buffering and uploading parts.</div></li><li><div class="item-name"><a class="trait" href="trait.BlockWrite.html" title="trait opendal::raw::oio::BlockWrite">BlockWrite</a></div><div class="desc docblock-short">BlockWrite is used to implement [<code>Write</code>] based on block
uploads. By implementing BlockWrite, services don’t need to
-care about the details of uploading blocks.</div></li><li><div class="item-name"><a class="trait" href="trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a></div><div class="desc docblock-short">BlockingList is the blocking version of <a href="trait.List.html" title="trait opendal::raw::oio::List"><code>List</code></a>.</div></li><li><div class="item-name"><a class="trait" href="trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">Bloc [...]
+care about the details of uploading blocks.</div></li><li><div class="item-name"><a class="trait" href="trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a></div><div class="desc docblock-short">BlockingList is the blocking version of <a href="trait.List.html" title="trait opendal::raw::oio::List"><code>List</code></a>.</div></li><li><div class="item-name"><a class="trait" href="trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">Bloc [...]
uploads. By implementing MultipartWrite, services don’t need to
care about the details of uploading parts.</div></li><li><div class="item-name"><a class="trait" href="trait.OneShotWrite.html" title="trait opendal::raw::oio::OneShotWrite">OneShotWrite</a></div><div class="desc docblock-short">OneShotWrite is used to implement [<code>Write</code>] based on one shot operation.
By implementing OneShotWrite, services don’t need to care about the details.</div></li><li><div class="item-name"><a class="trait" href="trait.PageList.html" title="trait opendal::raw::oio::PageList">PageList</a></div><div class="desc docblock-short">PageList is used to implement [<code>List</code>] based on API supporting pagination. By implementing
diff --git a/docs/rust/opendal/raw/oio/struct.FlatLister.html b/docs/rust/opendal/raw/oio/struct.FlatLister.html
index 7d14a86758..7406cda991 100644
--- a/docs/rust/opendal/raw/oio/struct.FlatLister.html
+++ b/docs/rust/opendal/raw/oio/struct.FlatLister.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FlatLister will walk dir in bottom up way:"><title>FlatLister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FlatLister will walk dir in bottom up way:"><title>FlatLister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
<ul>
<li>List nested dir first</li>
<li>Go back into parent dirs one by one</li>
@@ -26,14 +26,14 @@ We only make sure the nested dirs will show up before parent dirs.</p>
may output parent dirs’ files before nested dirs, this is expected because files
always output directly while listing.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FlatLister%3CA,+L%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#74-87">source</a><a href="#impl-FlatLister%3CA,+L%3E" class="anchor">§</a><h3 class="code-header">impl<A, L> <a class="struct" hre [...]
- A: <a class="trait" href="../trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#79-86">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(acc: A, path: &<a class="primitive" href="https://doc.rust-lang.o [...]
+ A: <a class="trait" href="../trait.Access.html" title="trait opendal::raw::Access">Access</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#79-86">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(acc: A, path: &<a class="primitive" href="https://doc.rust-lang.org/nig [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingList-for-FlatLister%3CA,+P%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#132-174">source</a><a href="#impl-BlockingList-for-FlatLister%3CA,+P%3E" [...]
- A: <a class="trait" href="../trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a><BlockingLister = P>,
+ A: <a class="trait" href="../trait.Access.html" title="trait opendal::raw::Access">Access</a><BlockingLister = P>,
P: <a class="trait" href="trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.next-1" class="method trait-impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#137-173">source</a><a href="#method.next-1" class="anchor">§</a><h4 class="code-header">fn <a href="trait.BlockingList.html#tymeth [...]
- A: <a class="trait" href="../trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a><Lister = L>,
- L: <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.next" class="method trait-impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#94-129">source</a><a href="#method.next" class="anchor">§</a><h4 class="code-header">async fn <a href="trait.List.html#tymethod.next" class="fn">next</a>(&a [...]
+ A: <a class="trait" href="../trait.Access.html" title="trait opendal::raw::Access">Access</a><Lister = L>,
+ L: <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.next" class="method trait-impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#94-129">source</a><a href="#method.next" class="anchor">§</a><h4 class="code-header">async fn <a href="trait.List.html#tymethod.next" class="fn">next</a>(&a [...]
<p>wasm32 is a special target that we only have one event-loop for this FlatLister.</p>
-</div><section id="impl-Sync-for-FlatLister%3CA,+L%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#72">source</a><a href="#impl-Sync-for-FlatLister%3CA,+L%3E" class="anchor">§</a><h3 class="code-header">impl<A: <a class="trait" href="../trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a>, L> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Syn [...]
+</div><section id="impl-Sync-for-FlatLister%3CA,+L%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#72">source</a><a href="#impl-Sync-for-FlatLister%3CA,+L%3E" class="anchor">§</a><h3 class="code-header">impl<A: <a class="trait" href="../trait.Access.html" title="trait opendal::raw::Access">Access</a>, L> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> [...]
<p>We will only take <code>&mut Self</code> reference for FsLister.</p>
</div></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-FlatLister%3CA,+L%3E" class="impl"><a href="#impl-Freeze-for-FlatLister%3CA,+L%3E" class="anchor">§</a><h3 class="code-header">impl<A, L> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freez [...]
A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,</div></h3></section><section id="impl-RefUnwindSafe-for-FlatLister%3CA,+L%3E" class="impl"><a href="#impl-RefUnwindSafe-for-FlatLister%3CA,+L%3E" class="anchor">§</a><h3 class="code-header">impl<A, L> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe [...]
diff --git a/docs/rust/opendal/raw/oio/trait.BlockingList.html b/docs/rust/opendal/raw/oio/trait.BlockingList.html
index e1e332cdba..d77b3de90d 100644
--- a/docs/rust/opendal/raw/oio/trait.BlockingList.html
+++ b/docs/rust/opendal/raw/oio/trait.BlockingList.html
@@ -6,7 +6,7 @@
<p><code>Ok(None)</code> means all pages have been returned. Any following call
to <code>next</code> will always get the same result.</p>
</div></details></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-BlockingList-for-()" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/api.rs.html#122-126">source</a><a href="#impl-BlockingList-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.BlockingList.html" title="t [...]
- A: <a class="trait" href="../trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a><BlockingLister = P>,
+ A: <a class="trait" href="../trait.Access.html" title="trait opendal::raw::Access">Access</a><BlockingLister = P>,
P: <a class="trait" href="trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,</div></h3></section><section id="impl-BlockingList-for-PrefixLister%3CL%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/prefix_list.rs.html#75-87">source</a><a href="#impl-BlockingList-for-PrefixLister%3CL%3E" class="anchor">§</a><h3 class="code-header">impl<L> <a class="trait" href="trait.BlockingList.html" title="trait opendal::r [...]
L: <a class="trait" href="trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,</div></h3></section><section id="impl-BlockingList-for-FourWays%3CONE,+TWO,+THREE,+FOUR%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/enum_utils.rs.html#222-237">source</a><a href="#impl-BlockingList-for-FourWays%3CONE,+TWO,+THREE,+FOUR%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO, THREE, FOUR> <a class="trait" href="trai [...]
ONE: <a class="trait" href="trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,
diff --git a/docs/rust/opendal/raw/oio/trait.List.html b/docs/rust/opendal/raw/oio/trait.List.html
index 8dea65a562..ba0071a4f0 100644
--- a/docs/rust/opendal/raw/oio/trait.List.html
+++ b/docs/rust/opendal/raw/oio/trait.List.html
@@ -3,12 +3,12 @@
fn <a href="#tymethod.next" class="fn">next</a>(
&mut self
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.Entry.html" title="struct opendal::raw::oio::Entry">Entry</a [...]
-}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Page trait is used by <a href="../trait.Accessor.html" title="trait opendal::raw::Accessor"><code>raw::Accessor</code></a> to implement <code>list</code> operation.</p>
+}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Page trait is used by <a href="../type.Accessor.html" title="type opendal::raw::Accessor"><code>raw::Accessor</code></a> to implement <code>list</code> operation.</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.next" class="method"><a class="src rightside" href="../../../src/opendal/raw/oio/list/api.rs.html#70">source</a><h4 class="code-header">fn <a href="#tymethod.next" class="fn">next</a>(&mut self) -> impl <a class="trait" href="https://doc.rust-lang.org/nigh [...]
<p><code>Ok(None)</code> means all pages have been returned. Any following call
to <code>next</code> will always get the same result.</p>
</div></details></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="im [...]
- A: <a class="trait" href="../trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a><Lister = L>,
+ A: <a class="trait" href="../trait.Access.html" title="trait opendal::raw::Access">Access</a><Lister = L>,
L: <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a>,</div></h3></section><section id="impl-List-for-PageLister%3CL%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/page_list.rs.html#88-104">source</a><a href="#impl-List-for-PageLister%3CL%3E" class="anchor">§</a><h3 class="code-header">impl<L> <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a> for <a class="struct" href="s [...]
L: <a class="trait" href="trait.PageList.html" title="trait opendal::raw::oio::PageList">PageList</a>,</div></h3></section><section id="impl-List-for-PrefixLister%3CL%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/prefix_list.rs.html#61-73">source</a><a href="#impl-List-for-PrefixLister%3CL%3E" class="anchor">§</a><h3 class="code-header">impl<L> <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a> for <a class [...]
L: <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a>,</div></h3></section><section id="impl-List-for-FourWays%3CONE,+TWO,+THREE,+FOUR%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/enum_utils.rs.html#205-220">source</a><a href="#impl-List-for-FourWays%3CONE,+TWO,+THREE,+FOUR%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO, THREE, FOUR> <a class="trait" href="trait.List.html" title="trait opendal::raw:: [...]
diff --git a/docs/rust/opendal/raw/sidebar-items.js b/docs/rust/opendal/raw/sidebar-items.js
index b252ccb30e..2551784032 100644
--- a/docs/rust/opendal/raw/sidebar-items.js
+++ b/docs/rust/opendal/raw/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"constant":["VERSION"],"enum":["BatchOperation","BatchedReply","FourWays","Operation","PresignOperation","ThreeWays","TwoWays"],"fn":["build_abs_path","build_header_value","build_rel_path","build_rooted_abs_path","format_authorization_by_basic","format_authorization_by_bearer","format_content_md5","get_basename","get_parent","new_json_deserialize_error","new_json_serialize_error","new_request_build_error","new_request_credential_error","new_request_sign_error","ne [...]
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"constant":["VERSION"],"enum":["BatchOperation","BatchedReply","FourWays","Operation","PresignOperation","ThreeWays","TwoWays"],"fn":["build_abs_path","build_header_value","build_rel_path","build_rooted_abs_path","format_authorization_by_basic","format_authorization_by_bearer","format_content_md5","get_basename","get_parent","new_json_deserialize_error","new_json_serialize_error","new_request_build_error","new_request_credential_error","new_request_sign_error","ne [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/trait.Accessor.html b/docs/rust/opendal/raw/trait.Access.html
similarity index 64%
rename from docs/rust/opendal/raw/trait.Accessor.html
rename to docs/rust/opendal/raw/trait.Access.html
index 8acec9c925..5cdf064c34 100644
--- a/docs/rust/opendal/raw/trait.Accessor.html
+++ b/docs/rust/opendal/raw/trait.Access.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Underlying trait of all backends for implementers."><title>Accessor in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-M [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Underlying trait of all backends for implementers."><title>Access in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Med [...]
type <a href="#associatedtype.Reader" class="associatedtype">Reader</a>: <a class="trait" href="oio/trait.Read.html" title="trait opendal::raw::oio::Read">Read</a>;
type <a href="#associatedtype.Writer" class="associatedtype">Writer</a>: <a class="trait" href="oio/trait.Write.html" title="trait opendal::raw::oio::Write">Write</a>;
type <a href="#associatedtype.Lister" class="associatedtype">Lister</a>: <a class="trait" href="oio/trait.List.html" title="trait opendal::raw::oio::List">List</a>;
@@ -24,12 +24,12 @@
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
- ) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Reader" title="type opendal::raw::Accessor::Reader">Reader</a> [...]
+ ) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.Reader" title="type opendal::raw::Access::Reader">Reader</a>)> [...]
<span class="item-spacer"></span> fn <a href="#method.write" class="fn">write</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
- ) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Writer" title="type opendal::raw::Accessor::Writer">Writer< [...]
+ ) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.Writer" title="type opendal::raw::Access::Writer">Writer</a>) [...]
<span class="item-spacer"></span> fn <a href="#method.delete" class="fn">delete</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
@@ -39,7 +39,7 @@
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
- ) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Lister" title="type opendal::raw::Accessor::Lister">Lister</a> [...]
+ ) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.Lister" title="type opendal::raw::Access::Lister">Lister</a>)> [...]
<span class="item-spacer"></span> fn <a href="#method.copy" class="fn">copy</a>(
&self,
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
@@ -71,18 +71,18 @@
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
- ) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.BlockingReader" title="type opendal::raw::Accessor::BlockingReader">BlockingReader</a>)> { ... }
+ ) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.BlockingReader" title="type opendal::raw::Access::BlockingReader">BlockingReader</a>)> { ... }
<span class="item-spacer"></span> fn <a href="#method.blocking_write" class="fn">blocking_write</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
- ) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.BlockingWriter" title="type opendal::raw::Accessor::BlockingWriter">BlockingWriter</a>)> { ... }
+ ) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.BlockingWriter" title="type opendal::raw::Access::BlockingWriter">BlockingWriter</a>)> { ... }
<span class="item-spacer"></span> fn <a href="#method.blocking_delete" class="fn">blocking_delete</a>(&self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpDelete.html" title="struct opendal::raw::OpDelete">OpDelete</a>) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpDelete.html" title="struct opendal::raw::R [...]
<span class="item-spacer"></span> fn <a href="#method.blocking_list" class="fn">blocking_list</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
- ) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.BlockingLister" title="type opendal::raw::Accessor::BlockingLister">BlockingLister</a>)> { ... }
+ ) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.BlockingLister" title="type opendal::raw::Access::BlockingLister">BlockingLister</a>)> { ... }
<span class="item-spacer"></span> fn <a href="#method.blocking_copy" class="fn">blocking_copy</a>(
&self,
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
@@ -97,12 +97,12 @@
) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>> { ... }
</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Underlying trait of all backends for implementers.</p>
<p>The actual data access of storage service happens in Accessor layer.
-Every storage supported by OpenDAL must implement <a href="trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> but not all
-methods of <a href="trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> will be implemented according to how the storage service is.</p>
+Every storage supported by OpenDAL must implement <a href="trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> but not all
+methods of <a href="trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> will be implemented according to how the storage service is.</p>
<p>For example, user can not modify the content from one HTTP file server directly.
So <a href="../services/struct.Http.html" title="struct opendal::services::Http"><code>Http</code></a> implements and provides only read related actions.</p>
-<p><a href="trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> gives default implementation for all methods which will raise <a href="../enum.ErrorKind.html#variant.Unsupported" title="variant opendal::ErrorKind::Unsupported"><code>ErrorKind::Unsupported</code></a> error.
-And what action this <a href="trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> supports will be pointed out in <a href="struct.AccessorInfo.html" title="struct opendal::raw::AccessorInfo"><code>AccessorInfo</code></a>.</p>
+<p><a href="trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> gives default implementation for all methods which will raise <a href="../enum.ErrorKind.html#variant.Unsupported" title="variant opendal::ErrorKind::Unsupported"><code>ErrorKind::Unsupported</code></a> error.
+And what action this <a href="trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> supports will be pointed out in <a href="struct.AccessorInfo.html" title="struct opendal::raw::AccessorInfo"><code>AccessorInfo</code></a>.</p>
<h2 id="note"><a class="doc-anchor" href="#note">§</a>Note</h2>
<p>Visit <a href="../docs/internals/index.html" title="mod opendal::docs::internals"><code>internals</code></a> for more tutorials.</p>
<h2 id="operations"><a class="doc-anchor" href="#operations">§</a>Operations</h2>
@@ -171,7 +171,7 @@ some useful information about it self.</p>
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Reader" title="type opendal::raw::Accessor::Reader">Reader</a>)> [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.Reader" title="type opendal::raw::Access::Reader">Reader</a>)>> [...]
<a href="../struct.Reader.html" title="struct opendal::Reader"><code>Reader</code></a> if operate successful.</p>
<p>Require <a href="../struct.Capability.html#structfield.read" title="field opendal::Capability::read"><code>Capability::read</code></a></p>
<h5 id="behavior-2"><a class="doc-anchor" href="#behavior-2">§</a>Behavior</h5>
@@ -183,7 +183,7 @@ some useful information about it self.</p>
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Writer" title="type opendal::raw::Accessor::Writer">Writer</a>) [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.Writer" title="type opendal::raw::Access::Writer">Writer</a>)> [...]
written size if operate successful.</p>
<p>Require <a href="../struct.Capability.html#structfield.write" title="field opendal::Capability::write"><code>Capability::write</code></a></p>
<h5 id="behavior-3"><a class="doc-anchor" href="#behavior-3">§</a>Behavior</h5>
@@ -205,7 +205,7 @@ written size if operate successful.</p>
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Lister" title="type opendal::raw::Accessor::Lister">Lister</a>)> [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.Lister" title="type opendal::raw::Access::Lister">Lister</a>)>> [...]
<p>Require <a href="../struct.Capability.html#structfield.list" title="field opendal::Capability::list"><code>Capability::list</code></a></p>
<h5 id="behavior-5"><a class="doc-anchor" href="#behavior-5">§</a>Behavior</h5>
<ul>
@@ -252,41 +252,41 @@ written size if operate successful.</p>
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpCreateDir.html" title="struct opendal::raw::OpCreateDir">OpCreateDir</a>
) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>></h4></section></summary><div class="docblock"><p>Invoke the <code>blocking_create</code> operation on the specified path.</p>
-<p>This operation is the blocking version of <a href="trait.Accessor.html#method.create_dir" title="method opendal::raw::Accessor::create_dir"><code>Accessor::create_dir</code></a></p>
+<p>This operation is the blocking version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.create_dir" title="method alloc::sync::Arc::create_dir"><code>Accessor::create_dir</code></a></p>
<p>Require <a href="../struct.Capability.html#structfield.create_dir" title="field opendal::Capability::create_dir"><code>Capability::create_dir</code></a> and <a href="../struct.Capability.html#structfield.blocking" title="field opendal::Capability::blocking"><code>Capability::blocking</code></a></p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_stat" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#300-307">source</a><h4 class="code-header">fn <a href="#method.blocking_stat" class="fn">blocking_stat</a>(&self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpStat.html" title="struct opendal::raw::OpS [...]
-<p>This operation is the blocking version of <a href="trait.Accessor.html#method.stat" title="method opendal::raw::Accessor::stat"><code>Accessor::stat</code></a></p>
+<p>This operation is the blocking version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.stat" title="method alloc::sync::Arc::stat"><code>Accessor::stat</code></a></p>
<p>Require <a href="../struct.Capability.html#structfield.stat" title="field opendal::Capability::stat"><code>Capability::stat</code></a> and <a href="../struct.Capability.html#structfield.blocking" title="field opendal::Capability::blocking"><code>Capability::blocking</code></a></p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_read" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#314-321">source</a><h4 class="code-header">fn <a href="#method.blocking_read" class="fn">blocking_read</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.BlockingReader" title="type opendal::raw::Accessor::BlockingReader">BlockingReader</a>)></h4></section></summary><div class="docblock"><p>Invoke the <code>blocking_read</code> operation on the specified path.</p>
-<p>This operation is the blocking version of <a href="trait.Accessor.html#method.read" title="method opendal::raw::Accessor::read"><code>Accessor::read</code></a></p>
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.BlockingReader" title="type opendal::raw::Access::BlockingReader">BlockingReader</a>)></h4></section></summary><div class="docblock"><p>Invoke the <code>blocking_read</code> operation on the specified path.</p>
+<p>This operation is the blocking version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.read" title="method alloc::sync::Arc::read"><code>Accessor::read</code></a></p>
<p>Require <a href="../struct.Capability.html#structfield.read" title="field opendal::Capability::read"><code>Capability::read</code></a> and <a href="../struct.Capability.html#structfield.blocking" title="field opendal::Capability::blocking"><code>Capability::blocking</code></a></p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_write" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#328-335">source</a><h4 class="code-header">fn <a href="#method.blocking_write" class="fn">blocking_write</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.BlockingWriter" title="type opendal::raw::Accessor::BlockingWriter">BlockingWriter</a>)></h4></section></summary><div class="docblock"><p>Invoke the <code>blocking_write</code> operation on the specified path.</p>
-<p>This operation is the blocking version of <a href="trait.Accessor.html#method.write" title="method opendal::raw::Accessor::write"><code>Accessor::write</code></a></p>
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.BlockingWriter" title="type opendal::raw::Access::BlockingWriter">BlockingWriter</a>)></h4></section></summary><div class="docblock"><p>Invoke the <code>blocking_write</code> operation on the specified path.</p>
+<p>This operation is the blocking version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.write" title="method alloc::sync::Arc::write"><code>Accessor::write</code></a></p>
<p>Require <a href="../struct.Capability.html#structfield.write" title="field opendal::Capability::write"><code>Capability::write</code></a> and <a href="../struct.Capability.html#structfield.blocking" title="field opendal::Capability::blocking"><code>Capability::blocking</code></a></p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_delete" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#342-349">source</a><h4 class="code-header">fn <a href="#method.blocking_delete" class="fn">blocking_delete</a>(&self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpDelete.html" title="struct opendal:: [...]
-<p>This operation is the blocking version of <a href="trait.Accessor.html#method.delete" title="method opendal::raw::Accessor::delete"><code>Accessor::delete</code></a></p>
+<p>This operation is the blocking version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.delete" title="method alloc::sync::Arc::delete"><code>Accessor::delete</code></a></p>
<p>Require <a href="../struct.Capability.html#structfield.write" title="field opendal::Capability::write"><code>Capability::write</code></a> and <a href="../struct.Capability.html#structfield.blocking" title="field opendal::Capability::blocking"><code>Capability::blocking</code></a></p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_list" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#360-367">source</a><h4 class="code-header">fn <a href="#method.blocking_list" class="fn">blocking_list</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.BlockingLister" title="type opendal::raw::Accessor::BlockingLister">BlockingLister</a>)></h4></section></summary><div class="docblock"><p>Invoke the <code>blocking_list</code> operation on the specified path.</p>
-<p>This operation is the blocking version of <a href="trait.Accessor.html#method.list" title="method opendal::raw::Accessor::list"><code>Accessor::list</code></a></p>
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.BlockingLister" title="type opendal::raw::Access::BlockingLister">BlockingLister</a>)></h4></section></summary><div class="docblock"><p>Invoke the <code>blocking_list</code> operation on the specified path.</p>
+<p>This operation is the blocking version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.list" title="method alloc::sync::Arc::list"><code>Accessor::list</code></a></p>
<p>Require <a href="../struct.Capability.html#structfield.list" title="field opendal::Capability::list"><code>Capability::list</code></a> and <a href="../struct.Capability.html#structfield.blocking" title="field opendal::Capability::blocking"><code>Capability::blocking</code></a></p>
<h5 id="behavior-7"><a class="doc-anchor" href="#behavior-7">§</a>Behavior</h5>
<ul>
<li>List non-exist dir should return Empty.</li>
</ul>
</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_copy" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#374-381">source</a><h4 class="code-header">fn <a href="#method.blocking_copy" class="fn">blocking_copy</a>(&self, from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primiti [...]
-<p>This operation is the blocking version of <a href="trait.Accessor.html#method.copy" title="method opendal::raw::Accessor::copy"><code>Accessor::copy</code></a></p>
+<p>This operation is the blocking version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.copy" title="method alloc::sync::Arc::copy"><code>Accessor::copy</code></a></p>
<p>Require <a href="../struct.Capability.html#structfield.copy" title="field opendal::Capability::copy"><code>Capability::copy</code></a> and <a href="../struct.Capability.html#structfield.blocking" title="field opendal::Capability::blocking"><code>Capability::blocking</code></a></p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_rename" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#388-395">source</a><h4 class="code-header">fn <a href="#method.blocking_rename" class="fn">blocking_rename</a>(
&self,
@@ -294,12 +294,12 @@ written size if operate successful.</p>
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRename.html" title="struct opendal::raw::OpRename">OpRename</a>
) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section></summary><div class="docblock"><p>Invoke the <code>blocking_rename</code> operation on the specified <code>from</code> path and <code>to</code> path.</p>
-<p>This operation is the blocking version of <a href="trait.Accessor.html#method.rename" title="method opendal::raw::Accessor::rename"><code>Accessor::rename</code></a></p>
+<p>This operation is the blocking version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.rename" title="method alloc::sync::Arc::rename"><code>Accessor::rename</code></a></p>
<p>Require <a href="../struct.Capability.html#structfield.rename" title="field opendal::Capability::rename"><code>Capability::rename</code></a> and <a href="../struct.Capability.html#structfield.blocking" title="field opendal::Capability::blocking"><code>Capability::blocking</code></a></p>
-</div></details></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="im [...]
-</div><div class="impl-items"><section id="associatedtype.Reader-1" class="associatedtype trait-impl"><a href="#associatedtype.Reader-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h4></section><section id="associatedtype.Writer-1" class="associatedtype trait-impl"><a href="#associatedtype.Writer-1" class="anchor">§</a><h4 [...]
-<code>Accessor</code> for <code>Arc<impl Accessor></code>.</p>
-</div><div class="impl-items"><section id="associatedtype.Reader-2" class="associatedtype trait-impl"><a href="#associatedtype.Reader-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = <T as <a class="trait" href="trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a>>::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Reader" title="type opendal::raw::Accessor::Reader">Reader</a> [...]
+</div></details></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="im [...]
+</div><div class="impl-items"><section id="associatedtype.Reader-1" class="associatedtype trait-impl"><a href="#associatedtype.Reader-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h4></section><section id="associatedtype.Writer-1" class="associatedtype trait-impl"><a href="#associatedtype.Writer-1" class="anchor">§</a><h4 [...]
+<code>Accessor</code> for <code>Arc<impl Access></code>.</p>
+</div><div class="impl-items"><section id="associatedtype.Reader-2" class="associatedtype trait-impl"><a href="#associatedtype.Reader-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = <T as <a class="trait" href="trait.Access.html" title="trait opendal::raw::Access">Access</a>>::<a class="associatedtype" href="trait.Access.html#associatedtype.Reader" title="type opendal::raw::Access::Reader">Reader</a></h4></sec [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpCreateDir.html" title="struct opendal::raw::OpCreateDir">OpCreateDir</a>
@@ -311,11 +311,11 @@ written size if operate successful.</p>
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Reader" title="type opendal::raw::Accessor::Reader">Reader</a>)> [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.Reader" title="type opendal::raw::Access::Reader">Reader</a>)>> [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Writer" title="type opendal::raw::Accessor::Writer">Writer</a>) [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.Writer" title="type opendal::raw::Access::Writer">Writer</a>)> [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpDelete.html" title="struct opendal::raw::OpDelete">OpDelete</a>
@@ -323,7 +323,7 @@ written size if operate successful.</p>
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Lister" title="type opendal::raw::Accessor::Lister">Lister</a>)> [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.Lister" title="type opendal::raw::Access::Lister">Lister</a>)>> [...]
&self,
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
@@ -348,17 +348,17 @@ written size if operate successful.</p>
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.BlockingReader" title="type opendal::raw::Accessor::BlockingReader">BlockingReader</a>)></h4></section><section id="method.blocking_write-1" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/accessor. [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.BlockingReader" title="type opendal::raw::Access::BlockingReader">BlockingReader</a>)></h4></section><section id="method.blocking_write-1" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.h [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.BlockingWriter" title="type opendal::raw::Accessor::BlockingWriter">BlockingWriter</a>)></h4></section><section id="method.blocking_delete-1" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/acces [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.BlockingWriter" title="type opendal::raw::Access::BlockingWriter">BlockingWriter</a>)></h4></section><section id="method.blocking_delete-1" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/accessor. [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.BlockingLister" title="type opendal::raw::Accessor::BlockingLister">BlockingLister</a>)></h4></section><section id="method.blocking_copy-1" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/accessor.r [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.BlockingLister" title="type opendal::raw::Access::BlockingLister">BlockingLister</a>)></h4></section><section id="method.blocking_copy-1" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.ht [...]
&self,
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRename.html" title="struct opendal::raw::OpRename">OpRename</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-Accessor-for-dyn+AccessorDyn" class="impl"><a class="src right [...]
\ No newline at end of file
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-Access-for-dyn+AccessorDyn" class="impl"><a class="src rightsi [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/trait.AccessorDyn.html b/docs/rust/opendal/raw/trait.AccessorDyn.html
index a3c35ab855..5d4b9a920d 100644
--- a/docs/rust/opendal/raw/trait.AccessorDyn.html
+++ b/docs/rust/opendal/raw/trait.AccessorDyn.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`AccessorDyn` is the dyn version of `Accessor` make it possible to use as `Box<dyn AccessorDyn>`."><title>AccessorDyn in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`AccessorDyn` is the dyn version of `Access` make it possible to use as `Box<dyn AccessorDyn>`."><title>AccessorDyn in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.wo [...]
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 19 methods</span></summary> // Required methods
fn <a href="#tymethod.info_dyn" class="fn">info_dyn</a>(&self) -> <a class="struct" href="struct.AccessorInfo.html" title="struct opendal::raw::AccessorInfo">AccessorInfo</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.create_dir_dyn" class="fn">create_dir_dyn</a><'a>(
@@ -87,120 +87,120 @@
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRename.html" title="struct opendal::raw::OpRename">OpRename</a>
) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>>;
-</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p><code>AccessorDyn</code> is the dyn version of <a href="trait.Accessor.html" title="trait opendal::raw::Accessor"><code>Accessor</code></a> make it possible to use as
+</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p><code>AccessorDyn</code> is the dyn version of <a href="trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> make it possible to use as
<code>Box<dyn AccessorDyn></code>.</p>
-</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.info_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#402">source</a><h4 class="code-header">fn <a href="#tymethod.info_dyn" class="fn">info_dyn</a>(&self) -> <a class="struct" href="struct.AccessorInfo.html" title= [...]
+</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.info_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#402">source</a><h4 class="code-header">fn <a href="#tymethod.info_dyn" class="fn">info_dyn</a>(&self) -> <a class="struct" href="struct.AccessorInfo.html" title= [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.create_dir_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#404-408">source</a><h4 class="code-header">fn <a href="#tymethod.create_dir_dyn" class="fn">create_dir_dyn</a><'a>(
&'a self,
path: &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpCreateDir.html" title="struct opendal::raw::OpCreateDir">OpCreateDir</a>
-) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#method.create_dir" title="method opendal::raw::Accessor::create_dir"><code>Accessor: [...]
+) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.create_dir" title="method alloc::syn [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.stat_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#410">source</a><h4 class="code-header">fn <a href="#tymethod.stat_dyn" class="fn">stat_dyn</a><'a>(
&'a self,
path: &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpStat.html" title="struct opendal::raw::OpStat">OpStat</a>
-) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpStat.html" title="struct opendal::raw::RpStat">RpStat</a>>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#method.stat" title="method opendal::raw::Accessor::stat"><code>Accessor::stat</code></a></p>
+) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpStat.html" title="struct opendal::raw::RpStat">RpStat</a>>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.stat" title="method alloc::sync::Arc::stat"><code>A [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.read_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#412-416">source</a><h4 class="code-header">fn <a href="#tymethod.read_dyn" class="fn">read_dyn</a><'a>(
&'a self,
path: &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
-) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, <a class="type" href="oio/type.Reader.html" title="type opendal::raw::oio::Reader">Reader</a>)>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#me [...]
+) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, <a class="type" href="oio/type.Reader.html" title="type opendal::raw::oio::Reader">Reader</a>)>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang. [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.write_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#418-422">source</a><h4 class="code-header">fn <a href="#tymethod.write_dyn" class="fn">write_dyn</a><'a>(
&'a self,
path: &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
-) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, <a class="type" href="oio/type.Writer.html" title="type opendal::raw::oio::Writer">Writer</a>)>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html [...]
+) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, <a class="type" href="oio/type.Writer.html" title="type opendal::raw::oio::Writer">Writer</a>)>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-la [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.delete_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#424-425">source</a><h4 class="code-header">fn <a href="#tymethod.delete_dyn" class="fn">delete_dyn</a><'a>(
&'a self,
path: &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpDelete.html" title="struct opendal::raw::OpDelete">OpDelete</a>
-) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpDelete.html" title="struct opendal::raw::RpDelete">RpDelete</a>>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#method.delete" title="method opendal::raw::Accessor::delete"><code>Accessor::delete</code></a></p>
+) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpDelete.html" title="struct opendal::raw::RpDelete">RpDelete</a>>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.delete" title="method alloc::sync::Arc::delet [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.list_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#427-431">source</a><h4 class="code-header">fn <a href="#tymethod.list_dyn" class="fn">list_dyn</a><'a>(
&'a self,
path: &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
-) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, <a class="type" href="oio/type.Lister.html" title="type opendal::raw::oio::Lister">Lister</a>)>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#me [...]
+) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, <a class="type" href="oio/type.Lister.html" title="type opendal::raw::oio::Lister">Lister</a>)>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang. [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.copy_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#433-438">source</a><h4 class="code-header">fn <a href="#tymethod.copy_dyn" class="fn">copy_dyn</a><'a>(
&'a self,
from: &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpCopy.html" title="struct opendal::raw::OpCopy">OpCopy</a>
-) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpCopy.html" title="struct opendal::raw::RpCopy">RpCopy</a>>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#method.copy" title="method opendal::raw::Accessor::copy"><code>Accessor::copy</code></a></p>
+) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpCopy.html" title="struct opendal::raw::RpCopy">RpCopy</a>>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.copy" title="method alloc::sync::Arc::copy"><code>A [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.rename_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#440-445">source</a><h4 class="code-header">fn <a href="#tymethod.rename_dyn" class="fn">rename_dyn</a><'a>(
&'a self,
from: &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRename.html" title="struct opendal::raw::OpRename">OpRename</a>
-) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#method.rename" title="method opendal::raw::Accessor::rename"><code>Accessor::rename</code></a></p>
+) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.rename" title="method alloc::sync::Arc::renam [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.presign_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#447-451">source</a><h4 class="code-header">fn <a href="#tymethod.presign_dyn" class="fn">presign_dyn</a><'a>(
&'a self,
path: &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpPresign.html" title="struct opendal::raw::OpPresign">OpPresign</a>
-) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpPresign.html" title="struct opendal::raw::RpPresign">RpPresign</a>>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#method.presign" title="method opendal::raw::Accessor::presign"><code>Accessor::presign</co [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.batch_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#453">source</a><h4 class="code-header">fn <a href="#tymethod.batch_dyn" class="fn">batch_dyn</a>(&self, args: <a class="struct" href="struct.OpBatch.html" title="struct opendal::raw::OpBatch">OpBatch</a>) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFu [...]
+) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'a, <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpPresign.html" title="struct opendal::raw::RpPresign">RpPresign</a>>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.presign" title="method alloc::sync::Arc::p [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.batch_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#453">source</a><h4 class="code-header">fn <a href="#tymethod.batch_dyn" class="fn">batch_dyn</a>(&self, args: <a class="struct" href="struct.OpBatch.html" title="struct opendal::raw::OpBatch">OpBatch</a>) -> <a class="type" href="type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFu [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.blocking_create_dir_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#455">source</a><h4 class="code-header">fn <a href="#tymethod.blocking_create_dir_dyn" class="fn">blocking_create_dir_dyn</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpCreateDir.html" title="struct opendal::raw::OpCreateDir">OpCreateDir</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#method.blocking_create_dir" title="method opendal::raw::Accessor::blocking_create_dir"><code>Accessor::blocking_create_dir</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.blocking_stat_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#457">source</a><h4 class="code-header">fn <a href="#tymethod.blocking_stat_dyn" class="fn">blocking_stat_dyn</a>(&self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpStat.html" title="struct opend [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.blocking_create_dir" title="method alloc::sync::Arc::blocking_create_dir"><code>Accessor::blocking_create_dir</code></a></p>
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.blocking_stat_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#457">source</a><h4 class="code-header">fn <a href="#tymethod.blocking_stat_dyn" class="fn">blocking_stat_dyn</a>(&self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpStat.html" title="struct opend [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.blocking_read_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#459">source</a><h4 class="code-header">fn <a href="#tymethod.blocking_read_dyn" class="fn">blocking_read_dyn</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, <a class="type" href="oio/type.BlockingReader.html" title="type opendal::raw::oio::BlockingReader">BlockingReader</a>)></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#method.blocking_read" title="method opendal::raw::Accessor::blocking_read"><code>Accessor [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, <a class="type" href="oio/type.BlockingReader.html" title="type opendal::raw::oio::BlockingReader">BlockingReader</a>)></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.blocking_read" title="method alloc::sync: [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.blocking_write_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#461-465">source</a><h4 class="code-header">fn <a href="#tymethod.blocking_write_dyn" class="fn">blocking_write_dyn</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, <a class="type" href="oio/type.BlockingWriter.html" title="type opendal::raw::oio::BlockingWriter">BlockingWriter</a>)></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#method.blocking_write" title="method opendal::raw::Accessor::blocking_write"><code>Acc [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.blocking_delete_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#467">source</a><h4 class="code-header">fn <a href="#tymethod.blocking_delete_dyn" class="fn">blocking_delete_dyn</a>(&self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpDelete.html" title="stru [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, <a class="type" href="oio/type.BlockingWriter.html" title="type opendal::raw::oio::BlockingWriter">BlockingWriter</a>)></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.blocking_write" title="method alloc::s [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.blocking_delete_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#467">source</a><h4 class="code-header">fn <a href="#tymethod.blocking_delete_dyn" class="fn">blocking_delete_dyn</a>(&self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpDelete.html" title="stru [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.blocking_list_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#469">source</a><h4 class="code-header">fn <a href="#tymethod.blocking_list_dyn" class="fn">blocking_list_dyn</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, <a class="type" href="oio/type.BlockingLister.html" title="type opendal::raw::oio::BlockingLister">BlockingLister</a>)></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#method.blocking_list" title="method opendal::raw::Accessor::blocking_list"><code>Accessor [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, <a class="type" href="oio/type.BlockingLister.html" title="type opendal::raw::oio::BlockingLister">BlockingLister</a>)></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.blocking_list" title="method alloc::sync: [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.blocking_copy_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#471">source</a><h4 class="code-header">fn <a href="#tymethod.blocking_copy_dyn" class="fn">blocking_copy_dyn</a>(
&self,
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpCopy.html" title="struct opendal::raw::OpCopy">OpCopy</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpCopy.html" title="struct opendal::raw::RpCopy">RpCopy</a>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#method.blocking_copy" title="method opendal::raw::Accessor::blocking_copy"><code>Accessor::blocking_copy</code></a></p>
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpCopy.html" title="struct opendal::raw::RpCopy">RpCopy</a>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.blocking_copy" title="method alloc::sync::Arc::blocking_copy"><code>Accessor::blocking_copy</code></a></p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.blocking_rename_dyn" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#473">source</a><h4 class="code-header">fn <a href="#tymethod.blocking_rename_dyn" class="fn">blocking_rename_dyn</a>(
&self,
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRename.html" title="struct opendal::raw::OpRename">OpRename</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="trait.Accessor.html#method.blocking_rename" title="method opendal::raw::Accessor::blocking_rename"><code>Accessor::blocking_rename</code></a></p>
-</div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Accessor-for-dyn+AccessorDyn" class="impl"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#602-685">source</a><a href="#impl-Accessor-for-dyn+AccessorDyn" class="anchor">§</a><h3 class="code-header">imp [...]
-<a href="../struct.Reader.html" title="struct opendal::Reader"><code>Reader</code></a> if operate successful. <a href="trait.Accessor.html#method.read">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.write" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#626-628">source</a><a href="#method.write" class="anchor">§</a><h4 class="code-header">async fn <a href="trait.Accessor.html#method.writ [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section></summary><div class="docblock"><p>Dyn version of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html#method.blocking_rename" title="method alloc::sync::Arc::blocking_rename"><code>Accessor::blocking_rename</code></a></p>
+</div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Access-for-dyn+AccessorDyn" class="impl"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#602-685">source</a><a href="#impl-Access-for-dyn+AccessorDyn" class="anchor">§</a><h3 class="code-header">impl <a [...]
+<a href="../struct.Reader.html" title="struct opendal::Reader"><code>Reader</code></a> if operate successful. <a href="trait.Access.html#method.read">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.write" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#626-628">source</a><a href="#method.write" class="anchor">§</a><h4 class="code-header">async fn <a href="trait.Access.html#method.write" c [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Writer" title="type opendal::raw::Accessor::Writer">Writer</a>)></h4></section></summary><div class='docblock'>Invoke the <code>write</code> operation on the specified path, returns a
-written size if operate successful. <a href="trait.Accessor.html#method.write">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.delete" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#630-632">source</a><a href="#method.delete" class="anchor">§</a><h4 class="code-header">async fn <a href="trait.Accessor.html#method.delete" class="fn">delete</a>(&self, path: &<a class="primitive" hr [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.Writer" title="type opendal::raw::Access::Writer">Writer</a>)></h4></section></summary><div class='docblock'>Invoke the <code>write</code> operation on the specified path, returns a
+written size if operate successful. <a href="trait.Access.html#method.write">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.delete" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#630-632">source</a><a href="#method.delete" class="anchor">§</a><h4 class="code-header">async fn <a href="trait.Access.html#method.delete" class="fn">delete</a>(&self, path: &<a class="primitive" href=" [...]
&self,
args: <a class="struct" href="struct.OpBatch.html" title="struct opendal::raw::OpBatch">OpBatch</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpBatch.html" title="struct opendal::raw::RpBatch">RpBatch</a>>> + <a class="trait" href="trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></section></summary><div cl [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpBatch.html" title="struct opendal::raw::RpBatch">RpBatch</a>>> + <a class="trait" href="trait.MaybeSend.html" title="trait opendal::raw::MaybeSend">MaybeSend</a></h4></section></summary><div cl [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpCreateDir.html" title="struct opendal::raw::OpCreateDir">OpCreateDir</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>></h4></section></summary><div class='docblock'>Invoke the <code>blocking_create</code> operation on the specified path. <a href="trait.Accessor.html#method.blocking_create_dir">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_re [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpCreateDir.html" title="struct opendal::raw::RpCreateDir">RpCreateDir</a>></h4></section></summary><div class='docblock'>Invoke the <code>blocking_create</code> operation on the specified path. <a href="trait.Access.html#method.blocking_create_dir">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_read [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.BlockingReader" title="type opendal::raw::Accessor::BlockingReader">BlockingReader</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_read</code> operation on the specified path. <a href="trait.Accessor [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.BlockingReader" title="type opendal::raw::Access::BlockingReader">BlockingReader</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_read</code> operation on the specified path. <a href="trait.Access.html# [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.BlockingWriter" title="type opendal::raw::Accessor::BlockingWriter">BlockingWriter</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_write</code> operation on the specified path. <a href="trait.Acce [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.BlockingWriter" title="type opendal::raw::Access::BlockingWriter">BlockingWriter</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_write</code> operation on the specified path. <a href="trait.Access.h [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Accessor.html#associatedtype.BlockingLister" title="type opendal::raw::Accessor::BlockingLister">BlockingLister</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_list</code> operation on the specified path. <a href="trait.Accessor [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.Access.html#associatedtype.BlockingLister" title="type opendal::raw::Access::BlockingLister">BlockingLister</a>)></h4></section></summary><div class='docblock'>Invoke the <code>blocking_list</code> operation on the specified path. <a href="trait.Access.html# [...]
&self,
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRename.html" title="struct opendal::raw::OpRename">OpRename</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section></summary><div class='docblock'>Invoke the <code>blocking_rename</code> operation on the specified <code>from</code> path and <code>to</code> path. <a href="trait.Accessor.html#method.blocking_rename">Read more</a></div></details></div></details></div><h2 id="implementors" class="se [...]
- A: <a class="trait" href="trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a><Reader = <a class="type" href="oio/type.Reader.html" title="type opendal::raw::oio::Reader">Reader</a>, BlockingReader = <a class="type" href="oio/type.BlockingReader.html" title="type opendal::raw::oio::BlockingReader">BlockingReader</a>, Writer = <a class="type" href="oio/type.Writer.html" title="type opendal::raw::oio::Writer">Writer</a>, BlockingWriter = <a class="type" href="oio/t [...]
\ No newline at end of file
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section></summary><div class='docblock'>Invoke the <code>blocking_rename</code> operation on the specified <code>from</code> path and <code>to</code> path. <a href="trait.Access.html#method.blocking_rename">Read more</a></div></details></div></details></div><h2 id="implementors" class="sect [...]
+ A: <a class="trait" href="trait.Access.html" title="trait opendal::raw::Access">Access</a><Reader = <a class="type" href="oio/type.Reader.html" title="type opendal::raw::oio::Reader">Reader</a>, BlockingReader = <a class="type" href="oio/type.BlockingReader.html" title="type opendal::raw::oio::BlockingReader">BlockingReader</a>, Writer = <a class="type" href="oio/type.Writer.html" title="type opendal::raw::oio::Writer">Writer</a>, BlockingWriter = <a class="type" href="oio/type.Bl [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/trait.Layer.html b/docs/rust/opendal/raw/trait.Layer.html
index f6af5e4171..d910cabc84 100644
--- a/docs/rust/opendal/raw/trait.Layer.html
+++ b/docs/rust/opendal/raw/trait.Layer.html
@@ -1,8 +1,8 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Layer is used to intercept the operations on the underlying storage."><title>Layer in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
- type <a href="#associatedtype.LayeredAccessor" class="associatedtype">LayeredAccessor</a>: <a class="trait" href="trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a>;
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Layer is used to intercept the operations on the underlying storage."><title>Layer in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
+ type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a>: <a class="trait" href="trait.Access.html" title="trait opendal::raw::Access">Access</a>;
// Required method
- fn <a href="#tymethod.layer" class="fn">layer</a>(&self, inner: A) -> Self::<a class="associatedtype" href="trait.Layer.html#associatedtype.LayeredAccessor" title="type opendal::raw::Layer::LayeredAccessor">LayeredAccessor</a>;
+ fn <a href="#tymethod.layer" class="fn">layer</a>(&self, inner: A) -> Self::<a class="associatedtype" href="trait.Layer.html#associatedtype.LayeredAccess" title="type opendal::raw::Layer::LayeredAccess">LayeredAccess</a>;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Layer is used to intercept the operations on the underlying storage.</p>
<p>Struct that implement this trait must accept input <code>Arc<dyn Accessor></code> as inner,
and returns a new <code>Arc<dyn Accessor></code> as output.</p>
@@ -21,11 +21,11 @@ requires <code>Send</code> and <code>Sync</code>.</p>
<span class="doccomment">/// Implement the real accessor logic here.
</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">struct </span>TraceAccessor<A: Accessor> {
+</span><span class="kw">struct </span>TraceAccessor<A: Access> {
inner: A,
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>TraceAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>TraceAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = A::Reader;
<span class="kw">type </span>BlockingReader = A::BlockingReader;
@@ -80,13 +80,13 @@ requires <code>Send</code> and <code>Sync</code>.</p>
/// Will be used like `op.layer(TraceLayer)`
</span><span class="kw">struct </span>TraceLayer;
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>TraceLayer {
- <span class="kw">type </span>LayeredAccessor = TraceAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>TraceLayer {
+ <span class="kw">type </span>LayeredAccess = TraceAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
TraceAccessor { inner }
}
}</code></pre></div>
-</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.LayeredAccessor" class="method"><a class="src rightside" href="../../src/opendal/raw/layer.rs.html#122">source</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccessor" class="associatedtype">LayeredAccessor</a>: <a class="trait [...]
-</div></details></div><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.layer" class="method"><a class="src rightside" href="../../src/opendal/raw/layer.rs.html#125">source</a><h4 class="code-header">fn <a href="#tymethod.layer" class="fn">layer</a>(&self, inner: A) -> Self::<a class="associatedtype" href="trait.Layer.ht [...]
-</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-AsyncBacktraceLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/async_backtrace.rs.html#46-52">source</a><a href="#impl-Layer%3CA%3E-for-AsyncBacktraceLayer" class="anchor">§</a><h3 class="code-header">impl<A: <a class= [...]
\ No newline at end of file
+</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.LayeredAccess" class="method"><a class="src rightside" href="../../src/opendal/raw/layer.rs.html#122">source</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a>: <a class="trait" href [...]
+</div></details></div><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.layer" class="method"><a class="src rightside" href="../../src/opendal/raw/layer.rs.html#125">source</a><h4 class="code-header">fn <a href="#tymethod.layer" class="fn">layer</a>(&self, inner: A) -> Self::<a class="associatedtype" href="trait.Layer.ht [...]
+</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-AsyncBacktraceLayer" class="impl"><a class="src rightside" href="../../src/opendal/layers/async_backtrace.rs.html#46-52">source</a><a href="#impl-Layer%3CA%3E-for-AsyncBacktraceLayer" class="anchor">§</a><h3 class="code-header">impl<A: <a class= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/trait.LayeredAccessor.html b/docs/rust/opendal/raw/trait.LayeredAccess.html
similarity index 67%
rename from docs/rust/opendal/raw/trait.LayeredAccessor.html
rename to docs/rust/opendal/raw/trait.LayeredAccess.html
index 51a692780d..bc87511713 100644
--- a/docs/rust/opendal/raw/trait.LayeredAccessor.html
+++ b/docs/rust/opendal/raw/trait.LayeredAccess.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="LayeredAccessor is layered accessor that forward all not implemented method to inner."><title>LayeredAccessor in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans [...]
- type <a href="#associatedtype.Inner" class="associatedtype">Inner</a>: <a class="trait" href="trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a>;
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="LayeredAccess is layered accessor that forward all not implemented method to inner."><title>LayeredAccess in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Reg [...]
+ type <a href="#associatedtype.Inner" class="associatedtype">Inner</a>: <a class="trait" href="trait.Access.html" title="trait opendal::raw::Access">Access</a>;
type <a href="#associatedtype.Reader" class="associatedtype">Reader</a>: <a class="trait" href="oio/trait.Read.html" title="trait opendal::raw::oio::Read">Read</a>;
type <a href="#associatedtype.BlockingReader" class="associatedtype">BlockingReader</a>: <a class="trait" href="oio/trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">BlockingRead</a>;
type <a href="#associatedtype.Writer" class="associatedtype">Writer</a>: <a class="trait" href="oio/trait.Write.html" title="trait opendal::raw::oio::Write">Write</a>;
@@ -8,37 +8,37 @@
type <a href="#associatedtype.BlockingLister" class="associatedtype">BlockingLister</a>: <a class="trait" href="oio/trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>;
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 20 methods</span></summary> // Required methods
- fn <a href="#tymethod.inner" class="fn">inner</a>(&self) -> &Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.Inner" title="type opendal::raw::LayeredAccessor::Inner">Inner</a>;
+ fn <a href="#tymethod.inner" class="fn">inner</a>(&self) -> &Self::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.Inner" title="type opendal::raw::LayeredAccess::Inner">Inner</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.read" class="fn">read</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
- ) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.Reader" title="type opendal::raw::LayeredAccessor::Read [...]
+ ) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.Reader" title="type opendal::raw::LayeredAccess::Reader"> [...]
<span class="item-spacer"></span> fn <a href="#tymethod.write" class="fn">write</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
- ) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.Writer" title="type opendal::raw::LayeredAccessor::W [...]
+ ) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.Writer" title="type opendal::raw::LayeredAccess::Write [...]
<span class="item-spacer"></span> fn <a href="#tymethod.list" class="fn">list</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
- ) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.Lister" title="type opendal::raw::LayeredAccessor::List [...]
+ ) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.Lister" title="type opendal::raw::LayeredAccess::Lister"> [...]
<span class="item-spacer"></span> fn <a href="#tymethod.blocking_read" class="fn">blocking_read</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
- ) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.BlockingReader" title="type opendal::raw::LayeredAccessor::BlockingReader">BlockingReader</a>)>;
+ ) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.BlockingReader" title="type opendal::raw::LayeredAccess::BlockingReader">BlockingReader</a>)>;
<span class="item-spacer"></span> fn <a href="#tymethod.blocking_write" class="fn">blocking_write</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
- ) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.BlockingWriter" title="type opendal::raw::LayeredAccessor::BlockingWriter">BlockingWriter</a>)>;
+ ) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.BlockingWriter" title="type opendal::raw::LayeredAccess::BlockingWriter">BlockingWriter</a>)>;
<span class="item-spacer"></span> fn <a href="#tymethod.blocking_list" class="fn">blocking_list</a>(
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
- ) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.BlockingLister" title="type opendal::raw::LayeredAccessor::BlockingLister">BlockingLister</a>)>;
+ ) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.BlockingLister" title="type opendal::raw::LayeredAccess::BlockingLister">BlockingLister</a>)>;
// Provided methods
fn <a href="#method.metadata" class="fn">metadata</a>(&self) -> <a class="struct" href="struct.AccessorInfo.html" title="struct opendal::raw::AccessorInfo">AccessorInfo</a> { ... }
@@ -97,33 +97,33 @@
) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>> { ... }
<span class="item-spacer"></span> fn <a href="#method.blocking_stat" class="fn">blocking_stat</a>(&self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpStat.html" title="struct opendal::raw::OpStat">OpStat</a>) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpStat.html" title="struct opendal::raw::RpStat">RpSta [...]
<span class="item-spacer"></span> fn <a href="#method.blocking_delete" class="fn">blocking_delete</a>(&self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpDelete.html" title="struct opendal::raw::OpDelete">OpDelete</a>) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpDelete.html" title="struct opendal::raw::R [...]
-</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>LayeredAccessor is layered accessor that forward all not implemented
+</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>LayeredAccess is layered accessor that forward all not implemented
method to inner.</p>
-</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><section id="associatedtype.Inner" class="method"><a class="src rightside" href="../../src/opendal/raw/layer.rs.html#133">source</a><h4 class="code-header">type <a href="#associatedtype.Inner" class="associatedtype">Inner</a>: <a class="trait" href="trait.Accessor.html" title="trait opendal::raw::Accessor">Ac [...]
+</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><section id="associatedtype.Inner" class="method"><a class="src rightside" href="../../src/opendal/raw/layer.rs.html#133">source</a><h4 class="code-header">type <a href="#associatedtype.Inner" class="associatedtype">Inner</a>: <a class="trait" href="trait.Access.html" title="trait opendal::raw::Access">Access [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.Reader" title="type opendal::raw::LayeredAccessor::Reader"> [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.Reader" title="type opendal::raw::LayeredAccess::Reader">Read [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.Writer" title="type opendal::raw::LayeredAccessor::Write [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.Writer" title="type opendal::raw::LayeredAccess::Writer">W [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
-) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.Lister" title="type opendal::raw::LayeredAccessor::Lister"> [...]
+) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.Lister" title="type opendal::raw::LayeredAccess::Lister">List [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.BlockingReader" title="type opendal::raw::LayeredAccessor::BlockingReader">BlockingReader</a>)></h4></section><section id="tymethod.blocking_write" class="method"><a class="src rightside" href="../../src/opendal/raw/layer. [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRead">RpRead</a>, Self::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.BlockingReader" title="type opendal::raw::LayeredAccess::BlockingReader">BlockingReader</a>)></h4></section><section id="tymethod.blocking_write" class="method"><a class="src rightside" href="../../src/opendal/raw/layer.rs.h [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.BlockingWriter" title="type opendal::raw::LayeredAccessor::BlockingWriter">BlockingWriter</a>)></h4></section><section id="tymethod.blocking_list" class="method"><a class="src rightside" href="../../src/opendal/raw/laye [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.BlockingWriter" title="type opendal::raw::LayeredAccess::BlockingWriter">BlockingWriter</a>)></h4></section><section id="tymethod.blocking_list" class="method"><a class="src rightside" href="../../src/opendal/raw/layer.rs [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpList">OpList</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.BlockingLister" title="type opendal::raw::LayeredAccessor::BlockingLister">BlockingLister</a>)></h4></section></div><h2 id="provided-methods" class="section-header">Provided Methods<a href="#provided-methods" class="anchor [...]
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct opendal::raw::RpList">RpList</a>, Self::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.BlockingLister" title="type opendal::raw::LayeredAccess::BlockingLister">BlockingLister</a>)></h4></section></div><h2 id="provided-methods" class="section-header">Provided Methods<a href="#provided-methods" class="anchor">§< [...]
&self,
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpCreateDir.html" title="struct opendal::raw::OpCreateDir">OpCreateDir</a>
@@ -161,4 +161,4 @@ method to inner.</p>
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRename.html" title="struct opendal::raw::OpRename">OpRename</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section><section id="method.blocking_stat" class="method"><a class="src rightside" href="../../src/opendal/raw/layer.rs.html#231-233">source</a><h4 class="code-header">fn <a href="#method.blocking_stat" class="fn">blocking_stat</a>(&self, path: &<a class="primitive" href="https://do [...]
\ No newline at end of file
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section><section id="method.blocking_stat" class="method"><a class="src rightside" href="../../src/opendal/raw/layer.rs.html#231-233">source</a><h4 class="code-header">fn <a href="#method.blocking_stat" class="fn">blocking_stat</a>(&self, path: &<a class="primitive" href="https://do [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/type.Accessor.html b/docs/rust/opendal/raw/type.Accessor.html
new file mode 100644
index 0000000000..da48af1c16
--- /dev/null
+++ b/docs/rust/opendal/raw/type.Accessor.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Accessor is the type erased accessor with `Arc<dyn Accessor>`."><title>Accessor in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ff [...]
+</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct Accessor { <span class="comment">/* private fields */</span> }</code></pre><script src="../../type.impl/alloc/sync/struct.Arc.js" data-self-path="opendal::raw::accessor::Accessor" async></script></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/type.FusedAccessor.html b/docs/rust/opendal/raw/type.FusedAccessor.html
deleted file mode 100644
index 6c0d086287..0000000000
--- a/docs/rust/opendal/raw/type.FusedAccessor.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FusedAccessor is the type erased accessor with `Arc<dyn Accessor>`."><title>FusedAccessor in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c1 [...]
-</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct FusedAccessor { <span class="comment">/* private fields */</span> }</code></pre><script src="../../type.impl/alloc/sync/struct.Arc.js" data-self-path="opendal::raw::accessor::FusedAccessor" async></script></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.Operator.html b/docs/rust/opendal/struct.Operator.html
index 80835ab8e8..0c1bfd1ec0 100644
--- a/docs/rust/opendal/struct.Operator.html
+++ b/docs/rust/opendal/struct.Operator.html
@@ -992,7 +992,7 @@ extra options like <code>content_type</code>, please use <a href="struct.Operato
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
-</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../src/opendal/types/operator/builder.rs.html#76-79">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a><B: <a class="trait" href="trait.Builder.html" title="trait opendal::Builder">Builder</a>>(ab: B) -> <a class="type" href="type.Result.html" title="type opendal::Result">Result</a><<a class="st [...]
+</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../src/opendal/types/operator/builder.rs.html#76-79">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a><B: <a class="trait" href="trait.Builder.html" title="trait opendal::Builder">Builder</a>>(ab: B) -> <a class="type" href="type.Result.html" title="type opendal::Result">Result</a><<a class="st [...]
<p>OpenDAL will call <code>builder.build()</code> internally, so we don’t need
to import <code>opendal::Builder</code> trait.</p>
<h5 id="examples-24"><a class="doc-anchor" href="#examples-24">§</a>Examples</h5>
@@ -1015,7 +1015,7 @@ to import <code>opendal::Builder</code> trait.</p>
}</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="method.from_map" class="method"><a class="src rightside" href="../src/opendal/types/operator/builder.rs.html#112-117">source</a><h4 class="code-header">pub fn <a href="#method.from_map" class="fn">from_map</a><B: <a class="trait" href="trait.Builder.html" title="trait opendal::Builder">Builder</a>>(
map: <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>
-) -> <a class="type" href="type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.OperatorBuilder.html" title="struct opendal::OperatorBuilder">OperatorBuilder</a><impl <a class="trait" href="raw/trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a>>></h4></section></summary><div class="docblock"><p>Create a new operator from given map.</p>
+) -> <a class="type" href="type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.OperatorBuilder.html" title="struct opendal::OperatorBuilder">OperatorBuilder</a><impl <a class="trait" href="raw/trait.Access.html" title="trait opendal::raw::Access">Access</a>>></h4></section></summary><div class="docblock"><p>Create a new operator from given map.</p>
<h5 id="notes-22"><a class="doc-anchor" href="#notes-22">§</a>Notes</h5>
<p>from_map is using static dispatch layers which is zero cost. via_map is
using dynamic dispatch layers which has a bit runtime overhead with an
@@ -1063,7 +1063,7 @@ type parameter which is not always easy to be used.</p>
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.layer" class="method"><a class="src rightside" href="../src/opendal/types/operator/builder.rs.html#312-316">source</a><h4 class="code-header">pub fn <a href="#method.layer" class="fn">layer</a><L: <a class="trait" href="raw/trait.Layer.html" title="trait opendal::raw::Layer">Layer</a><<a class="type" href="raw/type.FusedAccessor.html" title="type opendal::raw::FusedAccessor">FusedAccessor</a>> [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.layer" class="method"><a class="src rightside" href="../src/opendal/types/operator/builder.rs.html#312-316">source</a><h4 class="code-header">pub fn <a href="#method.layer" class="fn">layer</a><L: <a class="trait" href="raw/trait.Layer.html" title="trait opendal::raw::Layer">Layer</a><<a class="type" href="raw/type.Accessor.html" title="type opendal::raw::Accessor">Accessor</a>>>(self, lay [...]
<h5 id="notes-24"><a class="doc-anchor" href="#notes-24">§</a>Notes</h5>
<p><code>OperatorBuilder::layer()</code> is using static dispatch which is zero
cost. <code>Operator::layer()</code> is using dynamic dispatch which has a
diff --git a/docs/rust/opendal/struct.OperatorBuilder.html b/docs/rust/opendal/struct.OperatorBuilder.html
index 4a58e09d06..da29540638 100644
--- a/docs/rust/opendal/struct.OperatorBuilder.html
+++ b/docs/rust/opendal/struct.OperatorBuilder.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OperatorBuilder is a typed builder to build an Operator."><title>OperatorBuilder in opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OperatorBuilder is a typed builder to build an Operator."><title>OperatorBuilder in opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi [...]
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2>
<p>OpenDAL uses static dispatch internally and only performs dynamic
dispatch at the outmost type erase layer. OperatorBuilder is the only
@@ -35,8 +35,8 @@ public API provided by OpenDAL come with generic parameters.</p>
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
-</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OperatorBuilder%3CA%3E" class="impl"><a class="src rightside" href="../src/opendal/types/operator/builder.rs.html#367-418">source</a><a href="#impl-OperatorBuilder%3CA%3E" class="anchor">§</a><h3 class="code-header">impl<A: <a class="trait" href="raw/ [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.layer" class="method"><a class="src rightside" href="../src/opendal/types/operator/builder.rs.html#407-411">source</a><h4 class="code-header">pub fn <a href="#method.layer" class="fn">layer</a><L: <a class="trait" href="raw/trait.Layer.html" title="trait opendal::raw::Layer">Layer</a><A>>(self, layer: L) -> <a class="struct" href="struct.OperatorBuilder.html" title="struct opendal::Oper [...]
+</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OperatorBuilder%3CA%3E" class="impl"><a class="src rightside" href="../src/opendal/types/operator/builder.rs.html#367-418">source</a><a href="#impl-OperatorBuilder%3CA%3E" class="anchor">§</a><h3 class="code-header">impl<A: <a class="trait" href="raw/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.layer" class="method"><a class="src rightside" href="../src/opendal/types/operator/builder.rs.html#407-411">source</a><h4 class="code-header">pub fn <a href="#method.layer" class="fn">layer</a><L: <a class="trait" href="raw/trait.Layer.html" title="trait opendal::raw::Layer">Layer</a><A>>(self, layer: L) -> <a class="struct" href="struct.OperatorBuilder.html" title="struct opendal::Oper [...]
<h5 id="notes-1"><a class="doc-anchor" href="#notes-1">§</a>Notes</h5>
<p><code>OperatorBuilder::layer()</code> is using static dispatch which is zero
cost. <code>Operator::layer()</code> is using dynamic dispatch which has a
diff --git a/docs/rust/opendal/trait.Builder.html b/docs/rust/opendal/trait.Builder.html
index c134678fb1..ca3c6a29fb 100644
--- a/docs/rust/opendal/trait.Builder.html
+++ b/docs/rust/opendal/trait.Builder.html
@@ -1,5 +1,5 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Builder is used to set up a real underlying service, i.e. storage accessor."><title>Builder in opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843f [...]
- type <a href="#associatedtype.Accessor" class="associatedtype">Accessor</a>: <a class="trait" href="raw/trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a>;
+ type <a href="#associatedtype.Accessor" class="associatedtype">Accessor</a>: <a class="trait" href="raw/trait.Access.html" title="trait opendal::raw::Access">Access</a>;
const <a href="#associatedconstant.SCHEME" class="constant">SCHEME</a>: <a class="enum" href="enum.Scheme.html" title="enum opendal::Scheme">Scheme</a>;
@@ -17,7 +17,7 @@ Because the latter way is obscure and hard to remember how many parameters it wi
<p>So it is recommended that developer should read related doc of builder carefully when you are working with one service.
We also promise that every public API will provide detailed documentation.</p>
<p>It’s recommended to use <a href="struct.Operator.html#method.new" title="associated function opendal::Operator::new"><code>Operator::new</code></a> to avoid use <code>Builder</code> trait directly.</p>
-</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.Accessor" class="method"><a class="src rightside" href="../src/opendal/types/builder.rs.html#42">source</a><h4 class="code-header">type <a href="#associatedtype.Accessor" class="associatedtype">Accessor</a>: <a class="trait" href="raw/trait.Acc [...]
+</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.Accessor" class="method"><a class="src rightside" href="../src/opendal/types/builder.rs.html#42">source</a><h4 class="code-header">type <a href="#associatedtype.Accessor" class="associatedtype">Accessor</a>: <a class="trait" href="raw/trait.Acc [...]
</div></details></div><h2 id="required-associated-consts" class="section-header">Required Associated Constants<a href="#required-associated-consts" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedconstant.SCHEME" class="method"><a class="src rightside" href="../src/opendal/types/builder.rs.html#40">source</a><h4 class="code-header">const <a href="#associatedconstant.SCHEME" class="constant">SCHEME</a>: <a class="enum" href="enum. [...]
</div></details></div><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.from_map" class="method"><a class="src rightside" href="../src/opendal/types/builder.rs.html#45">source</a><h4 class="code-header">fn <a href="#tymethod.from_map" class="fn">from_map</a>(map: <a class="struct" href="https://doc.rust-lang.org/nightly/std/col [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.build" class="method"><a class="src rightside" href="../src/opendal/types/builder.rs.html#48">source</a><h4 class="code-header">fn <a href="#tymethod.build" class="fn">build</a>(&mut self) -> <a class="type" href="type.Result.html" title="type opendal::Result">Result</a><Self::<a class="associatedtype" href="trait.Builder.html#associatedtype.Accessor" title="type opendal::Builder::Accessor [...]
diff --git a/docs/rust/search-index.js b/docs/rust/search-index.js
index caa4268a83..3460023582 100644
--- a/docs/rust/search-index.js
+++ b/docs/rust/search-index.js
@@ -1,5 +1,5 @@
var searchIndex = new Map(JSON.parse('[\
-["opendal",{"t":"RPPPPPPPFFFFFFKPPFPPPPPPPPPPPPPPPPPPPPFGPFGPPPPPPFFFFPPPPPPPPPPPPPPPPPPFPPFGPPPPPPPPPPFFFPPPPPPFPPIPPTGPPPPFFFPPPPPPPPPPPPPFPNNNNOOONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNONNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN [...]
+["opendal",{"t":"RPPPPPPPFFFFFFKPPFPPPPPPPPPPPPPPPPPPPPFGPFGPPPPPPFFFFPPPPPPPPPPPPPPPPPPFPPFGPPPPPPPPPPFFFPPPPPPFPPIPPTGPPPPFFFPPPPPPPPPPPPPFPNNNNOOONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNONNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN [...]
]'));
if (typeof exports !== 'undefined') exports.searchIndex = searchIndex;
else if (window.initSearch) window.initSearch(searchIndex);
diff --git a/docs/rust/search.desc/opendal/opendal-desc-0-.js b/docs/rust/search.desc/opendal/opendal-desc-0-.js
index 336620a3db..39212b702f 100644
--- a/docs/rust/search.desc/opendal/opendal-desc-0-.js
+++ b/docs/rust/search.desc/opendal/opendal-desc-0-.js
@@ -1 +1 @@
-searchState.loadedDescShard("opendal", 0, "Apache OpenDAL™ is a data access layer that allows users …\nThe accessor that built by this builder.\n[alluxio][created::services::Alluxio]: Alluxio services.\nThe given path already exists thus we failed to the …\natomicserver: Atomicserver services.\nazblob: Azure Storage Blob services.\nAzdls: Azure Data Lake Storage Gen2.\n[azfile][crate::services::azfile]: Azfile Services\nB2: Backblaze B2 Services.\nBlockingLister is designed to list entri [...]
\ No newline at end of file
+searchState.loadedDescShard("opendal", 0, "Apache OpenDAL™ is a data access layer that allows users …\nThe accessor that built by this builder.\n[alluxio][created::services::Alluxio]: Alluxio services.\nThe given path already exists thus we failed to the …\natomicserver: Atomicserver services.\nazblob: Azure Storage Blob services.\nAzdls: Azure Data Lake Storage Gen2.\n[azfile][crate::services::azfile]: Azfile Services\nB2: Backblaze B2 Services.\nBlockingLister is designed to list entri [...]
\ No newline at end of file
diff --git a/docs/rust/src/opendal/docs/concepts.rs.html b/docs/rust/src/opendal/docs/concepts.rs.html
index 50181ce747..6843e2107d 100644
--- a/docs/rust/src/opendal/docs/concepts.rs.html
+++ b/docs/rust/src/opendal/docs/concepts.rs.html
@@ -195,7 +195,7 @@
//! ```
//!
//! # Operator
-//! The [`Operator`] is a delegate for Service, the underlying implementation detail that implements [`Accessor`][crate::raw::Accessor],
+//! The [`Operator`] is a delegate for Service, the underlying implementation detail that implements [`Access`][crate::raw::Access],
//! and it also provides one unified access interface.
//! It will hold one reference of Service with its all generic types erased by OpenDAL,
//! which is the reason why we say the Operator is the delegate of one Service.
diff --git a/docs/rust/src/opendal/docs/internals/accessor.rs.html b/docs/rust/src/opendal/docs/internals/accessor.rs.html
index 4f2e88c8a3..b0332a186b 100644
--- a/docs/rust/src/opendal/docs/internals/accessor.rs.html
+++ b/docs/rust/src/opendal/docs/internals/accessor.rs.html
@@ -342,14 +342,14 @@
// specific language governing permissions and limitations
// under the License.
-</span><span class="doccomment">//! The internal implementation details of [`Accessor`].
+</span><span class="doccomment">//! The internal implementation details of [`Access`].
//!
-//! [`Accessor`] is the core trait of OpenDAL's raw API. We operate
-//! underlying storage services via APIs provided by [`Accessor`].
+//! [`Access`] is the core trait of OpenDAL's raw API. We operate
+//! underlying storage services via APIs provided by [`Access`].
//!
//! # Introduction
//!
-//! [`Accessor`] can be split in the following parts:
+//! [`Access`] can be split in the following parts:
//!
//! ```ignore
//! // Attributes
@@ -367,11 +367,11 @@
//! }
//! ```
//!
-//! Let's go deep into [`Accessor`] line by line.
+//! Let's go deep into [`Access`] line by line.
//!
//! ## Async Trait
//!
-//! At the first line of [`Accessor`], we will read:
+//! At the first line of [`Access`], we will read:
//!
//! ```ignore
//! #[async_trait]
@@ -400,13 +400,13 @@
//!
//! ## Trait Bound
//!
-//! Then we will read the declare of [`Accessor`] trait:
+//! Then we will read the declare of [`Access`] trait:
//!
//! ```ignore
//! pub trait Accessor: Send + Sync + Debug + Unpin + 'static {}
//! ```
//!
-//! There are many trait boundings here. For now, [`Accessor`] requires the following bound:
+//! There are many trait boundings here. For now, [`Access`] requires the following bound:
//!
//! - [`Send`]: Allow user to send between threads without extra wrapper.
//! - [`Sync`]: Allow user to sync between threads without extra lock.
@@ -421,11 +421,11 @@
//!
//! ## Associated Type
//!
-//! The first block of [`Accessor`] trait is our associated types. We
+//! The first block of [`Access`] trait is our associated types. We
//! require implementers to specify the type to be returned, thus avoiding
//! the additional overhead of dynamic dispatch.
//!
-//! [`Accessor`] has four associated type so far:
+//! [`Access`] has four associated type so far:
//!
//! - `Reader`: reader returned by `read` operation.
//! - `BlockingReader`: reader returned by `blocking_read` operation.
@@ -439,17 +439,17 @@
//!
//! ## API Style
//!
-//! Every API of [`Accessor`] follows the same style:
+//! Every API of [`Access`] follows the same style:
//!
//! - All APIs have a unique [`Operation`] and [`Capability`]
//! - All APIs are orthogonal and do not overlap with each other
//! - Most APIs accept `path` and `OpXxx`, and returns `RpXxx`.
//! - Most APIs have `async` and `blocking` variants, they share the same semantics but may have different underlying implementations.
//!
-//! [`Accessor`] can declare their capabilities via [`AccessorInfo`]'s `set_capability`:
+//! [`Access`] can declare their capabilities via [`AccessorInfo`]'s `set_capability`:
//!
//! ```ignore
-//! impl Accessor for MyBackend {
+//! impl Access for MyBackend {
//! fn metadata(&self) -> AccessorInfo {
//! let mut am = AccessorInfo::default();
//! am.set_capability(
@@ -464,7 +464,7 @@
//! }
//! ```
//!
-//! Now that you have mastered [`Accessor`], let's go and implement our own backend!
+//! Now that you have mastered [`Access`], let's go and implement our own backend!
//!
//! # Tutorial
//!
@@ -599,7 +599,7 @@
//! ## Backend
//!
//! I'm sure you can see it already: `DuckBuilder` will build a
-//! `DuckBackend` that implements [`Accessor`]. The backend is what we used
+//! `DuckBackend` that implements [`Access`]. The backend is what we used
//! to communicate with the super-powered ducks!
//!
//! Let's keep adding more code under `backend.rs`:
@@ -612,7 +612,7 @@
//! }
//!
//! #[async_trait]
-//! impl Accessor for DuckBackend {
+//! impl Access for DuckBackend {
//! type Reader = DuckReader;
//! type BlockingReader = ();
//! type Writer = ();
@@ -639,17 +639,17 @@
//! }
//! ```
//!
-//! Congratulations, we have implemented an [`Accessor`] that can talk to
+//! Congratulations, we have implemented an [`Access`] that can talk to
//! Super Power Ducks!
//!
//! What!? There are no Super Power Ducks? So sad, but never mind, we have
//! really powerful storage services [here](https://github.com/apache/opendal/issues/5). Welcome to pick one to implement. I promise you won't
//! have to `gagaga!()` this time.
//!
-//! [`Accessor`]: crate::raw::Accessor
+//! [`Access`]: crate::raw::Access
//! [`Operation`]: crate::raw::Operation
//! [`Capability`]: crate::Capability
-//! [`AccessorInfo`]: crate::raw::AccessorInfo
+//! [`AccessorInfo`]: crate::raw::AccessInfo
//! [`Scheme`]: crate::Scheme
//! [`Builder`]: crate::Builder
</span></code></pre></div></section></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/docs/internals/layer.rs.html b/docs/rust/src/opendal/docs/internals/layer.rs.html
index 4d98785fce..d435f63d69 100644
--- a/docs/rust/src/opendal/docs/internals/layer.rs.html
+++ b/docs/rust/src/opendal/docs/internals/layer.rs.html
@@ -62,24 +62,24 @@
//! [`Layer`] itself is quite simple:
//!
//! ```ignore
-//! pub trait Layer<A: Accessor> {
-//! type LayeredAccessor: Accessor;
+//! pub trait Layer<A: Access> {
+//! type LayeredAccess: Accessor;
//!
-//! fn layer(&self, inner: A) -> Self::LayeredAccessor;
+//! fn layer(&self, inner: A) -> Self::LayeredAccess;
//! }
//! ```
//!
-//! `XxxLayer` will wrap input [`Accessor`] as inner and return a new [`Accessor`]. So normally the implementation of [`Layer`] will be split into two parts:
+//! `XxxLayer` will wrap input [`Access`] as inner and return a new [`Access`]. So normally the implementation of [`Layer`] will be split into two parts:
//!
-//! - `XxxLayer` will implement [`Layer`] and return `XxxAccessor` as `Self::LayeredAccessor`.
-//! - `XxxAccessor` will implement [`Accessor`] and be built by `XxxLayer`.
+//! - `XxxLayer` will implement [`Layer`] and return `XxxAccessor` as `Self::LayeredAccess`.
+//! - `XxxAccessor` will implement [`Access`] and be built by `XxxLayer`.
//!
-//! Most layer only implements part of [`Accessor`], so we provide
-//! [`LayeredAccessor`] which will forward all unimplemented methods to
-//! `inner`. It's highly recommend to implement [`LayeredAccessor`] trait
+//! Most layer only implements part of [`Access`], so we provide
+//! [`LayeredAccess`] which will forward all unimplemented methods to
+//! `inner`. It's highly recommend to implement [`LayeredAccess`] trait
//! instead.
//!
//! [`Layer`]: crate::raw::Layer
-//! [`Accessor`]: crate::raw::Accessor
-//! [`LayeredAccessor`]: crate::raw::LayeredAccessor
+//! [`Access`]: crate::raw::Access
+//! [`LayeredAccess`]: crate::raw::LayeredAccess
</span></code></pre></div></section></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/docs/internals/mod.rs.html b/docs/rust/src/opendal/docs/internals/mod.rs.html
index 02e4c52ac4..b47612b2e0 100644
--- a/docs/rust/src/opendal/docs/internals/mod.rs.html
+++ b/docs/rust/src/opendal/docs/internals/mod.rs.html
@@ -82,20 +82,20 @@
//! OpenDAL has provides unified abstraction via two-level API sets:
//!
//! - Public API like [`Operator`] provides user level API.
-//! - Raw API like [`Accessor`], [`Layer`] provides developer level API.
+//! - Raw API like [`Access`], [`Layer`] provides developer level API.
//!
//! OpenDAL tries it's best to keep the public API stable. But raw APIs
//! may change between minor releases from time to time. So most users
//! should only use the public API. And only developers need to implement
-//! with raw API to implement a new service [`Accessor`] or their own
+//! with raw API to implement a new service [`Access`] or their own
//! [`Layer`].
//!
//! In this section, we will talk about the following components:
//!
-//! - [`Accessor`][accessor]: to connect underlying storage services.
+//! - [`Access`][accessor]: to connect underlying storage services.
//! - [`Layer`][layer]: middleware/interceptor between storage services.
//!
-//! The relation between [`Accessor`], [`Layer`] and [`Operator`] looks like the following:
+//! The relation between [`Access`], [`Layer`] and [`Operator`] looks like the following:
//!
//! ```text
//! ┌─────────────────────────────────────────────────┬──────────┐
@@ -117,7 +117,7 @@
//!
//! [`Builder`]: crate::Builder
//! [`Operator`]: crate::Operator
-//! [`Accessor`]: crate::raw::Accessor
+//! [`Access`]: crate::raw::Access
//! [`Layer`]: crate::raw::Layer
</span><span class="kw">pub mod </span>accessor;
diff --git a/docs/rust/src/opendal/layers/async_backtrace.rs.html b/docs/rust/src/opendal/layers/async_backtrace.rs.html
index c13be9dece..311bbc698f 100644
--- a/docs/rust/src/opendal/layers/async_backtrace.rs.html
+++ b/docs/rust/src/opendal/layers/async_backtrace.rs.html
@@ -171,20 +171,20 @@
</span><span class="attr">#[derive(Clone, Default)]
</span><span class="kw">pub struct </span>AsyncBacktraceLayer;
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>AsyncBacktraceLayer {
- <span class="kw">type </span>LayeredAccessor = AsyncBacktraceAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>AsyncBacktraceLayer {
+ <span class="kw">type </span>LayeredAccess = AsyncBacktraceAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, accessor: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, accessor: A) -> <span class="self">Self</span>::LayeredAccess {
AsyncBacktraceAccessor { inner: accessor }
}
}
<span class="attr">#[derive(Debug, Clone)]
-</span><span class="kw">pub struct </span>AsyncBacktraceAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>AsyncBacktraceAccessor<A: Access> {
inner: A,
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>AsyncBacktraceAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>AsyncBacktraceAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = A::Reader;
<span class="kw">type </span>BlockingReader = A::BlockingReader;
diff --git a/docs/rust/src/opendal/layers/await_tree.rs.html b/docs/rust/src/opendal/layers/await_tree.rs.html
index 88f434e5ec..e385b881b6 100644
--- a/docs/rust/src/opendal/layers/await_tree.rs.html
+++ b/docs/rust/src/opendal/layers/await_tree.rs.html
@@ -207,20 +207,20 @@
}
}
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>AwaitTreeLayer {
- <span class="kw">type </span>LayeredAccessor = AwaitTreeAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>AwaitTreeLayer {
+ <span class="kw">type </span>LayeredAccess = AwaitTreeAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, accessor: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, accessor: A) -> <span class="self">Self</span>::LayeredAccess {
AwaitTreeAccessor { inner: accessor }
}
}
<span class="attr">#[derive(Debug, Clone)]
-</span><span class="kw">pub struct </span>AwaitTreeAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>AwaitTreeAccessor<A: Access> {
inner: A,
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>AwaitTreeAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>AwaitTreeAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = A::Reader;
<span class="kw">type </span>BlockingReader = A::BlockingReader;
diff --git a/docs/rust/src/opendal/layers/blocking.rs.html b/docs/rust/src/opendal/layers/blocking.rs.html
index e97b2b75a7..2477d0115c 100644
--- a/docs/rust/src/opendal/layers/blocking.rs.html
+++ b/docs/rust/src/opendal/layers/blocking.rs.html
@@ -491,10 +491,10 @@
}
}
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>BlockingLayer {
- <span class="kw">type </span>LayeredAccessor = BlockingAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>BlockingLayer {
+ <span class="kw">type </span>LayeredAccess = BlockingAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
BlockingAccessor {
inner,
handle: <span class="self">self</span>.handle.clone(),
@@ -503,13 +503,13 @@
}
<span class="attr">#[derive(Clone, Debug)]
-</span><span class="kw">pub struct </span>BlockingAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>BlockingAccessor<A: Access> {
inner: A,
handle: Handle,
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>BlockingAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>BlockingAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = A::Reader;
<span class="kw">type </span>BlockingReader = BlockingWrapper<A::Reader>;
diff --git a/docs/rust/src/opendal/layers/chaos.rs.html b/docs/rust/src/opendal/layers/chaos.rs.html
index 71a7f69183..0757774c38 100644
--- a/docs/rust/src/opendal/layers/chaos.rs.html
+++ b/docs/rust/src/opendal/layers/chaos.rs.html
@@ -267,10 +267,10 @@
}
}
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>ChaosLayer {
- <span class="kw">type </span>LayeredAccessor = ChaosAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>ChaosLayer {
+ <span class="kw">type </span>LayeredAccess = ChaosAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
ChaosAccessor {
inner,
rng: StdRng::from_entropy(),
@@ -287,7 +287,7 @@
error_ratio: f64,
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>ChaosAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>ChaosAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = ChaosReader<A::Reader>;
<span class="kw">type </span>BlockingReader = ChaosReader<A::BlockingReader>;
diff --git a/docs/rust/src/opendal/layers/complete.rs.html b/docs/rust/src/opendal/layers/complete.rs.html
index d89c0edf9a..be6463f929 100644
--- a/docs/rust/src/opendal/layers/complete.rs.html
+++ b/docs/rust/src/opendal/layers/complete.rs.html
@@ -1007,10 +1007,10 @@
/// operation is not supported, an error will be returned directly.
</span><span class="kw">pub struct </span>CompleteLayer;
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>CompleteLayer {
- <span class="kw">type </span>LayeredAccessor = CompleteAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>CompleteLayer {
+ <span class="kw">type </span>LayeredAccess = CompleteAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
CompleteAccessor {
meta: inner.info(),
inner: Arc::new(inner),
@@ -1019,18 +1019,18 @@
}
<span class="doccomment">/// Provide complete wrapper for backend.
-</span><span class="kw">pub struct </span>CompleteAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>CompleteAccessor<A: Access> {
meta: AccessorInfo,
inner: Arc<A>,
}
-<span class="kw">impl</span><A: Accessor> Debug <span class="kw">for </span>CompleteAccessor<A> {
+<span class="kw">impl</span><A: Access> Debug <span class="kw">for </span>CompleteAccessor<A> {
<span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>Formatter<<span class="lifetime">'_</span>>) -> std::fmt::Result {
<span class="self">self</span>.inner.fmt(f)
}
}
-<span class="kw">impl</span><A: Accessor> CompleteAccessor<A> {
+<span class="kw">impl</span><A: Access> CompleteAccessor<A> {
<span class="kw">fn </span>new_unsupported_error(<span class="kw-2">&</span><span class="self">self</span>, op: <span class="kw">impl </span>Into<<span class="kw-2">&</span><span class="lifetime">'static </span>str>) -> Error {
<span class="kw">let </span>scheme = <span class="self">self</span>.meta.scheme();
<span class="kw">let </span>op = op.into();
@@ -1269,7 +1269,7 @@
}
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>CompleteAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>CompleteAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = CompleteReader<A::Reader>;
<span class="kw">type </span>BlockingReader = CompleteReader<A::BlockingReader>;
@@ -1602,7 +1602,7 @@
capability: Capability,
}
- <span class="kw">impl </span>Accessor <span class="kw">for </span>MockService {
+ <span class="kw">impl </span>Access <span class="kw">for </span>MockService {
<span class="kw">type </span>Reader = oio::Reader;
<span class="kw">type </span>Writer = oio::Writer;
<span class="kw">type </span>Lister = oio::Lister;
diff --git a/docs/rust/src/opendal/layers/concurrent_limit.rs.html b/docs/rust/src/opendal/layers/concurrent_limit.rs.html
index 94ee814d6b..b532d5c683 100644
--- a/docs/rust/src/opendal/layers/concurrent_limit.rs.html
+++ b/docs/rust/src/opendal/layers/concurrent_limit.rs.html
@@ -355,10 +355,10 @@
}
}
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>ConcurrentLimitLayer {
- <span class="kw">type </span>LayeredAccessor = ConcurrentLimitAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>ConcurrentLimitLayer {
+ <span class="kw">type </span>LayeredAccess = ConcurrentLimitAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
ConcurrentLimitAccessor {
inner,
semaphore: Arc::new(Semaphore::new(<span class="self">self</span>.permits)),
@@ -367,12 +367,12 @@
}
<span class="attr">#[derive(Debug, Clone)]
-</span><span class="kw">pub struct </span>ConcurrentLimitAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>ConcurrentLimitAccessor<A: Access> {
inner: A,
semaphore: Arc<Semaphore>,
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>ConcurrentLimitAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>ConcurrentLimitAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = ConcurrentLimitWrapper<A::Reader>;
<span class="kw">type </span>BlockingReader = ConcurrentLimitWrapper<A::BlockingReader>;
diff --git a/docs/rust/src/opendal/layers/dtrace.rs.html b/docs/rust/src/opendal/layers/dtrace.rs.html
index d35df67af4..534211ed2f 100644
--- a/docs/rust/src/opendal/layers/dtrace.rs.html
+++ b/docs/rust/src/opendal/layers/dtrace.rs.html
@@ -480,7 +480,7 @@
<span class="kw">use </span>bytes::Buf;
<span class="kw">use </span>probe::probe_lazy;
-<span class="kw">use </span><span class="kw">crate</span>::raw::Accessor;
+<span class="kw">use </span><span class="kw">crate</span>::raw::Access;
<span class="kw">use </span><span class="kw">crate</span>::raw::<span class="kw-2">*</span>;
<span class="kw">use crate</span>::<span class="kw-2">*</span>;
@@ -626,19 +626,19 @@
</span><span class="attr">#[derive(Default, Debug, Clone)]
</span><span class="kw">pub struct </span>DtraceLayer {}
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>DtraceLayer {
- <span class="kw">type </span>LayeredAccessor = DTraceAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>DtraceLayer {
+ <span class="kw">type </span>LayeredAccess = DTraceAccessor<A>;
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
DTraceAccessor { inner }
}
}
<span class="attr">#[derive(Clone)]
-</span><span class="kw">pub struct </span>DTraceAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>DTraceAccessor<A: Access> {
inner: A,
}
-<span class="kw">impl</span><A: Accessor> Debug <span class="kw">for </span>DTraceAccessor<A> {
+<span class="kw">impl</span><A: Access> Debug <span class="kw">for </span>DTraceAccessor<A> {
<span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>Formatter<<span class="lifetime">'_</span>>) -> std::fmt::Result {
f.debug_struct(<span class="string">"DTraceAccessor"</span>)
.field(<span class="string">"inner"</span>, <span class="kw-2">&</span><span class="self">self</span>.inner)
@@ -646,7 +646,7 @@
}
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>DTraceAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>DTraceAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = DtraceLayerWrapper<A::Reader>;
<span class="kw">type </span>BlockingReader = DtraceLayerWrapper<A::BlockingReader>;
diff --git a/docs/rust/src/opendal/layers/error_context.rs.html b/docs/rust/src/opendal/layers/error_context.rs.html
index fe7676388f..4707c4457f 100644
--- a/docs/rust/src/opendal/layers/error_context.rs.html
+++ b/docs/rust/src/opendal/layers/error_context.rs.html
@@ -466,28 +466,28 @@
/// - `path`: The path of this operation
</span><span class="kw">pub struct </span>ErrorContextLayer;
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>ErrorContextLayer {
- <span class="kw">type </span>LayeredAccessor = ErrorContextAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>ErrorContextLayer {
+ <span class="kw">type </span>LayeredAccess = ErrorContextAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
<span class="kw">let </span>meta = inner.info();
ErrorContextAccessor { meta, inner }
}
}
<span class="doccomment">/// Provide error context wrapper for backend.
-</span><span class="kw">pub struct </span>ErrorContextAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>ErrorContextAccessor<A: Access> {
meta: AccessorInfo,
inner: A,
}
-<span class="kw">impl</span><A: Accessor> Debug <span class="kw">for </span>ErrorContextAccessor<A> {
+<span class="kw">impl</span><A: Access> Debug <span class="kw">for </span>ErrorContextAccessor<A> {
<span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>Formatter<<span class="lifetime">'_</span>>) -> std::fmt::Result {
<span class="self">self</span>.inner.fmt(f)
}
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>ErrorContextAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>ErrorContextAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = ErrorContextWrapper<A::Reader>;
<span class="kw">type </span>BlockingReader = ErrorContextWrapper<A::BlockingReader>;
diff --git a/docs/rust/src/opendal/layers/immutable_index.rs.html b/docs/rust/src/opendal/layers/immutable_index.rs.html
index f40cbb4479..becc043d53 100644
--- a/docs/rust/src/opendal/layers/immutable_index.rs.html
+++ b/docs/rust/src/opendal/layers/immutable_index.rs.html
@@ -502,10 +502,10 @@
}
}
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>ImmutableIndexLayer {
- <span class="kw">type </span>LayeredAccessor = ImmutableIndexAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>ImmutableIndexLayer {
+ <span class="kw">type </span>LayeredAccess = ImmutableIndexAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
ImmutableIndexAccessor {
vec: <span class="self">self</span>.vec.clone(),
inner,
@@ -514,12 +514,12 @@
}
<span class="attr">#[derive(Debug, Clone)]
-</span><span class="kw">pub struct </span>ImmutableIndexAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>ImmutableIndexAccessor<A: Access> {
inner: A,
vec: Vec<String>,
}
-<span class="kw">impl</span><A: Accessor> ImmutableIndexAccessor<A> {
+<span class="kw">impl</span><A: Access> ImmutableIndexAccessor<A> {
<span class="kw">fn </span>children_flat(<span class="kw-2">&</span><span class="self">self</span>, path: <span class="kw-2">&</span>str) -> Vec<String> {
<span class="self">self</span>.vec
.iter()
@@ -567,7 +567,7 @@
}
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>ImmutableIndexAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>ImmutableIndexAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = A::Reader;
<span class="kw">type </span>BlockingReader = A::BlockingReader;
diff --git a/docs/rust/src/opendal/layers/logging.rs.html b/docs/rust/src/opendal/layers/logging.rs.html
index 7b784993fe..e5e06a4d7e 100644
--- a/docs/rust/src/opendal/layers/logging.rs.html
+++ b/docs/rust/src/opendal/layers/logging.rs.html
@@ -1515,10 +1515,10 @@
</span>}
}
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>LoggingLayer {
- <span class="kw">type </span>LayeredAccessor = LoggingAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>LoggingLayer {
+ <span class="kw">type </span>LayeredAccess = LoggingAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
<span class="kw">let </span>meta = inner.info();
LoggingAccessor {
inner,
@@ -1568,7 +1568,7 @@
}
<span class="attr">#[derive(Clone, Debug)]
-</span><span class="kw">pub struct </span>LoggingAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>LoggingAccessor<A: Access> {
inner: A,
ctx: LoggingContext,
@@ -1576,7 +1576,7 @@
<span class="kw">static </span>LOGGING_TARGET: <span class="kw-2">&</span>str = <span class="string">"opendal::services"</span>;
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>LoggingAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>LoggingAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = LoggingReader<A::Reader>;
<span class="kw">type </span>BlockingReader = LoggingReader<A::BlockingReader>;
diff --git a/docs/rust/src/opendal/layers/madsim.rs.html b/docs/rust/src/opendal/layers/madsim.rs.html
index 3a49b2d207..43312b7ba9 100644
--- a/docs/rust/src/opendal/layers/madsim.rs.html
+++ b/docs/rust/src/opendal/layers/madsim.rs.html
@@ -558,10 +558,10 @@
}
}
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>MadsimLayer {
- <span class="kw">type </span>LayeredAccessor = MadsimAccessor;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>MadsimLayer {
+ <span class="kw">type </span>LayeredAccess = MadsimAccessor;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, <span class="kw">_</span>: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, <span class="kw">_</span>: A) -> <span class="self">Self</span>::LayeredAccess {
<span class="attr">#[cfg(madsim)]
</span>{
MadsimAccessor { addr: <span class="self">self</span>.addr }
@@ -579,7 +579,7 @@
</span>addr: SocketAddr,
}
-<span class="kw">impl </span>LayeredAccessor <span class="kw">for </span>MadsimAccessor {
+<span class="kw">impl </span>LayeredAccess <span class="kw">for </span>MadsimAccessor {
<span class="kw">type </span>Inner = ();
<span class="kw">type </span>Reader = MadsimReader;
<span class="kw">type </span>BlockingReader = ();
diff --git a/docs/rust/src/opendal/layers/metrics.rs.html b/docs/rust/src/opendal/layers/metrics.rs.html
index 3dfe40f902..92352feb39 100644
--- a/docs/rust/src/opendal/layers/metrics.rs.html
+++ b/docs/rust/src/opendal/layers/metrics.rs.html
@@ -953,10 +953,10 @@
</span><span class="attr">#[derive(Debug, Copy, Clone)]
</span><span class="kw">pub struct </span>MetricsLayer;
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>MetricsLayer {
- <span class="kw">type </span>LayeredAccessor = MetricsAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>MetricsLayer {
+ <span class="kw">type </span>LayeredAccess = MetricsAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
<span class="kw">let </span>meta = inner.info();
MetricsAccessor {
@@ -1229,12 +1229,12 @@
}
<span class="attr">#[derive(Clone)]
-</span><span class="kw">pub struct </span>MetricsAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>MetricsAccessor<A: Access> {
inner: A,
handle: Arc<MetricsHandler>,
}
-<span class="kw">impl</span><A: Accessor> Debug <span class="kw">for </span>MetricsAccessor<A> {
+<span class="kw">impl</span><A: Access> Debug <span class="kw">for </span>MetricsAccessor<A> {
<span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>Formatter<<span class="lifetime">'_</span>>) -> std::fmt::Result {
f.debug_struct(<span class="string">"MetricsAccessor"</span>)
.field(<span class="string">"inner"</span>, <span class="kw-2">&</span><span class="self">self</span>.inner)
@@ -1242,7 +1242,7 @@
}
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>MetricsAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>MetricsAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = MetricWrapper<A::Reader>;
<span class="kw">type </span>BlockingReader = MetricWrapper<A::BlockingReader>;
diff --git a/docs/rust/src/opendal/layers/minitrace.rs.html b/docs/rust/src/opendal/layers/minitrace.rs.html
index 789482af1c..80ec2bf670 100644
--- a/docs/rust/src/opendal/layers/minitrace.rs.html
+++ b/docs/rust/src/opendal/layers/minitrace.rs.html
@@ -467,10 +467,10 @@
/// For real-world usage, please take a look at [`minitrace-datadog`](https://crates.io/crates/minitrace-datadog) or [`minitrace-jaeger`](https://crates.io/crates/minitrace-jaeger) .
</span><span class="kw">pub struct </span>MinitraceLayer;
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>MinitraceLayer {
- <span class="kw">type </span>LayeredAccessor = MinitraceAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>MinitraceLayer {
+ <span class="kw">type </span>LayeredAccess = MinitraceAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
MinitraceAccessor { inner }
}
}
@@ -480,7 +480,7 @@
inner: A,
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>MinitraceAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>MinitraceAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = MinitraceWrapper<A::Reader>;
<span class="kw">type </span>BlockingReader = MinitraceWrapper<A::BlockingReader>;
diff --git a/docs/rust/src/opendal/layers/oteltrace.rs.html b/docs/rust/src/opendal/layers/oteltrace.rs.html
index 2424adb6c7..9a283869f9 100644
--- a/docs/rust/src/opendal/layers/oteltrace.rs.html
+++ b/docs/rust/src/opendal/layers/oteltrace.rs.html
@@ -369,10 +369,10 @@
/// ```
</span><span class="kw">pub struct </span>OtelTraceLayer;
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>OtelTraceLayer {
- <span class="kw">type </span>LayeredAccessor = OtelTraceAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>OtelTraceLayer {
+ <span class="kw">type </span>LayeredAccess = OtelTraceAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
OtelTraceAccessor { inner }
}
}
@@ -382,7 +382,7 @@
inner: A,
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>OtelTraceAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>OtelTraceAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = OtelTraceWrapper<A::Reader>;
<span class="kw">type </span>BlockingReader = OtelTraceWrapper<A::BlockingReader>;
diff --git a/docs/rust/src/opendal/layers/prometheus.rs.html b/docs/rust/src/opendal/layers/prometheus.rs.html
index 790fe7e906..47d7d010d0 100644
--- a/docs/rust/src/opendal/layers/prometheus.rs.html
+++ b/docs/rust/src/opendal/layers/prometheus.rs.html
@@ -854,7 +854,7 @@
<span class="kw">use </span>prometheus::HistogramVec;
<span class="kw">use </span>prometheus::Registry;
-<span class="kw">use </span><span class="kw">crate</span>::raw::Accessor;
+<span class="kw">use </span><span class="kw">crate</span>::raw::Access;
<span class="kw">use </span><span class="kw">crate</span>::raw::<span class="kw-2">*</span>;
<span class="kw">use crate</span>::<span class="kw-2">*</span>;
@@ -965,10 +965,10 @@
</span>}
}
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>PrometheusLayer {
- <span class="kw">type </span>LayeredAccessor = PrometheusAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>PrometheusLayer {
+ <span class="kw">type </span>LayeredAccess = PrometheusAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
<span class="kw">let </span>meta = inner.info();
<span class="kw">let </span>scheme = meta.scheme();
@@ -1072,13 +1072,13 @@
}
<span class="attr">#[derive(Clone)]
-</span><span class="kw">pub struct </span>PrometheusAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>PrometheusAccessor<A: Access> {
inner: A,
stats: Arc<PrometheusMetrics>,
scheme: Scheme,
}
-<span class="kw">impl</span><A: Accessor> Debug <span class="kw">for </span>PrometheusAccessor<A> {
+<span class="kw">impl</span><A: Access> Debug <span class="kw">for </span>PrometheusAccessor<A> {
<span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>Formatter<<span class="lifetime">'_</span>>) -> std::fmt::Result {
f.debug_struct(<span class="string">"PrometheusAccessor"</span>)
.field(<span class="string">"inner"</span>, <span class="kw-2">&</span><span class="self">self</span>.inner)
@@ -1086,7 +1086,7 @@
}
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>PrometheusAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>PrometheusAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = PrometheusMetricWrapper<A::Reader>;
<span class="kw">type </span>BlockingReader = PrometheusMetricWrapper<A::BlockingReader>;
diff --git a/docs/rust/src/opendal/layers/prometheus_client.rs.html b/docs/rust/src/opendal/layers/prometheus_client.rs.html
index 1c7128386a..6cfeff2a44 100644
--- a/docs/rust/src/opendal/layers/prometheus_client.rs.html
+++ b/docs/rust/src/opendal/layers/prometheus_client.rs.html
@@ -674,7 +674,7 @@
<span class="kw">use </span>prometheus_client::metrics::histogram::Histogram;
<span class="kw">use </span>prometheus_client::registry::Registry;
-<span class="kw">use </span><span class="kw">crate</span>::raw::Accessor;
+<span class="kw">use </span><span class="kw">crate</span>::raw::Access;
<span class="kw">use </span><span class="kw">crate</span>::raw::<span class="kw-2">*</span>;
<span class="kw">use crate</span>::<span class="kw-2">*</span>;
@@ -737,10 +737,10 @@
}
}
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>PrometheusClientLayer {
- <span class="kw">type </span>LayeredAccessor = PrometheusAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>PrometheusClientLayer {
+ <span class="kw">type </span>LayeredAccess = PrometheusAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
<span class="kw">let </span>meta = inner.info();
<span class="kw">let </span>scheme = meta.scheme();
@@ -834,13 +834,13 @@
}
<span class="attr">#[derive(Clone)]
-</span><span class="kw">pub struct </span>PrometheusAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>PrometheusAccessor<A: Access> {
inner: A,
metrics: Arc<PrometheusClientMetrics>,
scheme: Scheme,
}
-<span class="kw">impl</span><A: Accessor> Debug <span class="kw">for </span>PrometheusAccessor<A> {
+<span class="kw">impl</span><A: Access> Debug <span class="kw">for </span>PrometheusAccessor<A> {
<span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>Formatter<<span class="lifetime">'_</span>>) -> std::fmt::Result {
f.debug_struct(<span class="string">"PrometheusAccessor"</span>)
.field(<span class="string">"inner"</span>, <span class="kw-2">&</span><span class="self">self</span>.inner)
@@ -848,7 +848,7 @@
}
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>PrometheusAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>PrometheusAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = PrometheusMetricWrapper<A::Reader>;
<span class="kw">type </span>BlockingReader = PrometheusMetricWrapper<A::BlockingReader>;
diff --git a/docs/rust/src/opendal/layers/retry.rs.html b/docs/rust/src/opendal/layers/retry.rs.html
index f90c930fa7..c5e762b606 100644
--- a/docs/rust/src/opendal/layers/retry.rs.html
+++ b/docs/rust/src/opendal/layers/retry.rs.html
@@ -1364,10 +1364,10 @@
</span>}
}
-<span class="kw">impl</span><A: Accessor, I: RetryInterceptor> Layer<A> <span class="kw">for </span>RetryLayer<I> {
- <span class="kw">type </span>LayeredAccessor = RetryAccessor<A, I>;
+<span class="kw">impl</span><A: Access, I: RetryInterceptor> Layer<A> <span class="kw">for </span>RetryLayer<I> {
+ <span class="kw">type </span>LayeredAccess = RetryAccessor<A, I>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
RetryAccessor {
inner,
builder: <span class="self">self</span>.builder.clone(),
@@ -1415,13 +1415,13 @@
}
}
-<span class="kw">pub struct </span>RetryAccessor<A: Accessor, I: RetryInterceptor> {
+<span class="kw">pub struct </span>RetryAccessor<A: Access, I: RetryInterceptor> {
inner: A,
builder: ExponentialBuilder,
notify: Arc<I>,
}
-<span class="kw">impl</span><A: Accessor, I: RetryInterceptor> Debug <span class="kw">for </span>RetryAccessor<A, I> {
+<span class="kw">impl</span><A: Access, I: RetryInterceptor> Debug <span class="kw">for </span>RetryAccessor<A, I> {
<span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>Formatter<<span class="lifetime">'_</span>>) -> std::fmt::Result {
f.debug_struct(<span class="string">"RetryAccessor"</span>)
.field(<span class="string">"inner"</span>, <span class="kw-2">&</span><span class="self">self</span>.inner)
@@ -1429,7 +1429,7 @@
}
}
-<span class="kw">impl</span><A: Accessor, I: RetryInterceptor> LayeredAccessor <span class="kw">for </span>RetryAccessor<A, I> {
+<span class="kw">impl</span><A: Access, I: RetryInterceptor> LayeredAccess <span class="kw">for </span>RetryAccessor<A, I> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = RetryWrapper<A::Reader, I>;
<span class="kw">type </span>BlockingReader = RetryWrapper<A::BlockingReader, I>;
@@ -2089,7 +2089,7 @@
attempt: Arc<Mutex<usize>>,
}
- <span class="kw">impl </span>Accessor <span class="kw">for </span>MockService {
+ <span class="kw">impl </span>Access <span class="kw">for </span>MockService {
<span class="kw">type </span>Reader = MockReader;
<span class="kw">type </span>Writer = ();
<span class="kw">type </span>Lister = MockLister;
diff --git a/docs/rust/src/opendal/layers/throttle.rs.html b/docs/rust/src/opendal/layers/throttle.rs.html
index 90e249d316..5470b197b2 100644
--- a/docs/rust/src/opendal/layers/throttle.rs.html
+++ b/docs/rust/src/opendal/layers/throttle.rs.html
@@ -339,10 +339,10 @@
}
}
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>ThrottleLayer {
- <span class="kw">type </span>LayeredAccessor = ThrottleAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>ThrottleLayer {
+ <span class="kw">type </span>LayeredAccess = ThrottleAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, accessor: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, accessor: A) -> <span class="self">Self</span>::LayeredAccess {
<span class="kw">let </span>rate_limiter = Arc::new(RateLimiter::direct(
Quota::per_second(<span class="self">self</span>.bandwidth).allow_burst(<span class="self">self</span>.burst),
));
@@ -359,12 +359,12 @@
</span><span class="kw">type </span>SharedRateLimiter = Arc<RateLimiter<NotKeyed, InMemoryState, DefaultClock, NoOpMiddleware>>;
<span class="attr">#[derive(Debug, Clone)]
-</span><span class="kw">pub struct </span>ThrottleAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>ThrottleAccessor<A: Access> {
inner: A,
rate_limiter: SharedRateLimiter,
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>ThrottleAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>ThrottleAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = ThrottleWrapper<A::Reader>;
<span class="kw">type </span>BlockingReader = ThrottleWrapper<A::BlockingReader>;
diff --git a/docs/rust/src/opendal/layers/timeout.rs.html b/docs/rust/src/opendal/layers/timeout.rs.html
index 7e36d47c43..5348b0534e 100644
--- a/docs/rust/src/opendal/layers/timeout.rs.html
+++ b/docs/rust/src/opendal/layers/timeout.rs.html
@@ -600,10 +600,10 @@
</span>}
}
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>TimeoutLayer {
- <span class="kw">type </span>LayeredAccessor = TimeoutAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>TimeoutLayer {
+ <span class="kw">type </span>LayeredAccess = TimeoutAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
TimeoutAccessor {
inner,
@@ -614,14 +614,14 @@
}
<span class="attr">#[derive(Debug, Clone)]
-</span><span class="kw">pub struct </span>TimeoutAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>TimeoutAccessor<A: Access> {
inner: A,
timeout: Duration,
io_timeout: Duration,
}
-<span class="kw">impl</span><A: Accessor> TimeoutAccessor<A> {
+<span class="kw">impl</span><A: Access> TimeoutAccessor<A> {
<span class="kw">async fn </span>timeout<F: Future<Output = <span class="prelude-ty">Result</span><T>>, T>(<span class="kw-2">&</span><span class="self">self</span>, op: Operation, fut: F) -> <span class="prelude-ty">Result</span><T> {
tokio::time::timeout(<span class="self">self</span>.timeout, fut).<span class="kw">await</span>.map_err(|<span class="kw">_</span>| {
Error::new(ErrorKind::Unexpected, <span class="string">"operation timeout reached"</span>)
@@ -647,7 +647,7 @@
</span>}
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>TimeoutAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>TimeoutAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = TimeoutWrapper<A::Reader>;
<span class="kw">type </span>BlockingReader = A::BlockingReader;
@@ -801,7 +801,7 @@
<span class="attr">#[derive(Debug, Clone, Default)]
</span><span class="kw">struct </span>MockService;
- <span class="kw">impl </span>Accessor <span class="kw">for </span>MockService {
+ <span class="kw">impl </span>Access <span class="kw">for </span>MockService {
<span class="kw">type </span>Reader = MockReader;
<span class="kw">type </span>Writer = ();
<span class="kw">type </span>Lister = MockLister;
@@ -857,7 +857,7 @@
<span class="attr">#[tokio::test]
</span><span class="kw">async fn </span>test_operation_timeout() {
- <span class="kw">let </span>acc = Arc::new(TypeEraseLayer.layer(MockService)) <span class="kw">as </span>FusedAccessor;
+ <span class="kw">let </span>acc = Arc::new(TypeEraseLayer.layer(MockService)) <span class="kw">as </span>Accessor;
<span class="kw">let </span>op = Operator::from_inner(acc)
.layer(TimeoutLayer::new().with_timeout(Duration::from_secs(<span class="number">1</span>)));
@@ -876,7 +876,7 @@
<span class="attr">#[tokio::test]
</span><span class="kw">async fn </span>test_io_timeout() {
- <span class="kw">let </span>acc = Arc::new(TypeEraseLayer.layer(MockService)) <span class="kw">as </span>FusedAccessor;
+ <span class="kw">let </span>acc = Arc::new(TypeEraseLayer.layer(MockService)) <span class="kw">as </span>Accessor;
<span class="kw">let </span>op = Operator::from_inner(acc)
.layer(TimeoutLayer::new().with_io_timeout(Duration::from_secs(<span class="number">1</span>)));
@@ -891,7 +891,7 @@
<span class="attr">#[tokio::test]
</span><span class="kw">async fn </span>test_list_timeout() {
- <span class="kw">let </span>acc = Arc::new(TypeEraseLayer.layer(MockService)) <span class="kw">as </span>FusedAccessor;
+ <span class="kw">let </span>acc = Arc::new(TypeEraseLayer.layer(MockService)) <span class="kw">as </span>Accessor;
<span class="kw">let </span>op = Operator::from_inner(acc).layer(
TimeoutLayer::new()
.with_timeout(Duration::from_secs(<span class="number">1</span>))
@@ -917,7 +917,7 @@
.with_io_timeout(Duration::from_secs(<span class="number">1</span>));
<span class="kw">let </span>timeout_acc = timeout_layer.layer(acc);
- <span class="kw">let </span>(<span class="kw">_</span>, <span class="kw-2">mut </span>lister) = Accessor::list(<span class="kw-2">&</span>timeout_acc, <span class="string">"test"</span>, OpList::default())
+ <span class="kw">let </span>(<span class="kw">_</span>, <span class="kw-2">mut </span>lister) = Access::list(<span class="kw-2">&</span>timeout_acc, <span class="string">"test"</span>, OpList::default())
.<span class="kw">await
</span>.unwrap();
diff --git a/docs/rust/src/opendal/layers/tracing.rs.html b/docs/rust/src/opendal/layers/tracing.rs.html
index 333267c54d..d7b93a8993 100644
--- a/docs/rust/src/opendal/layers/tracing.rs.html
+++ b/docs/rust/src/opendal/layers/tracing.rs.html
@@ -453,10 +453,10 @@
/// For real-world usage, please take a look at [`tracing-opentelemetry`](https://crates.io/crates/tracing-opentelemetry).
</span><span class="kw">pub struct </span>TracingLayer;
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>TracingLayer {
- <span class="kw">type </span>LayeredAccessor = TracingAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>TracingLayer {
+ <span class="kw">type </span>LayeredAccess = TracingAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
TracingAccessor { inner }
}
}
@@ -466,7 +466,7 @@
inner: A,
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>TracingAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>TracingAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = TracingWrapper<A::Reader>;
<span class="kw">type </span>BlockingReader = TracingWrapper<A::BlockingReader>;
diff --git a/docs/rust/src/opendal/layers/type_eraser.rs.html b/docs/rust/src/opendal/layers/type_eraser.rs.html
index f77287fab4..18e07e8a51 100644
--- a/docs/rust/src/opendal/layers/type_eraser.rs.html
+++ b/docs/rust/src/opendal/layers/type_eraser.rs.html
@@ -137,26 +137,26 @@
/// external users. We use this layer to erase any generic types.
</span><span class="kw">pub struct </span>TypeEraseLayer;
-<span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span>TypeEraseLayer {
- <span class="kw">type </span>LayeredAccessor = TypeEraseAccessor<A>;
+<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>TypeEraseLayer {
+ <span class="kw">type </span>LayeredAccess = TypeEraseAccessor<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
TypeEraseAccessor { inner }
}
}
<span class="doccomment">/// Provide reader wrapper for backend.
-</span><span class="kw">pub struct </span>TypeEraseAccessor<A: Accessor> {
+</span><span class="kw">pub struct </span>TypeEraseAccessor<A: Access> {
inner: A,
}
-<span class="kw">impl</span><A: Accessor> Debug <span class="kw">for </span>TypeEraseAccessor<A> {
+<span class="kw">impl</span><A: Access> Debug <span class="kw">for </span>TypeEraseAccessor<A> {
<span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>Formatter<<span class="lifetime">'_</span>>) -> std::fmt::Result {
<span class="self">self</span>.inner.fmt(f)
}
}
-<span class="kw">impl</span><A: Accessor> LayeredAccessor <span class="kw">for </span>TypeEraseAccessor<A> {
+<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>TypeEraseAccessor<A> {
<span class="kw">type </span>Inner = A;
<span class="kw">type </span>Reader = oio::Reader;
<span class="kw">type </span>BlockingReader = oio::BlockingReader;
diff --git a/docs/rust/src/opendal/raw/accessor.rs.html b/docs/rust/src/opendal/raw/accessor.rs.html
index dea4ae2081..b7cb27ea81 100644
--- a/docs/rust/src/opendal/raw/accessor.rs.html
+++ b/docs/rust/src/opendal/raw/accessor.rs.html
@@ -939,14 +939,14 @@
<span class="doccomment">/// Underlying trait of all backends for implementers.
///
/// The actual data access of storage service happens in Accessor layer.
-/// Every storage supported by OpenDAL must implement [`Accessor`] but not all
-/// methods of [`Accessor`] will be implemented according to how the storage service is.
+/// Every storage supported by OpenDAL must implement [`Access`] but not all
+/// methods of [`Access`] will be implemented according to how the storage service is.
///
/// For example, user can not modify the content from one HTTP file server directly.
/// So [`Http`][crate::services::Http] implements and provides only read related actions.
///
-/// [`Accessor`] gives default implementation for all methods which will raise [`ErrorKind::Unsupported`] error.
-/// And what action this [`Accessor`] supports will be pointed out in [`AccessorInfo`].
+/// [`Access`] gives default implementation for all methods which will raise [`ErrorKind::Unsupported`] error.
+/// And what action this [`Access`] supports will be pointed out in [`AccessorInfo`].
///
/// # Note
///
@@ -966,7 +966,7 @@
/// - Operations with capability requirement like `presign` are optional operations.
/// - Services can implement them based on services capabilities.
/// - The default implementation should return [`ErrorKind::Unsupported`].
-</span><span class="kw">pub trait </span>Accessor: Send + Sync + Debug + Unpin + <span class="lifetime">'static </span>{
+</span><span class="kw">pub trait </span>Access: Send + Sync + Debug + Unpin + <span class="lifetime">'static </span>{
<span class="doccomment">/// Reader is the associated reader returned in `read` operation.
</span><span class="kw">type </span>Reader: oio::Read;
<span class="doccomment">/// Writer is the associated writer returned in `write` operation.
@@ -1307,7 +1307,7 @@
}
}
-<span class="doccomment">/// `AccessorDyn` is the dyn version of [`Accessor`] make it possible to use as
+<span class="doccomment">/// `AccessorDyn` is the dyn version of [`Access`] make it possible to use as
/// `Box<dyn AccessorDyn>`.
</span><span class="kw">pub trait </span>AccessorDyn: Send + Sync + Debug + Unpin {
<span class="doccomment">/// Dyn version of [`Accessor::info`]
@@ -1387,7 +1387,7 @@
<span class="kw">impl</span><A: <span class="question-mark">?</span>Sized> AccessorDyn <span class="kw">for </span>A
<span class="kw">where
- </span>A: Accessor<
+ </span>A: Access<
Reader = oio::Reader,
BlockingReader = oio::BlockingReader,
Writer = oio::Writer,
@@ -1511,7 +1511,7 @@
}
}
-<span class="kw">impl </span>Accessor <span class="kw">for dyn </span>AccessorDyn {
+<span class="kw">impl </span>Access <span class="kw">for dyn </span>AccessorDyn {
<span class="kw">type </span>Reader = oio::Reader;
<span class="kw">type </span>BlockingReader = oio::BlockingReader;
<span class="kw">type </span>Writer = oio::Writer;
@@ -1597,7 +1597,7 @@
}
<span class="doccomment">/// Dummy implementation of accessor.
-</span><span class="kw">impl </span>Accessor <span class="kw">for </span>() {
+</span><span class="kw">impl </span>Access <span class="kw">for </span>() {
<span class="kw">type </span>Reader = ();
<span class="kw">type </span>Writer = ();
<span class="kw">type </span>Lister = ();
@@ -1617,11 +1617,11 @@
}
<span class="doccomment">/// All functions in `Accessor` only requires `&self`, so it's safe to implement
-/// `Accessor` for `Arc<impl Accessor>`.
+/// `Accessor` for `Arc<impl Access>`.
</span><span class="comment">// If we use async fn directly, some weird higher rank trait bound error (`Send`/`Accessor` impl not general enough) will happen.
// Probably related to https://github.com/rust-lang/rust/issues/96865
</span><span class="attr">#[allow(clippy::manual_async_fn)]
-</span><span class="kw">impl</span><T: Accessor + <span class="question-mark">?</span>Sized> Accessor <span class="kw">for </span>Arc<T> {
+</span><span class="kw">impl</span><T: Access + <span class="question-mark">?</span>Sized> Access <span class="kw">for </span>Arc<T> {
<span class="kw">type </span>Reader = T::Reader;
<span class="kw">type </span>Writer = T::Writer;
<span class="kw">type </span>Lister = T::Lister;
@@ -1740,8 +1740,8 @@
}
}
-<span class="doccomment">/// FusedAccessor is the type erased accessor with `Arc<dyn Accessor>`.
-</span><span class="kw">pub type </span>FusedAccessor = Arc<<span class="kw">dyn </span>AccessorDyn>;
+<span class="doccomment">/// Accessor is the type erased accessor with `Arc<dyn Accessor>`.
+</span><span class="kw">pub type </span>Accessor = Arc<<span class="kw">dyn </span>AccessorDyn>;
<span class="doccomment">/// Metadata for accessor, users can use this metadata to get information of underlying backend.
</span><span class="attr">#[derive(Clone, Debug, Default)]
diff --git a/docs/rust/src/opendal/raw/adapters/kv/backend.rs.html b/docs/rust/src/opendal/raw/adapters/kv/backend.rs.html
index c1a55a6b78..3056f64f15 100644
--- a/docs/rust/src/opendal/raw/adapters/kv/backend.rs.html
+++ b/docs/rust/src/opendal/raw/adapters/kv/backend.rs.html
@@ -330,7 +330,7 @@
</span>}
}
-<span class="kw">impl</span><S: Adapter> Accessor <span class="kw">for </span>Backend<S> {
+<span class="kw">impl</span><S: Adapter> Access <span class="kw">for </span>Backend<S> {
<span class="kw">type </span>Reader = Buffer;
<span class="kw">type </span>BlockingReader = Buffer;
<span class="kw">type </span>Writer = KvWriter<S>;
diff --git a/docs/rust/src/opendal/raw/adapters/typed_kv/backend.rs.html b/docs/rust/src/opendal/raw/adapters/typed_kv/backend.rs.html
index 71572980e1..57119367d0 100644
--- a/docs/rust/src/opendal/raw/adapters/typed_kv/backend.rs.html
+++ b/docs/rust/src/opendal/raw/adapters/typed_kv/backend.rs.html
@@ -379,7 +379,7 @@
</span>}
}
-<span class="kw">impl</span><S: Adapter> Accessor <span class="kw">for </span>Backend<S> {
+<span class="kw">impl</span><S: Adapter> Access <span class="kw">for </span>Backend<S> {
<span class="kw">type </span>Reader = Buffer;
<span class="kw">type </span>BlockingReader = Buffer;
<span class="kw">type </span>Writer = KvWriter<S>;
diff --git a/docs/rust/src/opendal/raw/enum_utils.rs.html b/docs/rust/src/opendal/raw/enum_utils.rs.html
index 1a94b59eac..5479305447 100644
--- a/docs/rust/src/opendal/raw/enum_utils.rs.html
+++ b/docs/rust/src/opendal/raw/enum_utils.rs.html
@@ -256,7 +256,7 @@
//! So we can't write the following code:
//!
//! ```txt
-//! impl Accessor for S3Backend {
+//! impl Access for S3Backend {
//! type Writer = impl oio::Write;
//! }
//! ```
@@ -264,7 +264,7 @@
//! Which means we have to write the type directly like:
//!
//! ```txt
-//! impl Accessor for OssBackend {
+//! impl Access for OssBackend {
//! type Writer = raw::TwoWays<
//! oio::MultipartWriter<OssWriter>,
//! oio::AppendWriter<OssWriter>,
diff --git a/docs/rust/src/opendal/raw/layer.rs.html b/docs/rust/src/opendal/raw/layer.rs.html
index cd8b789758..f76cf3c2c1 100644
--- a/docs/rust/src/opendal/raw/layer.rs.html
+++ b/docs/rust/src/opendal/raw/layer.rs.html
@@ -445,11 +445,11 @@
///
/// /// Implement the real accessor logic here.
/// #[derive(Debug)]
-/// struct TraceAccessor<A: Accessor> {
+/// struct TraceAccessor<A: Access> {
/// inner: A,
/// }
///
-/// impl<A: Accessor> LayeredAccessor for TraceAccessor<A> {
+/// impl<A: Access> LayeredAccess for TraceAccessor<A> {
/// type Inner = A;
/// type Reader = A::Reader;
/// type BlockingReader = A::BlockingReader;
@@ -504,28 +504,28 @@
/// /// Will be used like `op.layer(TraceLayer)`
/// struct TraceLayer;
///
-/// impl<A: Accessor> Layer<A> for TraceLayer {
-/// type LayeredAccessor = TraceAccessor<A>;
+/// impl<A: Access> Layer<A> for TraceLayer {
+/// type LayeredAccess = TraceAccessor<A>;
///
-/// fn layer(&self, inner: A) -> Self::LayeredAccessor {
+/// fn layer(&self, inner: A) -> Self::LayeredAccess {
/// TraceAccessor { inner }
/// }
/// }
/// ```
-</span><span class="kw">pub trait </span>Layer<A: Accessor> {
+</span><span class="kw">pub trait </span>Layer<A: Access> {
<span class="doccomment">/// The layered accessor that returned by this layer.
- </span><span class="kw">type </span>LayeredAccessor: Accessor;
+ </span><span class="kw">type </span>LayeredAccess: Access;
<span class="doccomment">/// Intercept the operations on the underlying storage.
- </span><span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor;
+ </span><span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess;
}
-<span class="doccomment">/// LayeredAccessor is layered accessor that forward all not implemented
+<span class="doccomment">/// LayeredAccess is layered accessor that forward all not implemented
/// method to inner.
</span><span class="attr">#[allow(missing_docs)]
-</span><span class="kw">pub trait </span>LayeredAccessor: Send + Sync + Debug + Unpin + <span class="lifetime">'static </span>{
- <span class="kw">type </span>Inner: Accessor;
+</span><span class="kw">pub trait </span>LayeredAccess: Send + Sync + Debug + Unpin + <span class="lifetime">'static </span>{
+ <span class="kw">type </span>Inner: Access;
<span class="kw">type </span>Reader: oio::Read;
<span class="kw">type </span>BlockingReader: oio::BlockingRead;
<span class="kw">type </span>Writer: oio::Write;
@@ -634,7 +634,7 @@
<span class="kw">fn </span>blocking_list(<span class="kw-2">&</span><span class="self">self</span>, path: <span class="kw-2">&</span>str, args: OpList) -> <span class="prelude-ty">Result</span><(RpList, <span class="self">Self</span>::BlockingLister)>;
}
-<span class="kw">impl</span><L: LayeredAccessor> Accessor <span class="kw">for </span>L {
+<span class="kw">impl</span><L: LayeredAccess> Access <span class="kw">for </span>L {
<span class="kw">type </span>Reader = L::Reader;
<span class="kw">type </span>BlockingReader = L::BlockingReader;
<span class="kw">type </span>Writer = L::Writer;
@@ -729,16 +729,16 @@
<span class="kw">use </span><span class="kw">crate</span>::services::Memory;
<span class="attr">#[derive(Debug)]
- </span><span class="kw">struct </span>Test<A: Accessor> {
+ </span><span class="kw">struct </span>Test<A: Access> {
<span class="attr">#[allow(dead_code)]
</span>inner: <span class="prelude-ty">Option</span><A>,
deleted: Arc<Mutex<bool>>,
}
- <span class="kw">impl</span><A: Accessor> Layer<A> <span class="kw">for </span><span class="kw-2">&</span>Test<A> {
- <span class="kw">type </span>LayeredAccessor = Test<A>;
+ <span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span><span class="kw-2">&</span>Test<A> {
+ <span class="kw">type </span>LayeredAccess = Test<A>;
- <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccessor {
+ <span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
Test {
inner: <span class="prelude-val">Some</span>(inner),
deleted: <span class="self">self</span>.deleted.clone(),
@@ -746,7 +746,7 @@
}
}
- <span class="kw">impl</span><A: Accessor> Accessor <span class="kw">for </span>Test<A> {
+ <span class="kw">impl</span><A: Access> Access <span class="kw">for </span>Test<A> {
<span class="kw">type </span>Reader = ();
<span class="kw">type </span>BlockingReader = ();
<span class="kw">type </span>Writer = ();
diff --git a/docs/rust/src/opendal/raw/oio/list/flat_list.rs.html b/docs/rust/src/opendal/raw/oio/list/flat_list.rs.html
index 7e70260ca1..9a7c967839 100644
--- a/docs/rust/src/opendal/raw/oio/list/flat_list.rs.html
+++ b/docs/rust/src/opendal/raw/oio/list/flat_list.rs.html
@@ -322,7 +322,7 @@
/// Especially, for storage services that can't return dirs first, ToFlatLister
/// may output parent dirs' files before nested dirs, this is expected because files
/// always output directly while listing.
-</span><span class="kw">pub struct </span>FlatLister<A: Accessor, L> {
+</span><span class="kw">pub struct </span>FlatLister<A: Access, L> {
acc: A,
root: String,
@@ -333,15 +333,15 @@
<span class="doccomment">/// # Safety
///
/// wasm32 is a special target that we only have one event-loop for this FlatLister.
-</span><span class="kw">unsafe impl</span><A: Accessor, L> Send <span class="kw">for </span>FlatLister<A, L> {}
+</span><span class="kw">unsafe impl</span><A: Access, L> Send <span class="kw">for </span>FlatLister<A, L> {}
<span class="doccomment">/// # Safety
///
/// We will only take `&mut Self` reference for FsLister.
-</span><span class="kw">unsafe impl</span><A: Accessor, L> Sync <span class="kw">for </span>FlatLister<A, L> {}
+</span><span class="kw">unsafe impl</span><A: Access, L> Sync <span class="kw">for </span>FlatLister<A, L> {}
<span class="kw">impl</span><A, L> FlatLister<A, L>
<span class="kw">where
- </span>A: Accessor,
+ </span>A: Access,
{
<span class="doccomment">/// Create a new flat lister
</span><span class="kw">pub fn </span>new(acc: A, path: <span class="kw-2">&</span>str) -> FlatLister<A, L> {
@@ -356,7 +356,7 @@
<span class="kw">impl</span><A, L> oio::List <span class="kw">for </span>FlatLister<A, L>
<span class="kw">where
- </span>A: Accessor<Lister = L>,
+ </span>A: Access<Lister = L>,
L: oio::List,
{
<span class="kw">async fn </span>next(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><oio::Entry>> {
@@ -399,7 +399,7 @@
<span class="kw">impl</span><A, P> oio::BlockingList <span class="kw">for </span>FlatLister<A, P>
<span class="kw">where
- </span>A: Accessor<BlockingLister = P>,
+ </span>A: Access<BlockingLister = P>,
P: oio::BlockingList,
{
<span class="kw">fn </span>next(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><oio::Entry>> {
@@ -476,7 +476,7 @@
}
}
- <span class="kw">impl </span>Accessor <span class="kw">for </span>MockService {
+ <span class="kw">impl </span>Access <span class="kw">for </span>MockService {
<span class="kw">type </span>Reader = ();
<span class="kw">type </span>BlockingReader = ();
<span class="kw">type </span>Writer = ();
diff --git a/docs/rust/src/opendal/raw/operation.rs.html b/docs/rust/src/opendal/raw/operation.rs.html
index 7a529c771c..4e8449a3c2 100644
--- a/docs/rust/src/opendal/raw/operation.rs.html
+++ b/docs/rust/src/opendal/raw/operation.rs.html
@@ -131,44 +131,44 @@
</span><span class="attr">#[derive(Debug, Copy, Clone, Hash, Eq, PartialEq, Default)]
#[non_exhaustive]
</span><span class="kw">pub enum </span>Operation {
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::info`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::info`]
</span><span class="attr">#[default]
</span>Info,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::create_dir`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::create_dir`]
</span>CreateDir,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::read`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::read`]
</span>Read,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::write`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::write`]
</span>Write,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::copy`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::copy`]
</span>Copy,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::rename`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::rename`]
</span>Rename,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::stat`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::stat`]
</span>Stat,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::delete`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::delete`]
</span>Delete,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::list`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::list`]
</span>List,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::batch`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::batch`]
</span>Batch,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::presign`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::presign`]
</span>Presign,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::blocking_create_dir`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::blocking_create_dir`]
</span>BlockingCreateDir,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::blocking_read`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::blocking_read`]
</span>BlockingRead,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::blocking_write`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::blocking_write`]
</span>BlockingWrite,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::blocking_copy`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::blocking_copy`]
</span>BlockingCopy,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::blocking_rename`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::blocking_rename`]
</span>BlockingRename,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::blocking_stat`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::blocking_stat`]
</span>BlockingStat,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::blocking_delete`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::blocking_delete`]
</span>BlockingDelete,
- <span class="doccomment">/// Operation for [`crate::raw::Accessor::blocking_list`]
+ <span class="doccomment">/// Operation for [`crate::raw::Access::blocking_list`]
</span>BlockingList,
}
diff --git a/docs/rust/src/opendal/services/alluxio/backend.rs.html b/docs/rust/src/opendal/services/alluxio/backend.rs.html
index 617fc4fe85..125193d785 100644
--- a/docs/rust/src/opendal/services/alluxio/backend.rs.html
+++ b/docs/rust/src/opendal/services/alluxio/backend.rs.html
@@ -466,7 +466,7 @@
core: Arc<AlluxioCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>AlluxioBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>AlluxioBackend {
<span class="kw">type </span>Reader = AlluxioReader;
<span class="kw">type </span>Writer = AlluxioWriters;
<span class="kw">type </span>Lister = oio::PageLister<AlluxioLister>;
diff --git a/docs/rust/src/opendal/services/azblob/backend.rs.html b/docs/rust/src/opendal/services/azblob/backend.rs.html
index 58de0317a3..235ce415fc 100644
--- a/docs/rust/src/opendal/services/azblob/backend.rs.html
+++ b/docs/rust/src/opendal/services/azblob/backend.rs.html
@@ -1461,7 +1461,7 @@
has_sas_token: bool,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>AzblobBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>AzblobBackend {
<span class="kw">type </span>Reader = AzblobReader;
<span class="kw">type </span>Writer = AzblobWriters;
<span class="kw">type </span>Lister = oio::PageLister<AzblobLister>;
diff --git a/docs/rust/src/opendal/services/azdls/backend.rs.html b/docs/rust/src/opendal/services/azdls/backend.rs.html
index 75c60fd471..cad37b9b60 100644
--- a/docs/rust/src/opendal/services/azdls/backend.rs.html
+++ b/docs/rust/src/opendal/services/azdls/backend.rs.html
@@ -726,7 +726,7 @@
core: Arc<AzdlsCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>AzdlsBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>AzdlsBackend {
<span class="kw">type </span>Reader = AzdlsReader;
<span class="kw">type </span>Writer = AzdlsWriters;
<span class="kw">type </span>Lister = oio::PageLister<AzdlsLister>;
diff --git a/docs/rust/src/opendal/services/azfile/backend.rs.html b/docs/rust/src/opendal/services/azfile/backend.rs.html
index 828af54e6f..a786c57ebf 100644
--- a/docs/rust/src/opendal/services/azfile/backend.rs.html
+++ b/docs/rust/src/opendal/services/azfile/backend.rs.html
@@ -699,7 +699,7 @@
core: Arc<AzfileCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>AzfileBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>AzfileBackend {
<span class="kw">type </span>Reader = AzfileReader;
<span class="kw">type </span>Writer = AzfileWriters;
<span class="kw">type </span>Lister = oio::PageLister<AzfileLister>;
diff --git a/docs/rust/src/opendal/services/b2/backend.rs.html b/docs/rust/src/opendal/services/b2/backend.rs.html
index 32953603cb..f249c528d4 100644
--- a/docs/rust/src/opendal/services/b2/backend.rs.html
+++ b/docs/rust/src/opendal/services/b2/backend.rs.html
@@ -784,7 +784,7 @@
core: Arc<B2Core>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>B2Backend {
+<span class="kw">impl </span>Access <span class="kw">for </span>B2Backend {
<span class="kw">type </span>Reader = B2Reader;
<span class="kw">type </span>Writer = B2Writers;
<span class="kw">type </span>Lister = oio::PageLister<B2Lister>;
diff --git a/docs/rust/src/opendal/services/chainsafe/backend.rs.html b/docs/rust/src/opendal/services/chainsafe/backend.rs.html
index 955ddff13a..8028c4e179 100644
--- a/docs/rust/src/opendal/services/chainsafe/backend.rs.html
+++ b/docs/rust/src/opendal/services/chainsafe/backend.rs.html
@@ -500,7 +500,7 @@
core: Arc<ChainsafeCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>ChainsafeBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>ChainsafeBackend {
<span class="kw">type </span>Reader = ChainsafeReader;
<span class="kw">type </span>Writer = ChainsafeWriters;
<span class="kw">type </span>Lister = oio::PageLister<ChainsafeLister>;
diff --git a/docs/rust/src/opendal/services/compfs/backend.rs.html b/docs/rust/src/opendal/services/compfs/backend.rs.html
index 965a0a836e..c8a025d163 100644
--- a/docs/rust/src/opendal/services/compfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/compfs/backend.rs.html
@@ -140,7 +140,7 @@
rt: CompioThread,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>CompfsBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>CompfsBackend {
<span class="kw">type </span>Reader = ();
<span class="kw">type </span>Writer = ();
<span class="kw">type </span>Lister = ();
diff --git a/docs/rust/src/opendal/services/cos/backend.rs.html b/docs/rust/src/opendal/services/cos/backend.rs.html
index dfdc230fa1..86c7e9f3e5 100644
--- a/docs/rust/src/opendal/services/cos/backend.rs.html
+++ b/docs/rust/src/opendal/services/cos/backend.rs.html
@@ -649,7 +649,7 @@
core: Arc<CosCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>CosBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>CosBackend {
<span class="kw">type </span>Reader = CosReader;
<span class="kw">type </span>Writer = CosWriters;
<span class="kw">type </span>Lister = oio::PageLister<CosLister>;
diff --git a/docs/rust/src/opendal/services/dbfs/backend.rs.html b/docs/rust/src/opendal/services/dbfs/backend.rs.html
index 36f0d69ce5..6a6af05528 100644
--- a/docs/rust/src/opendal/services/dbfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/dbfs/backend.rs.html
@@ -460,7 +460,7 @@
core: Arc<DbfsCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>DbfsBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>DbfsBackend {
<span class="kw">type </span>Reader = DbfsReader;
<span class="kw">type </span>Writer = oio::OneShotWriter<DbfsWriter>;
<span class="kw">type </span>Lister = oio::PageLister<DbfsLister>;
diff --git a/docs/rust/src/opendal/services/dropbox/backend.rs.html b/docs/rust/src/opendal/services/dropbox/backend.rs.html
index 831ce3f6e2..d495a143b4 100644
--- a/docs/rust/src/opendal/services/dropbox/backend.rs.html
+++ b/docs/rust/src/opendal/services/dropbox/backend.rs.html
@@ -308,7 +308,7 @@
<span class="kw">pub </span>core: Arc<DropboxCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>DropboxBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>DropboxBackend {
<span class="kw">type </span>Reader = DropboxReader;
<span class="kw">type </span>Writer = oio::OneShotWriter<DropboxWriter>;
<span class="kw">type </span>Lister = oio::PageLister<DropboxLister>;
diff --git a/docs/rust/src/opendal/services/fs/backend.rs.html b/docs/rust/src/opendal/services/fs/backend.rs.html
index cd276762ff..23760fa8dd 100644
--- a/docs/rust/src/opendal/services/fs/backend.rs.html
+++ b/docs/rust/src/opendal/services/fs/backend.rs.html
@@ -719,7 +719,7 @@
core: Arc<FsCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>FsBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>FsBackend {
<span class="kw">type </span>Reader = FsReader;
<span class="kw">type </span>Writer = FsWriter<tokio::fs::File>;
<span class="kw">type </span>Lister = <span class="prelude-ty">Option</span><FsLister<tokio::fs::ReadDir>>;
diff --git a/docs/rust/src/opendal/services/ftp/backend.rs.html b/docs/rust/src/opendal/services/ftp/backend.rs.html
index c79eabebc7..3c6c2fdf5d 100644
--- a/docs/rust/src/opendal/services/ftp/backend.rs.html
+++ b/docs/rust/src/opendal/services/ftp/backend.rs.html
@@ -809,7 +809,7 @@
}
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>FtpBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>FtpBackend {
<span class="kw">type </span>Reader = FtpReader;
<span class="kw">type </span>Writer = FtpWriter;
<span class="kw">type </span>Lister = FtpLister;
diff --git a/docs/rust/src/opendal/services/gcs/backend.rs.html b/docs/rust/src/opendal/services/gcs/backend.rs.html
index 7346960029..6d98ae2087 100644
--- a/docs/rust/src/opendal/services/gcs/backend.rs.html
+++ b/docs/rust/src/opendal/services/gcs/backend.rs.html
@@ -940,7 +940,7 @@
core: Arc<GcsCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>GcsBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>GcsBackend {
<span class="kw">type </span>Reader = GcsReader;
<span class="kw">type </span>Writer = GcsWriters;
<span class="kw">type </span>Lister = oio::PageLister<GcsLister>;
diff --git a/docs/rust/src/opendal/services/gdrive/backend.rs.html b/docs/rust/src/opendal/services/gdrive/backend.rs.html
index e823eeffa2..3ea4a2a483 100644
--- a/docs/rust/src/opendal/services/gdrive/backend.rs.html
+++ b/docs/rust/src/opendal/services/gdrive/backend.rs.html
@@ -285,7 +285,7 @@
<span class="kw">pub </span>core: Arc<GdriveCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>GdriveBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>GdriveBackend {
<span class="kw">type </span>Reader = GdriveReader;
<span class="kw">type </span>Writer = oio::OneShotWriter<GdriveWriter>;
<span class="kw">type </span>Lister = oio::PageLister<GdriveLister>;
diff --git a/docs/rust/src/opendal/services/ghac/backend.rs.html b/docs/rust/src/opendal/services/ghac/backend.rs.html
index d8a2ca1fe6..6278fb4bdc 100644
--- a/docs/rust/src/opendal/services/ghac/backend.rs.html
+++ b/docs/rust/src/opendal/services/ghac/backend.rs.html
@@ -731,7 +731,7 @@
<span class="kw">pub </span>client: HttpClient,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>GhacBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>GhacBackend {
<span class="kw">type </span>Reader = GhacReader;
<span class="kw">type </span>Writer = GhacWriter;
<span class="kw">type </span>Lister = ();
diff --git a/docs/rust/src/opendal/services/github/backend.rs.html b/docs/rust/src/opendal/services/github/backend.rs.html
index 1ef11101a9..3037758aba 100644
--- a/docs/rust/src/opendal/services/github/backend.rs.html
+++ b/docs/rust/src/opendal/services/github/backend.rs.html
@@ -540,7 +540,7 @@
core: Arc<GithubCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>GithubBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>GithubBackend {
<span class="kw">type </span>Reader = GithubReader;
<span class="kw">type </span>Writer = GithubWriters;
diff --git a/docs/rust/src/opendal/services/hdfs/backend.rs.html b/docs/rust/src/opendal/services/hdfs/backend.rs.html
index a09cc00f00..3118f6bf40 100644
--- a/docs/rust/src/opendal/services/hdfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/hdfs/backend.rs.html
@@ -910,7 +910,7 @@
</span><span class="kw">unsafe impl </span>Send <span class="kw">for </span>HdfsBackend {}
<span class="kw">unsafe impl </span>Sync <span class="kw">for </span>HdfsBackend {}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>HdfsBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>HdfsBackend {
<span class="kw">type </span>Reader = HdfsReader;
<span class="kw">type </span>Writer = HdfsWriter<hdrs::AsyncFile>;
<span class="kw">type </span>Lister = <span class="prelude-ty">Option</span><HdfsLister>;
diff --git a/docs/rust/src/opendal/services/hdfs_native/backend.rs.html b/docs/rust/src/opendal/services/hdfs_native/backend.rs.html
index e5bc59cfcf..ced23b4f47 100644
--- a/docs/rust/src/opendal/services/hdfs_native/backend.rs.html
+++ b/docs/rust/src/opendal/services/hdfs_native/backend.rs.html
@@ -455,7 +455,7 @@
</span><span class="kw">unsafe impl </span>Send <span class="kw">for </span>HdfsNativeBackend {}
<span class="kw">unsafe impl </span>Sync <span class="kw">for </span>HdfsNativeBackend {}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>HdfsNativeBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>HdfsNativeBackend {
<span class="kw">type </span>Reader = HdfsNativeReader;
<span class="kw">type </span>BlockingReader = ();
<span class="kw">type </span>Writer = HdfsNativeWriter;
diff --git a/docs/rust/src/opendal/services/http/backend.rs.html b/docs/rust/src/opendal/services/http/backend.rs.html
index 1bfbce58e6..fe97af6ab3 100644
--- a/docs/rust/src/opendal/services/http/backend.rs.html
+++ b/docs/rust/src/opendal/services/http/backend.rs.html
@@ -556,7 +556,7 @@
}
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>HttpBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>HttpBackend {
<span class="kw">type </span>Reader = HttpReader;
<span class="kw">type </span>Writer = ();
<span class="kw">type </span>Lister = ();
diff --git a/docs/rust/src/opendal/services/huggingface/backend.rs.html b/docs/rust/src/opendal/services/huggingface/backend.rs.html
index 8a04c6ab47..9ba6564c33 100644
--- a/docs/rust/src/opendal/services/huggingface/backend.rs.html
+++ b/docs/rust/src/opendal/services/huggingface/backend.rs.html
@@ -574,7 +574,7 @@
core: Arc<HuggingfaceCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>HuggingfaceBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>HuggingfaceBackend {
<span class="kw">type </span>Reader = HuggingfaceReader;
<span class="kw">type </span>Writer = ();
<span class="kw">type </span>Lister = oio::PageLister<HuggingfaceLister>;
diff --git a/docs/rust/src/opendal/services/icloud/backend.rs.html b/docs/rust/src/opendal/services/icloud/backend.rs.html
index bb0b1015c9..66ab36cd07 100644
--- a/docs/rust/src/opendal/services/icloud/backend.rs.html
+++ b/docs/rust/src/opendal/services/icloud/backend.rs.html
@@ -582,7 +582,7 @@
core: Arc<IcloudCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>IcloudBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>IcloudBackend {
<span class="kw">type </span>Reader = IcloudReader;
<span class="kw">type </span>BlockingReader = ();
<span class="kw">type </span>Writer = ();
diff --git a/docs/rust/src/opendal/services/ipfs/backend.rs.html b/docs/rust/src/opendal/services/ipfs/backend.rs.html
index 4bb6c25164..3f0394c6da 100644
--- a/docs/rust/src/opendal/services/ipfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/ipfs/backend.rs.html
@@ -605,7 +605,7 @@
}
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>IpfsBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>IpfsBackend {
<span class="kw">type </span>Reader = IpfsReader;
<span class="kw">type </span>Writer = ();
<span class="kw">type </span>Lister = oio::PageLister<DirStream>;
diff --git a/docs/rust/src/opendal/services/ipmfs/backend.rs.html b/docs/rust/src/opendal/services/ipmfs/backend.rs.html
index 9ea491862f..e0ceec6f10 100644
--- a/docs/rust/src/opendal/services/ipmfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/ipmfs/backend.rs.html
@@ -334,7 +334,7 @@
}
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>IpmfsBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>IpmfsBackend {
<span class="kw">type </span>Reader = IpmfsReader;
<span class="kw">type </span>Writer = oio::OneShotWriter<IpmfsWriter>;
<span class="kw">type </span>Lister = oio::PageLister<IpmfsLister>;
diff --git a/docs/rust/src/opendal/services/koofr/backend.rs.html b/docs/rust/src/opendal/services/koofr/backend.rs.html
index c9c2558329..a05f97418a 100644
--- a/docs/rust/src/opendal/services/koofr/backend.rs.html
+++ b/docs/rust/src/opendal/services/koofr/backend.rs.html
@@ -628,7 +628,7 @@
core: Arc<KoofrCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>KoofrBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>KoofrBackend {
<span class="kw">type </span>Reader = KoofrReader;
<span class="kw">type </span>Writer = KoofrWriters;
<span class="kw">type </span>Lister = oio::PageLister<KoofrLister>;
diff --git a/docs/rust/src/opendal/services/obs/backend.rs.html b/docs/rust/src/opendal/services/obs/backend.rs.html
index 2f8bd4f092..3a2e36c3ac 100644
--- a/docs/rust/src/opendal/services/obs/backend.rs.html
+++ b/docs/rust/src/opendal/services/obs/backend.rs.html
@@ -640,7 +640,7 @@
core: Arc<ObsCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>ObsBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>ObsBackend {
<span class="kw">type </span>Reader = ObsReader;
<span class="kw">type </span>Writer = ObsWriters;
<span class="kw">type </span>Lister = oio::PageLister<ObsLister>;
diff --git a/docs/rust/src/opendal/services/onedrive/backend.rs.html b/docs/rust/src/opendal/services/onedrive/backend.rs.html
index ff603fba5f..fadc35b2e8 100644
--- a/docs/rust/src/opendal/services/onedrive/backend.rs.html
+++ b/docs/rust/src/opendal/services/onedrive/backend.rs.html
@@ -415,7 +415,7 @@
}
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>OnedriveBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>OnedriveBackend {
<span class="kw">type </span>Reader = OnedriveReader;
<span class="kw">type </span>Writer = oio::OneShotWriter<OneDriveWriter>;
<span class="kw">type </span>Lister = oio::PageLister<OnedriveLister>;
diff --git a/docs/rust/src/opendal/services/oss/backend.rs.html b/docs/rust/src/opendal/services/oss/backend.rs.html
index 80c99c42b7..ed04ba9f5e 100644
--- a/docs/rust/src/opendal/services/oss/backend.rs.html
+++ b/docs/rust/src/opendal/services/oss/backend.rs.html
@@ -963,7 +963,7 @@
core: Arc<OssCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>OssBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>OssBackend {
<span class="kw">type </span>Reader = OssReader;
<span class="kw">type </span>Writer = OssWriters;
<span class="kw">type </span>Lister = oio::PageLister<OssLister>;
diff --git a/docs/rust/src/opendal/services/pcloud/backend.rs.html b/docs/rust/src/opendal/services/pcloud/backend.rs.html
index 4d7f4130b4..3aa546e962 100644
--- a/docs/rust/src/opendal/services/pcloud/backend.rs.html
+++ b/docs/rust/src/opendal/services/pcloud/backend.rs.html
@@ -632,7 +632,7 @@
core: Arc<PcloudCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>PcloudBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>PcloudBackend {
<span class="kw">type </span>Reader = PcloudReader;
<span class="kw">type </span>Writer = PcloudWriters;
<span class="kw">type </span>Lister = oio::PageLister<PcloudLister>;
diff --git a/docs/rust/src/opendal/services/s3/backend.rs.html b/docs/rust/src/opendal/services/s3/backend.rs.html
index 993d4a9e0b..089b11e229 100644
--- a/docs/rust/src/opendal/services/s3/backend.rs.html
+++ b/docs/rust/src/opendal/services/s3/backend.rs.html
@@ -2359,7 +2359,7 @@
core: Arc<S3Core>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>S3Backend {
+<span class="kw">impl </span>Access <span class="kw">for </span>S3Backend {
<span class="kw">type </span>Reader = S3Reader;
<span class="kw">type </span>Writer = S3Writers;
<span class="kw">type </span>Lister = oio::PageLister<S3Lister>;
diff --git a/docs/rust/src/opendal/services/seafile/backend.rs.html b/docs/rust/src/opendal/services/seafile/backend.rs.html
index 9f18a1e50f..865395800e 100644
--- a/docs/rust/src/opendal/services/seafile/backend.rs.html
+++ b/docs/rust/src/opendal/services/seafile/backend.rs.html
@@ -578,7 +578,7 @@
core: Arc<SeafileCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>SeafileBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>SeafileBackend {
<span class="kw">type </span>Reader = SeafileReader;
<span class="kw">type </span>Writer = SeafileWriters;
<span class="kw">type </span>Lister = oio::PageLister<SeafileLister>;
diff --git a/docs/rust/src/opendal/services/sftp/backend.rs.html b/docs/rust/src/opendal/services/sftp/backend.rs.html
index 176ee37300..8f16fd7f5a 100644
--- a/docs/rust/src/opendal/services/sftp/backend.rs.html
+++ b/docs/rust/src/opendal/services/sftp/backend.rs.html
@@ -864,7 +864,7 @@
}
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>SftpBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>SftpBackend {
<span class="kw">type </span>Reader = SftpReader;
<span class="kw">type </span>Writer = SftpWriter;
<span class="kw">type </span>Lister = <span class="prelude-ty">Option</span><SftpLister>;
diff --git a/docs/rust/src/opendal/services/supabase/backend.rs.html b/docs/rust/src/opendal/services/supabase/backend.rs.html
index 8b84e03886..9358d9aeb9 100644
--- a/docs/rust/src/opendal/services/supabase/backend.rs.html
+++ b/docs/rust/src/opendal/services/supabase/backend.rs.html
@@ -388,7 +388,7 @@
core: Arc<SupabaseCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>SupabaseBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>SupabaseBackend {
<span class="kw">type </span>Reader = SupabaseReader;
<span class="kw">type </span>Writer = oio::OneShotWriter<SupabaseWriter>;
<span class="comment">// todo: implement Lister to support list and scan
diff --git a/docs/rust/src/opendal/services/swift/backend.rs.html b/docs/rust/src/opendal/services/swift/backend.rs.html
index 5b477d366a..732bf45fda 100644
--- a/docs/rust/src/opendal/services/swift/backend.rs.html
+++ b/docs/rust/src/opendal/services/swift/backend.rs.html
@@ -472,7 +472,7 @@
core: Arc<SwiftCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>SwiftBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>SwiftBackend {
<span class="kw">type </span>Reader = SwiftReader;
<span class="kw">type </span>Writer = oio::OneShotWriter<SwiftWriter>;
<span class="kw">type </span>Lister = oio::PageLister<SwiftLister>;
diff --git a/docs/rust/src/opendal/services/upyun/backend.rs.html b/docs/rust/src/opendal/services/upyun/backend.rs.html
index d8fa83e9be..412feed47d 100644
--- a/docs/rust/src/opendal/services/upyun/backend.rs.html
+++ b/docs/rust/src/opendal/services/upyun/backend.rs.html
@@ -584,7 +584,7 @@
core: Arc<UpyunCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>UpyunBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>UpyunBackend {
<span class="kw">type </span>Reader = UpyunReader;
<span class="kw">type </span>Writer = UpyunWriters;
<span class="kw">type </span>Lister = oio::PageLister<UpyunLister>;
diff --git a/docs/rust/src/opendal/services/vercel_artifacts/backend.rs.html b/docs/rust/src/opendal/services/vercel_artifacts/backend.rs.html
index 11e3ca23bb..3f59b9284d 100644
--- a/docs/rust/src/opendal/services/vercel_artifacts/backend.rs.html
+++ b/docs/rust/src/opendal/services/vercel_artifacts/backend.rs.html
@@ -212,7 +212,7 @@
}
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>VercelArtifactsBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>VercelArtifactsBackend {
<span class="kw">type </span>Reader = VercelArtifactsReader;
<span class="kw">type </span>Writer = oio::OneShotWriter<VercelArtifactsWriter>;
<span class="kw">type </span>Lister = ();
diff --git a/docs/rust/src/opendal/services/vercel_blob/backend.rs.html b/docs/rust/src/opendal/services/vercel_blob/backend.rs.html
index 78d3a12b32..1aee4bec57 100644
--- a/docs/rust/src/opendal/services/vercel_blob/backend.rs.html
+++ b/docs/rust/src/opendal/services/vercel_blob/backend.rs.html
@@ -444,7 +444,7 @@
core: Arc<VercelBlobCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>VercelBlobBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>VercelBlobBackend {
<span class="kw">type </span>Reader = VercelBlobReader;
<span class="kw">type </span>Writer = VercelBlobWriters;
<span class="kw">type </span>Lister = oio::PageLister<VercelBlobLister>;
diff --git a/docs/rust/src/opendal/services/webdav/backend.rs.html b/docs/rust/src/opendal/services/webdav/backend.rs.html
index 19626f79c4..83b2195540 100644
--- a/docs/rust/src/opendal/services/webdav/backend.rs.html
+++ b/docs/rust/src/opendal/services/webdav/backend.rs.html
@@ -575,7 +575,7 @@
}
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>WebdavBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>WebdavBackend {
<span class="kw">type </span>Reader = WebdavReader;
<span class="kw">type </span>Writer = oio::OneShotWriter<WebdavWriter>;
<span class="kw">type </span>Lister = oio::PageLister<WebdavLister>;
diff --git a/docs/rust/src/opendal/services/webhdfs/backend.rs.html b/docs/rust/src/opendal/services/webhdfs/backend.rs.html
index 24b83b1f0d..bdc60bf00f 100644
--- a/docs/rust/src/opendal/services/webhdfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/webhdfs/backend.rs.html
@@ -1202,7 +1202,7 @@
}
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>WebhdfsBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>WebhdfsBackend {
<span class="kw">type </span>Reader = WebhdfsReader;
<span class="kw">type </span>Writer = WebhdfsWriters;
<span class="kw">type </span>Lister = oio::PageLister<WebhdfsLister>;
diff --git a/docs/rust/src/opendal/services/yandex_disk/backend.rs.html b/docs/rust/src/opendal/services/yandex_disk/backend.rs.html
index fcae9f824b..067e20378b 100644
--- a/docs/rust/src/opendal/services/yandex_disk/backend.rs.html
+++ b/docs/rust/src/opendal/services/yandex_disk/backend.rs.html
@@ -478,7 +478,7 @@
core: Arc<YandexDiskCore>,
}
-<span class="kw">impl </span>Accessor <span class="kw">for </span>YandexDiskBackend {
+<span class="kw">impl </span>Access <span class="kw">for </span>YandexDiskBackend {
<span class="kw">type </span>Reader = YandexDiskReader;
<span class="kw">type </span>Writer = YandexDiskWriters;
<span class="kw">type </span>Lister = oio::PageLister<YandexDiskLister>;
diff --git a/docs/rust/src/opendal/types/blocking_read/blocking_reader.rs.html b/docs/rust/src/opendal/types/blocking_read/blocking_reader.rs.html
index 3cf256f818..f4e41a5935 100644
--- a/docs/rust/src/opendal/types/blocking_read/blocking_reader.rs.html
+++ b/docs/rust/src/opendal/types/blocking_read/blocking_reader.rs.html
@@ -198,7 +198,7 @@
///
/// We don't want to expose those details to users so keep this function
/// in crate only.
- </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>create(acc: FusedAccessor, path: <span class="kw-2">&</span>str, op: OpRead) -> <span class="kw">crate</span>::Result<<span class="self">Self</span>> {
+ </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>create(acc: Accessor, path: <span class="kw-2">&</span>str, op: OpRead) -> <span class="kw">crate</span>::Result<<span class="self">Self</span>> {
<span class="kw">let </span>(<span class="kw">_</span>, r) = acc.blocking_read(path, op)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(BlockingReader { inner: r })
diff --git a/docs/rust/src/opendal/types/blocking_write/blocking_writer.rs.html b/docs/rust/src/opendal/types/blocking_write/blocking_writer.rs.html
index 45b8e84897..d269cb72c7 100644
--- a/docs/rust/src/opendal/types/blocking_write/blocking_writer.rs.html
+++ b/docs/rust/src/opendal/types/blocking_write/blocking_writer.rs.html
@@ -94,7 +94,7 @@
///
/// We don't want to expose those details to users so keep this function
/// in crate only.
- </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>create(acc: FusedAccessor, path: <span class="kw-2">&</span>str, op: OpWrite) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>> {
+ </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>create(acc: Accessor, path: <span class="kw-2">&</span>str, op: OpWrite) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>> {
<span class="kw">let </span>(<span class="kw">_</span>, w) = acc.blocking_write(path, op)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(BlockingWriter { inner: w })
diff --git a/docs/rust/src/opendal/types/builder.rs.html b/docs/rust/src/opendal/types/builder.rs.html
index 6dba0dea4f..82e81f6b8f 100644
--- a/docs/rust/src/opendal/types/builder.rs.html
+++ b/docs/rust/src/opendal/types/builder.rs.html
@@ -101,7 +101,7 @@
<span class="doccomment">/// Associated scheme for this builder. It indicates what underlying service is.
</span><span class="kw">const </span>SCHEME: Scheme;
<span class="doccomment">/// The accessor that built by this builder.
- </span><span class="kw">type </span>Accessor: Accessor;
+ </span><span class="kw">type </span>Accessor: Access;
<span class="doccomment">/// Construct a builder from given map which contains several parameters needed by underlying service.
</span><span class="kw">fn </span>from_map(map: HashMap<String, String>) -> <span class="self">Self</span>;
diff --git a/docs/rust/src/opendal/types/list.rs.html b/docs/rust/src/opendal/types/list.rs.html
index 5ef32c6608..bb3d7d3e3d 100644
--- a/docs/rust/src/opendal/types/list.rs.html
+++ b/docs/rust/src/opendal/types/list.rs.html
@@ -365,7 +365,7 @@
/// - Lister implements `Stream<Item = Result<Entry>>`.
/// - Lister will return `None` if there is no more entries or error has been returned.
</span><span class="kw">pub struct </span>Lister {
- acc: FusedAccessor,
+ acc: Accessor,
lister: <span class="prelude-ty">Option</span><oio::Lister>,
<span class="doccomment">/// required_metakey is the metakey required by users.
</span>required_metakey: FlagSet<Metakey>,
@@ -452,7 +452,7 @@
<span class="kw">impl </span>Lister {
<span class="doccomment">/// Create a new lister.
- </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">async fn </span>create(acc: FusedAccessor, path: <span class="kw-2">&</span>str, args: OpList) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>> {
+ </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">async fn </span>create(acc: Accessor, path: <span class="kw-2">&</span>str, args: OpList) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>> {
<span class="kw">let </span>required_metakey = args.metakey();
<span class="kw">let </span>concurrent = cmp::max(<span class="number">1</span>, args.concurrent());
@@ -544,7 +544,7 @@
/// - Lister implements `Iterator<Item = Result<Entry>>`.
/// - Lister will return `None` if there is no more entries or error has been returned.
</span><span class="kw">pub struct </span>BlockingLister {
- acc: FusedAccessor,
+ acc: Accessor,
<span class="doccomment">/// required_metakey is the metakey required by users.
</span>required_metakey: FlagSet<Metakey>,
@@ -559,7 +559,7 @@
<span class="kw">impl </span>BlockingLister {
<span class="doccomment">/// Create a new lister.
- </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>create(acc: FusedAccessor, path: <span class="kw-2">&</span>str, args: OpList) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>> {
+ </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>create(acc: Accessor, path: <span class="kw-2">&</span>str, args: OpList) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>> {
<span class="kw">let </span>required_metakey = args.metakey();
<span class="kw">let </span>(<span class="kw">_</span>, lister) = acc.blocking_list(path, args)<span class="question-mark">?</span>;
diff --git a/docs/rust/src/opendal/types/operator/blocking_operator.rs.html b/docs/rust/src/opendal/types/operator/blocking_operator.rs.html
index bb10505f64..998676e599 100644
--- a/docs/rust/src/opendal/types/operator/blocking_operator.rs.html
+++ b/docs/rust/src/opendal/types/operator/blocking_operator.rs.html
@@ -1265,13 +1265,13 @@
/// ```
</span><span class="attr">#[derive(Clone, Debug)]
</span><span class="kw">pub struct </span>BlockingOperator {
- accessor: FusedAccessor,
+ accessor: Accessor,
limit: usize,
}
<span class="kw">impl </span>BlockingOperator {
- <span class="kw">pub</span>(<span class="kw">super</span>) <span class="kw">fn </span>inner(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>FusedAccessor {
+ <span class="kw">pub</span>(<span class="kw">super</span>) <span class="kw">fn </span>inner(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>Accessor {
<span class="kw-2">&</span><span class="self">self</span>.accessor
}
@@ -1279,7 +1279,7 @@
///
/// # Note
/// default batch limit is 1000.
- </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>from_inner(accessor: FusedAccessor) -> <span class="self">Self </span>{
+ </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>from_inner(accessor: Accessor) -> <span class="self">Self </span>{
<span class="kw">let </span>limit = accessor
.info()
.full_capability()
diff --git a/docs/rust/src/opendal/types/operator/builder.rs.html b/docs/rust/src/opendal/types/operator/builder.rs.html
index 49f0139fab..e986dab509 100644
--- a/docs/rust/src/opendal/types/operator/builder.rs.html
+++ b/docs/rust/src/opendal/types/operator/builder.rs.html
@@ -491,7 +491,7 @@
/// }
/// ```
</span><span class="attr">#[allow(clippy::new_ret_no_self)]
- </span><span class="kw">pub fn </span>new<B: Builder>(<span class="kw-2">mut </span>ab: B) -> <span class="prelude-ty">Result</span><OperatorBuilder<<span class="kw">impl </span>Accessor>> {
+ </span><span class="kw">pub fn </span>new<B: Builder>(<span class="kw-2">mut </span>ab: B) -> <span class="prelude-ty">Result</span><OperatorBuilder<<span class="kw">impl </span>Access>> {
<span class="kw">let </span>acc = ab.build()<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(OperatorBuilder::new(acc))
}
@@ -529,7 +529,7 @@
/// ```
</span><span class="kw">pub fn </span>from_map<B: Builder>(
map: HashMap<String, String>,
- ) -> <span class="prelude-ty">Result</span><OperatorBuilder<<span class="kw">impl </span>Accessor>> {
+ ) -> <span class="prelude-ty">Result</span><OperatorBuilder<<span class="kw">impl </span>Access>> {
<span class="kw">let </span>acc = B::from_map(map).build()<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(OperatorBuilder::new(acc))
}
@@ -727,7 +727,7 @@
/// # }
/// ```
</span><span class="attr">#[must_use]
- </span><span class="kw">pub fn </span>layer<L: Layer<FusedAccessor>>(<span class="self">self</span>, layer: L) -> <span class="self">Self </span>{
+ </span><span class="kw">pub fn </span>layer<L: Layer<Accessor>>(<span class="self">self</span>, layer: L) -> <span class="self">Self </span>{
<span class="self">Self</span>::from_inner(Arc::new(
TypeEraseLayer.layer(layer.layer(<span class="self">self</span>.into_inner())),
))
@@ -778,14 +778,14 @@
/// Ok(())
/// }
/// ```
-</span><span class="kw">pub struct </span>OperatorBuilder<A: Accessor> {
+</span><span class="kw">pub struct </span>OperatorBuilder<A: Access> {
accessor: A,
}
-<span class="kw">impl</span><A: Accessor> OperatorBuilder<A> {
+<span class="kw">impl</span><A: Access> OperatorBuilder<A> {
<span class="doccomment">/// Create a new operator builder.
</span><span class="attr">#[allow(clippy::new_ret_no_self)]
- </span><span class="kw">pub fn </span>new(accessor: A) -> OperatorBuilder<<span class="kw">impl </span>Accessor> {
+ </span><span class="kw">pub fn </span>new(accessor: A) -> OperatorBuilder<<span class="kw">impl </span>Access> {
<span class="comment">// Make sure error context layer has been attached.
</span>OperatorBuilder { accessor }
.layer(ErrorContextLayer)
@@ -822,7 +822,7 @@
/// # }
/// ```
</span><span class="attr">#[must_use]
- </span><span class="kw">pub fn </span>layer<L: Layer<A>>(<span class="self">self</span>, layer: L) -> OperatorBuilder<L::LayeredAccessor> {
+ </span><span class="kw">pub fn </span>layer<L: Layer<A>>(<span class="self">self</span>, layer: L) -> OperatorBuilder<L::LayeredAccess> {
OperatorBuilder {
accessor: layer.layer(<span class="self">self</span>.accessor),
}
@@ -831,7 +831,7 @@
<span class="doccomment">/// Finish the building to construct an Operator.
</span><span class="kw">pub fn </span>finish(<span class="self">self</span>) -> Operator {
<span class="kw">let </span>ob = <span class="self">self</span>.layer(TypeEraseLayer);
- Operator::from_inner(Arc::new(ob.accessor) <span class="kw">as </span>FusedAccessor)
+ Operator::from_inner(Arc::new(ob.accessor) <span class="kw">as </span>Accessor)
}
}
</code></pre></div></section></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/operator/operator.rs.html b/docs/rust/src/opendal/types/operator/operator.rs.html
index 63d8df8621..96f500f384 100644
--- a/docs/rust/src/opendal/types/operator/operator.rs.html
+++ b/docs/rust/src/opendal/types/operator/operator.rs.html
@@ -2257,7 +2257,7 @@
</span><span class="attr">#[derive(Clone, Debug)]
</span><span class="kw">pub struct </span>Operator {
<span class="comment">// accessor is what Operator delegates for
- </span>accessor: FusedAccessor,
+ </span>accessor: Accessor,
<span class="comment">// limit is usually the maximum size of data that operator will handle in one operation
</span>limit: usize,
@@ -2265,11 +2265,11 @@
<span class="doccomment">/// # Operator basic API.
</span><span class="kw">impl </span>Operator {
- <span class="kw">pub</span>(<span class="kw">super</span>) <span class="kw">fn </span>inner(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>FusedAccessor {
+ <span class="kw">pub</span>(<span class="kw">super</span>) <span class="kw">fn </span>inner(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>Accessor {
<span class="kw-2">&</span><span class="self">self</span>.accessor
}
- <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>from_inner(accessor: FusedAccessor) -> <span class="self">Self </span>{
+ <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>from_inner(accessor: Accessor) -> <span class="self">Self </span>{
<span class="kw">let </span>limit = accessor
.info()
.full_capability()
@@ -2278,7 +2278,7 @@
<span class="self">Self </span>{ accessor, limit }
}
- <span class="kw">pub</span>(<span class="kw">super</span>) <span class="kw">fn </span>into_inner(<span class="self">self</span>) -> FusedAccessor {
+ <span class="kw">pub</span>(<span class="kw">super</span>) <span class="kw">fn </span>into_inner(<span class="self">self</span>) -> Accessor {
<span class="self">self</span>.accessor
}
diff --git a/docs/rust/src/opendal/types/operator/operator_functions.rs.html b/docs/rust/src/opendal/types/operator/operator_functions.rs.html
index 973bd8c111..9d76771203 100644
--- a/docs/rust/src/opendal/types/operator/operator_functions.rs.html
+++ b/docs/rust/src/opendal/types/operator/operator_functions.rs.html
@@ -454,18 +454,18 @@
///
/// The function will consume all the input to generate a result.
</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">struct </span>OperatorFunction<T, R> {
- inner: FusedAccessor,
+ inner: Accessor,
path: String,
args: T,
- f: <span class="kw">fn</span>(FusedAccessor, String, T) -> <span class="prelude-ty">Result</span><R>,
+ f: <span class="kw">fn</span>(Accessor, String, T) -> <span class="prelude-ty">Result</span><R>,
}
<span class="kw">impl</span><T, R> OperatorFunction<T, R> {
<span class="kw">pub fn </span>new(
- inner: FusedAccessor,
+ inner: Accessor,
path: String,
args: T,
- f: <span class="kw">fn</span>(FusedAccessor, String, T) -> <span class="prelude-ty">Result</span><R>,
+ f: <span class="kw">fn</span>(Accessor, String, T) -> <span class="prelude-ty">Result</span><R>,
) -> <span class="self">Self </span>{
<span class="self">Self </span>{
inner,
diff --git a/docs/rust/src/opendal/types/operator/operator_futures.rs.html b/docs/rust/src/opendal/types/operator/operator_futures.rs.html
index aa7ab94f5d..372a701ea4 100644
--- a/docs/rust/src/opendal/types/operator/operator_futures.rs.html
+++ b/docs/rust/src/opendal/types/operator/operator_futures.rs.html
@@ -527,13 +527,13 @@
/// users to use this struct directly.
</span><span class="kw">pub struct </span>OperatorFuture<I, O, F: Future<Output = <span class="prelude-ty">Result</span><O>>> {
<span class="doccomment">/// The accessor to the underlying object storage
- </span>acc: FusedAccessor,
+ </span>acc: Accessor,
<span class="doccomment">/// The path of string
</span>path: String,
<span class="doccomment">/// The input args
</span>args: I,
<span class="doccomment">/// The function which will move all the args and return a static future
- </span>f: <span class="kw">fn</span>(FusedAccessor, String, I) -> F,
+ </span>f: <span class="kw">fn</span>(Accessor, String, I) -> F,
}
<span class="kw">impl</span><I, O, F: Future<Output = <span class="prelude-ty">Result</span><O>>> OperatorFuture<I, O, F> {
@@ -542,10 +542,10 @@
/// This struct is by design to keep in crate. We don't want
/// users to use this struct directly.
</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>new(
- inner: FusedAccessor,
+ inner: Accessor,
path: String,
args: I,
- f: <span class="kw">fn</span>(FusedAccessor, String, I) -> F,
+ f: <span class="kw">fn</span>(Accessor, String, I) -> F,
) -> <span class="self">Self </span>{
OperatorFuture {
acc: inner,
diff --git a/docs/rust/src/opendal/types/read/reader.rs.html b/docs/rust/src/opendal/types/read/reader.rs.html
index 753fc08e5f..ed21fc3857 100644
--- a/docs/rust/src/opendal/types/read/reader.rs.html
+++ b/docs/rust/src/opendal/types/read/reader.rs.html
@@ -488,7 +488,7 @@
/// We don't want to expose those details to users so keep this function
/// in crate only.
</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">async fn </span>create(
- acc: FusedAccessor,
+ acc: Accessor,
path: <span class="kw-2">&</span>str,
args: OpRead,
options: OpReader,
diff --git a/docs/rust/src/opendal/types/write/writer.rs.html b/docs/rust/src/opendal/types/write/writer.rs.html
index 50ee1598f2..0a5f9e7d27 100644
--- a/docs/rust/src/opendal/types/write/writer.rs.html
+++ b/docs/rust/src/opendal/types/write/writer.rs.html
@@ -411,7 +411,7 @@
///
/// We don't want to expose those details to users so keep this function
/// in crate only.
- </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">async fn </span>create(acc: FusedAccessor, path: <span class="kw-2">&</span>str, op: OpWrite) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>> {
+ </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">async fn </span>create(acc: Accessor, path: <span class="kw-2">&</span>str, op: OpWrite) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>> {
<span class="kw">let </span>(<span class="kw">_</span>, w) = acc.write(path, op).<span class="kw">await</span><span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(Writer { inner: w })
diff --git a/docs/rust/trait.impl/core/marker/trait.Send.js b/docs/rust/trait.impl/core/marker/trait.Send.js
index e1602d2c2d..2e62ff4270 100644
--- a/docs/rust/trait.impl/core/marker/trait.Send.js
+++ b/docs/rust/trait.impl/core/marker/trait.Send.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>",1,["opendal::types::mode::EntryMode"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"opendal/enum.ErrorKind. [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>",1,["opendal::types::mode::EntryMode"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"opendal/enum.ErrorKind. [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/trait.impl/core/marker/trait.Sync.js b/docs/rust/trait.impl/core/marker/trait.Sync.js
index 71444f3daf..ea559a6603 100644
--- a/docs/rust/trait.impl/core/marker/trait.Sync.js
+++ b/docs/rust/trait.impl/core/marker/trait.Sync.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>",1,["opendal::types::mode::EntryMode"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"opendal/enum.ErrorKind. [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>",1,["opendal::types::mode::EntryMode"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"opendal/enum.ErrorKind. [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/trait.impl/opendal/raw/accessor/trait.Accessor.js b/docs/rust/trait.impl/opendal/raw/accessor/trait.Access.js
similarity index 100%
rename from docs/rust/trait.impl/opendal/raw/accessor/trait.Accessor.js
rename to docs/rust/trait.impl/opendal/raw/accessor/trait.Access.js
diff --git a/docs/rust/type.impl/alloc/sync/struct.Arc.js b/docs/rust/type.impl/alloc/sync/struct.Arc.js
index 8acc27544c..ec3ce3a693 100644
--- a/docs/rust/type.impl/alloc/sync/struct.Arc.js
+++ b/docs/rust/type.impl/alloc/sync/struct.Arc.js
@@ -1,3 +1,3 @@
(function() {var type_impls = {
-"opendal":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Accessor-for-Arc%3CT%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/opendal/raw/accessor.rs.html#712-829\">source</a><a href=\"#impl-Accessor-for-Arc%3CT%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<T: <a class=\"trait\" href=\"opendal/raw/trait.Accessor.html\" title=\"trait opendal::raw::Accessor\">Accessor</a> + ?<a class=\"trait\" href=\"https://doc.rust-lang.org/nigh [...]
+"opendal":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Access-for-Arc%3CT%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/opendal/raw/accessor.rs.html#712-829\">source</a><a href=\"#impl-Access-for-Arc%3CT%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<T: <a class=\"trait\" href=\"opendal/raw/trait.Access.html\" title=\"trait opendal::raw::Access\">Access</a> + ?<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/m [...]
};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})()
\ No newline at end of file
diff --git a/docs/services/atomicserver/index.html b/docs/services/atomicserver/index.html
index 19fa52a65b..8f3e807e79 100644
--- a/docs/services/atomicserver/index.html
+++ b/docs/services/atomicserver/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">AtomicServer | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/atomicserver"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><m [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/azblob/index.html b/docs/services/azblob/index.html
index 9cfe86f2af..495670c1e0 100644
--- a/docs/services/azblob/index.html
+++ b/docs/services/azblob/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Azblob | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/azblob"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/azdls/index.html b/docs/services/azdls/index.html
index 8a8abfeb96..a6b77ced3d 100644
--- a/docs/services/azdls/index.html
+++ b/docs/services/azdls/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Azdls | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/azdls"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/cacache/index.html b/docs/services/cacache/index.html
index 0abb19220b..6c4ae46651 100644
--- a/docs/services/cacache/index.html
+++ b/docs/services/cacache/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Cacache | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/cacache"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-r [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/cos/index.html b/docs/services/cos/index.html
index 1be45a2fd0..a9e93ef45a 100644
--- a/docs/services/cos/index.html
+++ b/docs/services/cos/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">COS | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/cos"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/d1/index.html b/docs/services/d1/index.html
index 4ada486d2f..dd19b6c687 100644
--- a/docs/services/d1/index.html
+++ b/docs/services/d1/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">D1 | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/d1"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" n [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/dashmap/index.html b/docs/services/dashmap/index.html
index 59afa6e3d8..8406a544e8 100644
--- a/docs/services/dashmap/index.html
+++ b/docs/services/dashmap/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">DashMap | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/dashmap"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-r [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/dropbox/index.html b/docs/services/dropbox/index.html
index f5290051d8..52c1931d37 100644
--- a/docs/services/dropbox/index.html
+++ b/docs/services/dropbox/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Dropbox | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/dropbox"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-r [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/etcd/index.html b/docs/services/etcd/index.html
index 2ce03243a7..c10df74277 100644
--- a/docs/services/etcd/index.html
+++ b/docs/services/etcd/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Etcd | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/etcd"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/foundationdb/index.html b/docs/services/foundationdb/index.html
index f78459f6db..0bdc8b05be 100644
--- a/docs/services/foundationdb/index.html
+++ b/docs/services/foundationdb/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">FoundationDB | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/foundationdb"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><m [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/fs/index.html b/docs/services/fs/index.html
index 8215a8354a..8680b868ff 100644
--- a/docs/services/fs/index.html
+++ b/docs/services/fs/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Fs | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/fs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" n [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/ftp/index.html b/docs/services/ftp/index.html
index 3db3f28b53..1a8b8661f4 100644
--- a/docs/services/ftp/index.html
+++ b/docs/services/ftp/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">FTP | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/ftp"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/gcs/index.html b/docs/services/gcs/index.html
index 660ab4ceda..3110ec2958 100644
--- a/docs/services/gcs/index.html
+++ b/docs/services/gcs/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Gcs | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/gcs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/gdrive/index.html b/docs/services/gdrive/index.html
index 9fd8b8cc8a..45616d6908 100644
--- a/docs/services/gdrive/index.html
+++ b/docs/services/gdrive/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Gdrive | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/gdrive"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/ghac/index.html b/docs/services/ghac/index.html
index ea92ac0b26..123ed37d56 100644
--- a/docs/services/ghac/index.html
+++ b/docs/services/ghac/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">GHAC | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/ghac"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/gridfs/index.html b/docs/services/gridfs/index.html
index 44699a8c2d..e563a8f7cf 100644
--- a/docs/services/gridfs/index.html
+++ b/docs/services/gridfs/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Gridfs | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/gridfs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/hdfs/index.html b/docs/services/hdfs/index.html
index d623e13cd4..008bf3dd5a 100644
--- a/docs/services/hdfs/index.html
+++ b/docs/services/hdfs/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">HDFS | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/hdfs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/http/index.html b/docs/services/http/index.html
index f8af8083d5..0a25449228 100644
--- a/docs/services/http/index.html
+++ b/docs/services/http/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">HTTP | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/http"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/huggingface/index.html b/docs/services/huggingface/index.html
index 2e06fd9bcf..ee7fed2624 100644
--- a/docs/services/huggingface/index.html
+++ b/docs/services/huggingface/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Hugging Face | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/huggingface"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><me [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/ipfs/index.html b/docs/services/ipfs/index.html
index 54c4204e10..9d159b739d 100644
--- a/docs/services/ipfs/index.html
+++ b/docs/services/ipfs/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">IPFS | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/ipfs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/ipmfs/index.html b/docs/services/ipmfs/index.html
index 685e77d8f1..6dfc70190c 100644
--- a/docs/services/ipmfs/index.html
+++ b/docs/services/ipmfs/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">IPMFS | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/ipmfs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/libsql/index.html b/docs/services/libsql/index.html
index 00b8ee40b8..babffa5560 100644
--- a/docs/services/libsql/index.html
+++ b/docs/services/libsql/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">LibSQL | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/libsql"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/memcached/index.html b/docs/services/memcached/index.html
index 5bfadbe270..3b0817df9d 100644
--- a/docs/services/memcached/index.html
+++ b/docs/services/memcached/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Memcached | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/memcached"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta da [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/memory/index.html b/docs/services/memory/index.html
index 54fe545b03..4bd12dcab0 100644
--- a/docs/services/memory/index.html
+++ b/docs/services/memory/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Memory | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/memory"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/moka/index.html b/docs/services/moka/index.html
index 265f48b9aa..10b5407342 100644
--- a/docs/services/moka/index.html
+++ b/docs/services/moka/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Moka | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/moka"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/mongodb/index.html b/docs/services/mongodb/index.html
index deb29c7f7f..8ac7b072f0 100644
--- a/docs/services/mongodb/index.html
+++ b/docs/services/mongodb/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">MongoDB | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/mongodb"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-r [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/mysql/index.html b/docs/services/mysql/index.html
index 73f155a866..3a113d50c5 100644
--- a/docs/services/mysql/index.html
+++ b/docs/services/mysql/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">MySQL | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/mysql"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/obs/index.html b/docs/services/obs/index.html
index e8031a12a6..b37f6bd1c8 100644
--- a/docs/services/obs/index.html
+++ b/docs/services/obs/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Obs | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/obs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/onedrive/index.html b/docs/services/onedrive/index.html
index 2ca2335595..5be2848916 100644
--- a/docs/services/onedrive/index.html
+++ b/docs/services/onedrive/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">OneDrive | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/onedrive"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/oss/index.html b/docs/services/oss/index.html
index 47c3586623..95e24e4254 100644
--- a/docs/services/oss/index.html
+++ b/docs/services/oss/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">OSS | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/oss"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/persy/index.html b/docs/services/persy/index.html
index 905e41f88e..5ac0325b0b 100644
--- a/docs/services/persy/index.html
+++ b/docs/services/persy/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Persy | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/persy"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/postgresql/index.html b/docs/services/postgresql/index.html
index a52475dbb0..26c2666088 100644
--- a/docs/services/postgresql/index.html
+++ b/docs/services/postgresql/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">PostgreSQL | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/postgresql"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/redb/index.html b/docs/services/redb/index.html
index 7d9ceaf50a..3d703514f0 100644
--- a/docs/services/redb/index.html
+++ b/docs/services/redb/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Redb | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/redb"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/redis/index.html b/docs/services/redis/index.html
index b57d4e8cec..097007415a 100644
--- a/docs/services/redis/index.html
+++ b/docs/services/redis/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Redis | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/redis"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/rocksdb/index.html b/docs/services/rocksdb/index.html
index d890fc0b42..0fdf00bd9f 100644
--- a/docs/services/rocksdb/index.html
+++ b/docs/services/rocksdb/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">RocksDB | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/rocksdb"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-r [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/s3/index.html b/docs/services/s3/index.html
index c26a84493e..41e24456b9 100644
--- a/docs/services/s3/index.html
+++ b/docs/services/s3/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">S3 | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/s3"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" n [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/sftp/index.html b/docs/services/sftp/index.html
index 16fedc43c4..ee4fa1c6d3 100644
--- a/docs/services/sftp/index.html
+++ b/docs/services/sftp/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">SFTP | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/sftp"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/sled/index.html b/docs/services/sled/index.html
index e9ca3fade5..71c5a5f265 100644
--- a/docs/services/sled/index.html
+++ b/docs/services/sled/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Sled | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/sled"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/sqlite/index.html b/docs/services/sqlite/index.html
index 9b30857285..59941fdcfa 100644
--- a/docs/services/sqlite/index.html
+++ b/docs/services/sqlite/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Sqlite | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/sqlite"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/supabase/index.html b/docs/services/supabase/index.html
index 498ed9dafc..e77f667ee5 100644
--- a/docs/services/supabase/index.html
+++ b/docs/services/supabase/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Supabase | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/supabase"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/swift/index.html b/docs/services/swift/index.html
index 4193461683..1791479a98 100644
--- a/docs/services/swift/index.html
+++ b/docs/services/swift/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Swift | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/swift"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/tikv/index.html b/docs/services/tikv/index.html
index 39744beb5e..50da094249 100644
--- a/docs/services/tikv/index.html
+++ b/docs/services/tikv/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">TiKV | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/tikv"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/vercel_artifacts/index.html b/docs/services/vercel_artifacts/index.html
index 9a69bc2426..47c3248d80 100644
--- a/docs/services/vercel_artifacts/index.html
+++ b/docs/services/vercel_artifacts/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Vercel Artifacts | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/vercel_artifacts"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/webdav/index.html b/docs/services/webdav/index.html
index db7b28aacf..d4e3ed59bf 100644
--- a/docs/services/webdav/index.html
+++ b/docs/services/webdav/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">WebDAV | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/webdav"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/services/webhdfs/index.html b/docs/services/webhdfs/index.html
index c3e41c8da7..6a636a7515 100644
--- a/docs/services/webhdfs/index.html
+++ b/docs/services/webhdfs/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">WebHDFS | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/webhdfs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-r [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/download/index.html b/download/index.html
index 0a9314df87..96de17598a 100644
--- a/download/index.html
+++ b/download/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Apache OpenDAL™ Downloads | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/download"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/index.html b/index.html
index 5db9dbaa49..b0988b4d70 100644
--- a/index.html
+++ b/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Apache OpenDAL™</title><meta data-rh="true" property="og:title" content="Apache OpenDAL™"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusauru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
<script src="/assets/js/runtime~main.62b3d55f.js" defer="defer"></script>
-<script src="/assets/js/main.45b1553a.js" defer="defer"></script>
+<script src="/assets/js/main.dc1f3f81.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/lunr-index-1714615886217.json b/lunr-index-1714615886217.json
deleted file mode 100644
index 1ab3f53b7a..0000000000
--- a/lunr-index-1714615886217.json
+++ /dev/null
@@ -1 +0,0 @@
-{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,200.575,1,110.674,2,352.96,3,263.976,4,260.33,5,408.611,6,326.51,7,363.912]],["content/0",[0,1.551,1,2.649,2,8.449,3,6.923,4,6.828,5,8.648,6,5.792,7,7.702,8,2.729,9,2.911,10,3.557,11,1.27,12,3.329,13,4.731,14,4.878,15,6.667,16,10.717,17,2.911,18,3.557,19,5.241,20,3.557,21,2.729,22,2.203,23,0.571,24,1.51,25,2.133,26,5.045,27,3.024,28,5.045,29,3.903,30,7.816,31,3.903,32,3.903,33,3.329,34,2.911,35,3.024 [...]
\ No newline at end of file
diff --git a/lunr-index-1714616665936.json b/lunr-index-1714616665936.json
new file mode 100644
index 0000000000..97d5604f32
--- /dev/null
+++ b/lunr-index-1714616665936.json
@@ -0,0 +1 @@
+{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,200.575,1,110.674,2,352.96,3,263.976,4,260.33,5,408.611,6,326.51,7,363.912]],["content/0",[0,1.551,1,2.649,2,8.449,3,6.923,4,6.828,5,8.648,6,5.792,7,7.702,8,2.729,9,2.911,10,3.557,11,1.27,12,3.329,13,4.731,14,4.878,15,6.667,16,10.717,17,2.911,18,3.557,19,5.241,20,3.557,21,2.729,22,2.203,23,0.571,24,1.51,25,2.133,26,5.045,27,3.024,28,5.045,29,3.903,30,7.816,31,3.903,32,3.903,33,3.329,34,2.911,35,3.024 [...]
\ No newline at end of file
diff --git a/lunr-index.json b/lunr-index.json
index 1ab3f53b7a..97d5604f32 100644
--- a/lunr-index.json
+++ b/lunr-index.json
@@ -1 +1 @@
-{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,200.575,1,110.674,2,352.96,3,263.976,4,260.33,5,408.611,6,326.51,7,363.912]],["content/0",[0,1.551,1,2.649,2,8.449,3,6.923,4,6.828,5,8.648,6,5.792,7,7.702,8,2.729,9,2.911,10,3.557,11,1.27,12,3.329,13,4.731,14,4.878,15,6.667,16,10.717,17,2.911,18,3.557,19,5.241,20,3.557,21,2.729,22,2.203,23,0.571,24,1.51,25,2.133,26,5.045,27,3.024,28,5.045,29,3.903,30,7.816,31,3.903,32,3.903,33,3.329,34,2.911,35,3.024 [...]
\ No newline at end of file
+{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,200.575,1,110.674,2,352.96,3,263.976,4,260.33,5,408.611,6,326.51,7,363.912]],["content/0",[0,1.551,1,2.649,2,8.449,3,6.923,4,6.828,5,8.648,6,5.792,7,7.702,8,2.729,9,2.911,10,3.557,11,1.27,12,3.329,13,4.731,14,4.878,15,6.667,16,10.717,17,2.911,18,3.557,19,5.241,20,3.557,21,2.729,22,2.203,23,0.571,24,1.51,25,2.133,26,5.045,27,3.024,28,5.045,29,3.903,30,7.816,31,3.903,32,3.903,33,3.329,34,2.911,35,3.024 [...]
\ No newline at end of file
diff --git a/search-doc-1714615886217.json b/search-doc-1714615886217.json
deleted file mode 100644
index 2e7e5f9ee9..0000000000
--- a/search-doc-1714615886217.json
+++ /dev/null
@@ -1 +0,0 @@
-{"searchDocs":[{"title":"Apache OpenDAL™ participates in Open Source Promotion Plan 2024","type":0,"sectionRef":"#","url":"/blog/apache-opendal-participates-in-ospp-2024","content":"Hello, everyone! We're writing this blog post to announce that the Apache OpenDAL™ Project will be participating in Open Source Promotion Plan (OSPP) 2024. If you're not eligible or interested in participating in OSPP, then most of this post likely isn't relevant to you; if you are, this should contain some u [...]
\ No newline at end of file
diff --git a/search-doc-1714616665936.json b/search-doc-1714616665936.json
new file mode 100644
index 0000000000..3e7d734453
--- /dev/null
+++ b/search-doc-1714616665936.json
@@ -0,0 +1 @@
+{"searchDocs":[{"title":"Apache OpenDAL™ participates in Open Source Promotion Plan 2024","type":0,"sectionRef":"#","url":"/blog/apache-opendal-participates-in-ospp-2024","content":"Hello, everyone! We're writing this blog post to announce that the Apache OpenDAL™ Project will be participating in Open Source Promotion Plan (OSPP) 2024. If you're not eligible or interested in participating in OSPP, then most of this post likely isn't relevant to you; if you are, this should contain some u [...]
\ No newline at end of file
diff --git a/search-doc.json b/search-doc.json
index 2e7e5f9ee9..3e7d734453 100644
--- a/search-doc.json
+++ b/search-doc.json
@@ -1 +1 @@
-{"searchDocs":[{"title":"Apache OpenDAL™ participates in Open Source Promotion Plan 2024","type":0,"sectionRef":"#","url":"/blog/apache-opendal-participates-in-ospp-2024","content":"Hello, everyone! We're writing this blog post to announce that the Apache OpenDAL™ Project will be participating in Open Source Promotion Plan (OSPP) 2024. If you're not eligible or interested in participating in OSPP, then most of this post likely isn't relevant to you; if you are, this should contain some u [...]
\ No newline at end of file
+{"searchDocs":[{"title":"Apache OpenDAL™ participates in Open Source Promotion Plan 2024","type":0,"sectionRef":"#","url":"/blog/apache-opendal-participates-in-ospp-2024","content":"Hello, everyone! We're writing this blog post to announce that the Apache OpenDAL™ Project will be participating in Open Source Promotion Plan (OSPP) 2024. If you're not eligible or interested in participating in OSPP, then most of this post likely isn't relevant to you; if you are, this should contain some u [...]
\ No newline at end of file