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 2023/03/23 16:16:49 UTC

[incubator-opendal] branch gh-pages updated: deploy: 14cbb0f187cfc42ad0626d767628075e67afad44

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/incubator-opendal.git


The following commit(s) were added to refs/heads/gh-pages by this push:
     new fcb8f745 deploy: 14cbb0f187cfc42ad0626d767628075e67afad44
fcb8f745 is described below

commit fcb8f745c717441c0508f29ed7543d26d79b8a19
Author: Xuanwo <Xu...@users.noreply.github.com>
AuthorDate: Thu Mar 23 16:16:43 2023 +0000

    deploy: 14cbb0f187cfc42ad0626d767628075e67afad44
---
 404.html                                           |   4 +-
 .../{1db64337.2618879b.js => 1db64337.22a091c1.js} |   2 +-
 assets/js/runtime~main.9cea6454.js                 |   1 +
 assets/js/runtime~main.b5734492.js                 |   1 -
 blog/archive/index.html                            |   4 +-
 blog/index.html                                    |   4 +-
 blog/opendal-entered-apache-incubator/index.html   |   4 +-
 blog/tags/announcement/index.html                  |   4 +-
 blog/tags/index.html                               |   4 +-
 docs/nodejs/classes/BlockingLister.html            |   4 +-
 docs/nodejs/classes/Entry.html                     |   4 +-
 docs/nodejs/classes/Lister.html                    |   4 +-
 docs/nodejs/classes/Metadata.html                  |  18 +-
 docs/nodejs/classes/Operator.html                  |  32 ++--
 docs/overview/index.html                           |   6 +-
 docs/python/opendal.html                           |  30 +--
 docs/python/search.js                              |   2 +-
 docs/rust/help.html                                |   2 +-
 docs/rust/implementors/core/clone/trait.Clone.js   |   2 +-
 docs/rust/implementors/core/cmp/trait.Eq.js        |   2 +-
 docs/rust/implementors/core/cmp/trait.PartialEq.js |   2 +-
 docs/rust/implementors/core/convert/trait.From.js  |   2 +-
 .../implementors/core/default/trait.Default.js     |   2 +-
 docs/rust/implementors/core/error/trait.Error.js   |   2 +-
 docs/rust/implementors/core/fmt/trait.Debug.js     |   2 +-
 docs/rust/implementors/core/fmt/trait.Display.js   |   2 +-
 docs/rust/implementors/core/hash/trait.Hash.js     |   2 +-
 .../core/iter/traits/iterator/trait.Iterator.js    |   2 +-
 docs/rust/implementors/core/marker/trait.Copy.js   |   2 +-
 docs/rust/implementors/core/marker/trait.Send.js   |   2 +-
 .../implementors/core/marker/trait.StructuralEq.js |   2 +-
 .../core/marker/trait.StructuralPartialEq.js       |   2 +-
 docs/rust/implementors/core/marker/trait.Sync.js   |   2 +-
 docs/rust/implementors/core/marker/trait.Unpin.js  |   2 +-
 docs/rust/implementors/core/ops/arith/trait.Rem.js |   2 +-
 docs/rust/implementors/core/ops/arith/trait.Sub.js |   2 +-
 .../rust/implementors/core/ops/bit/trait.BitAnd.js |   2 +-
 docs/rust/implementors/core/ops/bit/trait.BitOr.js |   2 +-
 .../rust/implementors/core/ops/bit/trait.BitXor.js |   2 +-
 docs/rust/implementors/core/ops/bit/trait.Not.js   |   2 +-
 .../core/panic/unwind_safe/trait.RefUnwindSafe.js  |   2 +-
 .../core/panic/unwind_safe/trait.UnwindSafe.js     |   2 +-
 .../implementors/core/str/traits/trait.FromStr.js  |   2 +-
 docs/rust/implementors/std/io/trait.Read.js        |   2 +-
 docs/rust/implementors/std/io/trait.Seek.js        |   2 +-
 docs/rust/implementors/std/io/trait.Write.js       |   2 +-
 docs/rust/opendal/all.html                         |   2 +-
 docs/rust/opendal/docs/changelog/index.html        |   2 +-
 docs/rust/opendal/docs/comparisons/index.html      |   2 +-
 .../docs/comparisons/vs_object_store/index.html    |   2 +-
 docs/rust/opendal/docs/concepts/index.html         |   2 +-
 docs/rust/opendal/docs/features/index.html         |   2 +-
 docs/rust/opendal/docs/index.html                  |   2 +-
 .../opendal/docs/internals/accessor/index.html     |  10 +-
 docs/rust/opendal/docs/internals/index.html        |   2 +-
 docs/rust/opendal/docs/internals/layer/index.html  |   2 +-
 docs/rust/opendal/docs/rfcs/index.html             |   2 +-
 .../opendal/docs/rfcs/rfc_0000_example/index.html  |   2 +-
 .../rfcs/rfc_0041_object_native_api/index.html     |   2 +-
 .../docs/rfcs/rfc_0044_error_handle/index.html     |   2 +-
 .../docs/rfcs/rfc_0057_auto_region/index.html      |   2 +-
 .../docs/rfcs/rfc_0069_object_stream/index.html    |   2 +-
 .../docs/rfcs/rfc_0090_limited_reader/index.html   |   2 +-
 .../rfcs/rfc_0112_path_normalization/index.html    |   2 +-
 .../rfcs/rfc_0191_async_streaming_io/index.html    |   2 +-
 .../rfcs/rfc_0203_remove_credential/index.html     |   2 +-
 .../docs/rfcs/rfc_0221_create_dir/index.html       |   2 +-
 .../docs/rfcs/rfc_0247_retryable_error/index.html  |   2 +-
 .../docs/rfcs/rfc_0293_object_id/index.html        |   2 +-
 .../docs/rfcs/rfc_0337_dir_entry/index.html        |   2 +-
 .../rfcs/rfc_0409_accessor_capabilities/index.html |   2 +-
 .../opendal/docs/rfcs/rfc_0413_presign/index.html  |   2 +-
 .../rfc_0423_command_line_interface/index.html     |   2 +-
 .../docs/rfcs/rfc_0429_init_from_iter/index.html   |   2 +-
 .../docs/rfcs/rfc_0438_multipart/index.html        |   2 +-
 .../opendal/docs/rfcs/rfc_0443_gateway/index.html  |   2 +-
 .../docs/rfcs/rfc_0501_new_builder/index.html      |   2 +-
 .../docs/rfcs/rfc_0554_write_refactor/index.html   |   2 +-
 .../rfcs/rfc_0561_list_metadata_reuse/index.html   |   2 +-
 .../docs/rfcs/rfc_0599_blocking_api/index.html     |   2 +-
 .../docs/rfcs/rfc_0623_redis_service/index.html    |   2 +-
 .../rfcs/rfc_0627_split_capabilities/index.html    |   2 +-
 .../docs/rfcs/rfc_0661_path_in_accessor/index.html |   2 +-
 .../rfcs/rfc_0793_generic_kv_services/index.html   |   2 +-
 .../docs/rfcs/rfc_0926_object_reader/index.html    |   2 +-
 .../docs/rfcs/rfc_0977_refactor_error/index.html   |   2 +-
 .../docs/rfcs/rfc_1085_object_handler/index.html   |   2 +-
 .../rfcs/rfc_1391_object_metadataer/index.html     |   2 +-
 .../rfcs/rfc_1398_query_based_metadata/index.html  |   2 +-
 .../docs/rfcs/rfc_1420_object_writer/index.html    |   2 +-
 .../rfcs/rfc_1477_remove_object_concept/index.html |   2 +-
 .../rfcs/rfc_1735_operation_extension/index.html   |   2 +-
 docs/rust/opendal/docs/upgrade/index.html          |   2 +-
 docs/rust/opendal/enum.EntryMode.html              |  18 +-
 docs/rust/opendal/enum.ErrorKind.html              |  16 +-
 docs/rust/opendal/enum.Metakey.html                |  14 +-
 docs/rust/opendal/enum.Scheme.html                 |  20 +-
 docs/rust/opendal/index.html                       |   2 +-
 docs/rust/opendal/layers/index.html                |   2 +-
 docs/rust/opendal/layers/struct.ChaosLayer.html    |  12 +-
 .../layers/struct.ConcurrentLimitLayer.html        |  12 +-
 .../opendal/layers/struct.ImmutableIndexLayer.html |  14 +-
 docs/rust/opendal/layers/struct.LoggingLayer.html  |  14 +-
 docs/rust/opendal/layers/struct.MetricsLayer.html  |  10 +-
 docs/rust/opendal/layers/struct.RetryLayer.html    |  18 +-
 docs/rust/opendal/layers/struct.TracingLayer.html  |  10 +-
 docs/rust/opendal/ops/enum.BatchOperations.html    |  18 +-
 docs/rust/opendal/ops/enum.PresignOperation.html   |  10 +-
 docs/rust/opendal/ops/index.html                   |   2 +-
 docs/rust/opendal/ops/struct.OpBatch.html          |  10 +-
 docs/rust/opendal/ops/struct.OpCreate.html         |  10 +-
 docs/rust/opendal/ops/struct.OpDelete.html         |  10 +-
 docs/rust/opendal/ops/struct.OpList.html           |  14 +-
 docs/rust/opendal/ops/struct.OpPresign.html        |  12 +-
 docs/rust/opendal/ops/struct.OpRead.html           |  10 +-
 docs/rust/opendal/ops/struct.OpScan.html           |  14 +-
 docs/rust/opendal/ops/struct.OpStat.html           |  10 +-
 docs/rust/opendal/ops/struct.OpWrite.html          |  18 +-
 docs/rust/opendal/raw/adapters/index.html          |   2 +-
 docs/rust/opendal/raw/adapters/kv/index.html       |   2 +-
 .../opendal/raw/adapters/kv/struct.Backend.html    |  16 +-
 .../opendal/raw/adapters/kv/struct.Metadata.html   |  14 +-
 .../opendal/raw/adapters/kv/trait.Adapter.html     |  44 ++---
 docs/rust/opendal/raw/constant.VERSION.html        |   4 +-
 docs/rust/opendal/raw/enum.AccessorCapability.html |  14 +-
 docs/rust/opendal/raw/enum.AccessorHint.html       |  14 +-
 docs/rust/opendal/raw/enum.AsyncBody.html          |  14 +-
 docs/rust/opendal/raw/enum.BatchedResults.html     |  22 +--
 docs/rust/opendal/raw/enum.Body.html               |  44 ++---
 docs/rust/opendal/raw/enum.Operation.html          |  16 +-
 docs/rust/opendal/raw/fn.build_abs_path.html       |   4 +-
 docs/rust/opendal/raw/fn.build_rel_path.html       |   4 +-
 .../rust/opendal/raw/fn.build_rooted_abs_path.html |   4 +-
 .../raw/fn.format_authorization_by_basic.html      |   4 +-
 .../raw/fn.format_authorization_by_bearer.html     |   4 +-
 docs/rust/opendal/raw/fn.format_content_md5.html   |   4 +-
 docs/rust/opendal/raw/fn.get_basename.html         |   4 +-
 docs/rust/opendal/raw/fn.get_parent.html           |   4 +-
 .../opendal/raw/fn.new_json_deserialize_error.html |   2 +-
 .../opendal/raw/fn.new_json_serialize_error.html   |   2 +-
 .../opendal/raw/fn.new_request_build_error.html    |   2 +-
 .../opendal/raw/fn.new_request_sign_error.html     |   2 +-
 .../opendal/raw/fn.new_xml_deserialize_error.html  |   2 +-
 docs/rust/opendal/raw/fn.normalize_path.html       |   4 +-
 docs/rust/opendal/raw/fn.normalize_root.html       |   4 +-
 .../opendal/raw/fn.parse_content_disposition.html  |   4 +-
 docs/rust/opendal/raw/fn.parse_content_length.html |   4 +-
 docs/rust/opendal/raw/fn.parse_content_md5.html    |   4 +-
 docs/rust/opendal/raw/fn.parse_content_range.html  |   4 +-
 docs/rust/opendal/raw/fn.parse_content_type.html   |   4 +-
 docs/rust/opendal/raw/fn.parse_error_response.html |   2 +-
 docs/rust/opendal/raw/fn.parse_etag.html           |   4 +-
 docs/rust/opendal/raw/fn.parse_into_metadata.html  |   4 +-
 docs/rust/opendal/raw/fn.parse_last_modified.html  |   4 +-
 docs/rust/opendal/raw/fn.parse_location.html       |   4 +-
 docs/rust/opendal/raw/fn.percent_encode_path.html  |   4 +-
 docs/rust/opendal/raw/fn.validate_path.html        |   4 +-
 docs/rust/opendal/raw/index.html                   |   2 +-
 docs/rust/opendal/raw/oio/enum.PageOperation.html  |  16 +-
 docs/rust/opendal/raw/oio/enum.ReadOperation.html  |  16 +-
 docs/rust/opendal/raw/oio/enum.WriteOperation.html |  16 +-
 .../opendal/raw/oio/fn.into_streamable_reader.html |   4 +-
 docs/rust/opendal/raw/oio/fn.to_flat_pager.html    |   4 +-
 .../opendal/raw/oio/fn.to_hierarchy_pager.html     |   4 +-
 docs/rust/opendal/raw/oio/index.html               |   2 +-
 .../raw/oio/into_blocking_reader/fn.from_fd.html   |   4 +-
 .../raw/oio/into_blocking_reader/index.html        |   2 +-
 .../oio/into_blocking_reader/struct.FdReader.html  |  14 +-
 .../opendal/raw/oio/into_reader/fn.by_range.html   |   4 +-
 .../opendal/raw/oio/into_reader/fn.from_fd.html    |   4 +-
 docs/rust/opendal/raw/oio/into_reader/index.html   |   2 +-
 .../raw/oio/into_reader/struct.FdReader.html       |  14 +-
 .../raw/oio/into_reader/struct.RangeReader.html    |  10 +-
 docs/rust/opendal/raw/oio/struct.Cursor.html       |  14 +-
 docs/rust/opendal/raw/oio/struct.Entry.html        |  24 +--
 .../raw/oio/struct.IntoStreamableReader.html       |  10 +-
 docs/rust/opendal/raw/oio/struct.ToFlatPager.html  |  10 +-
 .../opendal/raw/oio/struct.ToHierarchyPager.html   |  10 +-
 docs/rust/opendal/raw/oio/trait.BlockingPage.html  |   6 +-
 docs/rust/opendal/raw/oio/trait.BlockingRead.html  |  22 +--
 docs/rust/opendal/raw/oio/trait.BlockingWrite.html |  18 +-
 docs/rust/opendal/raw/oio/trait.Page.html          |   8 +-
 docs/rust/opendal/raw/oio/trait.Read.html          |  22 +--
 docs/rust/opendal/raw/oio/trait.ReadExt.html       |  10 +-
 docs/rust/opendal/raw/oio/trait.Write.html         |  18 +-
 docs/rust/opendal/raw/oio/type.BlockingPager.html  |   4 +-
 docs/rust/opendal/raw/oio/type.BlockingReader.html |   4 +-
 docs/rust/opendal/raw/oio/type.BlockingWriter.html |   4 +-
 docs/rust/opendal/raw/oio/type.Pager.html          |   4 +-
 docs/rust/opendal/raw/oio/type.Reader.html         |   4 +-
 docs/rust/opendal/raw/oio/type.Writer.html         |   4 +-
 docs/rust/opendal/raw/struct.AccessorInfo.html     |  24 +--
 .../rust/opendal/raw/struct.BytesContentRange.html |  32 ++--
 docs/rust/opendal/raw/struct.BytesRange.html       |  26 +--
 docs/rust/opendal/raw/struct.ErrorResponse.html    |  12 +-
 docs/rust/opendal/raw/struct.HttpClient.html       |  12 +-
 .../rust/opendal/raw/struct.IncomingAsyncBody.html |  14 +-
 docs/rust/opendal/raw/struct.PresignedRequest.html |  10 +-
 docs/rust/opendal/raw/struct.RpBatch.html          |  10 +-
 docs/rust/opendal/raw/struct.RpCreate.html         |  10 +-
 docs/rust/opendal/raw/struct.RpDelete.html         |  10 +-
 docs/rust/opendal/raw/struct.RpList.html           |  10 +-
 docs/rust/opendal/raw/struct.RpPresign.html        |  10 +-
 docs/rust/opendal/raw/struct.RpRead.html           |  12 +-
 docs/rust/opendal/raw/struct.RpScan.html           |  10 +-
 docs/rust/opendal/raw/struct.RpStat.html           |  12 +-
 docs/rust/opendal/raw/struct.RpWrite.html          |  10 +-
 docs/rust/opendal/raw/trait.Accessor.html          |  74 ++++----
 docs/rust/opendal/raw/trait.Layer.html             |   2 +-
 docs/rust/opendal/raw/trait.LayeredAccessor.html   |  36 ++--
 docs/rust/opendal/raw/type.FusedAccessor.html      |   4 +-
 docs/rust/opendal/services/index.html              |   2 +-
 docs/rust/opendal/services/struct.Azblob.html      |  26 +--
 docs/rust/opendal/services/struct.Azdfs.html       |  22 +--
 docs/rust/opendal/services/struct.Dashmap.html     |  10 +-
 docs/rust/opendal/services/struct.Fs.html          |  16 +-
 docs/rust/opendal/services/struct.Ftp.html         |  18 +-
 docs/rust/opendal/services/struct.Gcs.html         |  28 +--
 docs/rust/opendal/services/struct.Ghac.html        |  18 +-
 docs/rust/opendal/services/struct.Hdfs.html        |  14 +-
 docs/rust/opendal/services/struct.Http.html        |  22 +--
 docs/rust/opendal/services/struct.Ipfs.html        |  16 +-
 docs/rust/opendal/services/struct.Ipmfs.html       |  16 +-
 docs/rust/opendal/services/struct.Memcached.html   |  16 +-
 docs/rust/opendal/services/struct.Memory.html      |  10 +-
 docs/rust/opendal/services/struct.Moka.html        |  22 +--
 docs/rust/opendal/services/struct.Obs.html         |  22 +--
 docs/rust/opendal/services/struct.Oss.html         |  26 +--
 docs/rust/opendal/services/struct.Redis.html       |  22 +--
 docs/rust/opendal/services/struct.Rocksdb.html     |  14 +-
 docs/rust/opendal/services/struct.S3.html          |  54 +++---
 docs/rust/opendal/services/struct.Sled.html        |  12 +-
 docs/rust/opendal/services/struct.Webdav.html      |  22 +--
 docs/rust/opendal/services/struct.Webhdfs.html     |  16 +-
 docs/rust/opendal/struct.BlockingLister.html       |  78 ++++----
 docs/rust/opendal/struct.BlockingOperator.html     |  42 ++---
 docs/rust/opendal/struct.BlockingReader.html       | 102 +++++------
 docs/rust/opendal/struct.BlockingWriter.html       |  24 +--
 docs/rust/opendal/struct.Entry.html                |  16 +-
 docs/rust/opendal/struct.Error.html                |  24 +--
 docs/rust/opendal/struct.Lister.html               | 140 +++++++-------
 docs/rust/opendal/struct.Metadata.html             |  58 +++---
 docs/rust/opendal/struct.Operator.html             |  62 +++----
 docs/rust/opendal/struct.OperatorBuilder.html      |  10 +-
 docs/rust/opendal/struct.OperatorInfo.html         |  28 +--
 docs/rust/opendal/struct.Reader.html               | 204 ++++++++++-----------
 docs/rust/opendal/struct.Writer.html               |  20 +-
 docs/rust/opendal/trait.Builder.html               |  18 +-
 docs/rust/opendal/type.Result.html                 |   4 +-
 docs/rust/search-index.js                          |   2 +-
 docs/rust/settings.html                            |   2 +-
 docs/rust/src/opendal/docs/comparisons/mod.rs.html |   2 +-
 docs/rust/src/opendal/docs/concepts.rs.html        |   2 +-
 .../src/opendal/docs/internals/accessor.rs.html    |   2 +-
 docs/rust/src/opendal/docs/internals/layer.rs.html |   2 +-
 docs/rust/src/opendal/docs/internals/mod.rs.html   |   2 +-
 docs/rust/src/opendal/docs/mod.rs.html             |   2 +-
 docs/rust/src/opendal/docs/rfcs/mod.rs.html        |   2 +-
 docs/rust/src/opendal/layers/chaos.rs.html         |   2 +-
 docs/rust/src/opendal/layers/complete.rs.html      |   2 +-
 .../src/opendal/layers/concurrent_limit.rs.html    |   2 +-
 docs/rust/src/opendal/layers/error_context.rs.html |   2 +-
 .../src/opendal/layers/immutable_index.rs.html     |   2 +-
 docs/rust/src/opendal/layers/logging.rs.html       |   2 +-
 docs/rust/src/opendal/layers/metrics.rs.html       |   2 +-
 docs/rust/src/opendal/layers/mod.rs.html           |   2 +-
 docs/rust/src/opendal/layers/retry.rs.html         |   2 +-
 docs/rust/src/opendal/layers/tracing.rs.html       |   2 +-
 docs/rust/src/opendal/layers/type_eraser.rs.html   |   2 +-
 docs/rust/src/opendal/lib.rs.html                  |   2 +-
 docs/rust/src/opendal/raw/accessor.rs.html         |   2 +-
 docs/rust/src/opendal/raw/adapters/kv/api.rs.html  |   2 +-
 .../src/opendal/raw/adapters/kv/backend.rs.html    |   2 +-
 docs/rust/src/opendal/raw/adapters/kv/mod.rs.html  |   2 +-
 docs/rust/src/opendal/raw/adapters/mod.rs.html     |   2 +-
 docs/rust/src/opendal/raw/http_util/body.rs.html   |   2 +-
 .../raw/http_util/bytes_content_range.rs.html      |   2 +-
 .../src/opendal/raw/http_util/bytes_range.rs.html  |   2 +-
 docs/rust/src/opendal/raw/http_util/client.rs.html |   2 +-
 docs/rust/src/opendal/raw/http_util/dns.rs.html    |   2 +-
 docs/rust/src/opendal/raw/http_util/error.rs.html  |   2 +-
 docs/rust/src/opendal/raw/http_util/header.rs.html |   2 +-
 docs/rust/src/opendal/raw/http_util/mod.rs.html    |   2 +-
 docs/rust/src/opendal/raw/http_util/uri.rs.html    |   2 +-
 docs/rust/src/opendal/raw/layer.rs.html            |   2 +-
 docs/rust/src/opendal/raw/mod.rs.html              |   2 +-
 docs/rust/src/opendal/raw/oio/cursor.rs.html       |   2 +-
 docs/rust/src/opendal/raw/oio/entry.rs.html        |   2 +-
 .../raw/oio/into_blocking_reader/from_fd.rs.html   |   2 +-
 .../raw/oio/into_blocking_reader/mod.rs.html       |   2 +-
 .../opendal/raw/oio/into_reader/by_range.rs.html   |   2 +-
 .../opendal/raw/oio/into_reader/from_fd.rs.html    |   2 +-
 .../src/opendal/raw/oio/into_reader/mod.rs.html    |   2 +-
 .../src/opendal/raw/oio/into_streamable.rs.html    |   2 +-
 docs/rust/src/opendal/raw/oio/mod.rs.html          |   2 +-
 docs/rust/src/opendal/raw/oio/page.rs.html         |   2 +-
 docs/rust/src/opendal/raw/oio/read.rs.html         |   2 +-
 .../rust/src/opendal/raw/oio/to_flat_pager.rs.html |   2 +-
 .../src/opendal/raw/oio/to_hierarchy_pager.rs.html |   2 +-
 docs/rust/src/opendal/raw/oio/write.rs.html        |   2 +-
 docs/rust/src/opendal/raw/operation.rs.html        |   2 +-
 docs/rust/src/opendal/raw/path.rs.html             |   2 +-
 docs/rust/src/opendal/raw/rps.rs.html              |   2 +-
 docs/rust/src/opendal/raw/serde_util.rs.html       |   2 +-
 docs/rust/src/opendal/raw/version.rs.html          |   2 +-
 .../src/opendal/services/azblob/backend.rs.html    |   2 +-
 .../rust/src/opendal/services/azblob/batch.rs.html |   2 +-
 .../rust/src/opendal/services/azblob/error.rs.html |   2 +-
 docs/rust/src/opendal/services/azblob/mod.rs.html  |   2 +-
 .../rust/src/opendal/services/azblob/pager.rs.html |   2 +-
 .../src/opendal/services/azblob/writer.rs.html     |   2 +-
 .../src/opendal/services/azdfs/backend.rs.html     |   2 +-
 docs/rust/src/opendal/services/azdfs/error.rs.html |   2 +-
 docs/rust/src/opendal/services/azdfs/mod.rs.html   |   2 +-
 docs/rust/src/opendal/services/azdfs/pager.rs.html |   2 +-
 .../rust/src/opendal/services/azdfs/writer.rs.html |   2 +-
 .../src/opendal/services/dashmap/backend.rs.html   |   2 +-
 docs/rust/src/opendal/services/dashmap/mod.rs.html |   2 +-
 docs/rust/src/opendal/services/fs/backend.rs.html  |   2 +-
 docs/rust/src/opendal/services/fs/error.rs.html    |   2 +-
 docs/rust/src/opendal/services/fs/mod.rs.html      |   2 +-
 docs/rust/src/opendal/services/fs/pager.rs.html    |   2 +-
 docs/rust/src/opendal/services/fs/writer.rs.html   |   2 +-
 docs/rust/src/opendal/services/ftp/backend.rs.html |   2 +-
 docs/rust/src/opendal/services/ftp/err.rs.html     |   2 +-
 docs/rust/src/opendal/services/ftp/mod.rs.html     |   2 +-
 docs/rust/src/opendal/services/ftp/pager.rs.html   |   2 +-
 docs/rust/src/opendal/services/ftp/util.rs.html    |   2 +-
 docs/rust/src/opendal/services/ftp/writer.rs.html  |   2 +-
 docs/rust/src/opendal/services/gcs/backend.rs.html |   2 +-
 docs/rust/src/opendal/services/gcs/error.rs.html   |   2 +-
 docs/rust/src/opendal/services/gcs/mod.rs.html     |   2 +-
 docs/rust/src/opendal/services/gcs/pager.rs.html   |   2 +-
 docs/rust/src/opendal/services/gcs/uri.rs.html     |   2 +-
 docs/rust/src/opendal/services/gcs/writer.rs.html  |   2 +-
 .../rust/src/opendal/services/ghac/backend.rs.html |   2 +-
 docs/rust/src/opendal/services/ghac/error.rs.html  |   2 +-
 docs/rust/src/opendal/services/ghac/mod.rs.html    |   2 +-
 docs/rust/src/opendal/services/ghac/writer.rs.html |   2 +-
 .../rust/src/opendal/services/hdfs/backend.rs.html |   2 +-
 docs/rust/src/opendal/services/hdfs/error.rs.html  |   2 +-
 docs/rust/src/opendal/services/hdfs/mod.rs.html    |   2 +-
 docs/rust/src/opendal/services/hdfs/pager.rs.html  |   2 +-
 docs/rust/src/opendal/services/hdfs/writer.rs.html |   2 +-
 .../rust/src/opendal/services/http/backend.rs.html |   2 +-
 docs/rust/src/opendal/services/http/error.rs.html  |   2 +-
 docs/rust/src/opendal/services/http/mod.rs.html    |   2 +-
 .../rust/src/opendal/services/ipfs/backend.rs.html |   2 +-
 docs/rust/src/opendal/services/ipfs/error.rs.html  |   2 +-
 docs/rust/src/opendal/services/ipfs/ipld.rs.html   |   2 +-
 docs/rust/src/opendal/services/ipfs/mod.rs.html    |   2 +-
 .../src/opendal/services/ipmfs/backend.rs.html     |   2 +-
 .../src/opendal/services/ipmfs/builder.rs.html     |   2 +-
 docs/rust/src/opendal/services/ipmfs/error.rs.html |   2 +-
 docs/rust/src/opendal/services/ipmfs/mod.rs.html   |   2 +-
 docs/rust/src/opendal/services/ipmfs/pager.rs.html |   2 +-
 .../rust/src/opendal/services/ipmfs/writer.rs.html |   2 +-
 .../src/opendal/services/memcached/ascii.rs.html   |   2 +-
 .../src/opendal/services/memcached/backend.rs.html |   2 +-
 .../src/opendal/services/memcached/mod.rs.html     |   2 +-
 .../src/opendal/services/memory/backend.rs.html    |   2 +-
 docs/rust/src/opendal/services/memory/mod.rs.html  |   2 +-
 docs/rust/src/opendal/services/mod.rs.html         |   2 +-
 .../rust/src/opendal/services/moka/backend.rs.html |   2 +-
 docs/rust/src/opendal/services/moka/mod.rs.html    |   2 +-
 docs/rust/src/opendal/services/obs/backend.rs.html |   2 +-
 docs/rust/src/opendal/services/obs/error.rs.html   |   2 +-
 docs/rust/src/opendal/services/obs/mod.rs.html     |   2 +-
 docs/rust/src/opendal/services/obs/pager.rs.html   |   2 +-
 docs/rust/src/opendal/services/obs/writer.rs.html  |   2 +-
 docs/rust/src/opendal/services/oss/backend.rs.html |   2 +-
 docs/rust/src/opendal/services/oss/error.rs.html   |   2 +-
 docs/rust/src/opendal/services/oss/mod.rs.html     |   2 +-
 docs/rust/src/opendal/services/oss/pager.rs.html   |   2 +-
 docs/rust/src/opendal/services/oss/writer.rs.html  |   2 +-
 .../src/opendal/services/redis/backend.rs.html     |   2 +-
 docs/rust/src/opendal/services/redis/mod.rs.html   |   2 +-
 .../src/opendal/services/rocksdb/backend.rs.html   |   2 +-
 docs/rust/src/opendal/services/rocksdb/mod.rs.html |   2 +-
 docs/rust/src/opendal/services/s3/backend.rs.html  |   2 +-
 docs/rust/src/opendal/services/s3/error.rs.html    |   2 +-
 docs/rust/src/opendal/services/s3/mod.rs.html      |   2 +-
 docs/rust/src/opendal/services/s3/pager.rs.html    |   2 +-
 docs/rust/src/opendal/services/s3/writer.rs.html   |   2 +-
 .../rust/src/opendal/services/sled/backend.rs.html |   2 +-
 docs/rust/src/opendal/services/sled/mod.rs.html    |   2 +-
 .../src/opendal/services/webdav/backend.rs.html    |   2 +-
 .../rust/src/opendal/services/webdav/error.rs.html |   2 +-
 .../opendal/services/webdav/list_response.rs.html  |   2 +-
 docs/rust/src/opendal/services/webdav/mod.rs.html  |   2 +-
 .../rust/src/opendal/services/webdav/pager.rs.html |   2 +-
 .../src/opendal/services/webdav/writer.rs.html     |   2 +-
 .../src/opendal/services/webhdfs/backend.rs.html   |   2 +-
 .../src/opendal/services/webhdfs/error.rs.html     |   2 +-
 .../src/opendal/services/webhdfs/message.rs.html   |   2 +-
 docs/rust/src/opendal/services/webhdfs/mod.rs.html |   2 +-
 .../src/opendal/services/webhdfs/pager.rs.html     |   2 +-
 .../src/opendal/services/webhdfs/writer.rs.html    |   2 +-
 docs/rust/src/opendal/types/builder.rs.html        |   2 +-
 docs/rust/src/opendal/types/entry.rs.html          |   2 +-
 docs/rust/src/opendal/types/error.rs.html          |   2 +-
 docs/rust/src/opendal/types/list.rs.html           |   2 +-
 docs/rust/src/opendal/types/metadata.rs.html       |   2 +-
 docs/rust/src/opendal/types/mod.rs.html            |   2 +-
 docs/rust/src/opendal/types/mode.rs.html           |   2 +-
 .../types/operator/blocking_operator.rs.html       |   2 +-
 .../src/opendal/types/operator/builder.rs.html     |   2 +-
 .../src/opendal/types/operator/metadata.rs.html    |   2 +-
 docs/rust/src/opendal/types/operator/mod.rs.html   |   2 +-
 .../src/opendal/types/operator/operator.rs.html    |   2 +-
 docs/rust/src/opendal/types/ops.rs.html            |   2 +-
 docs/rust/src/opendal/types/reader.rs.html         |   2 +-
 docs/rust/src/opendal/types/scheme.rs.html         |   2 +-
 docs/rust/src/opendal/types/writer.rs.html         |   2 +-
 index.html                                         |   4 +-
 415 files changed, 1576 insertions(+), 1576 deletions(-)

diff --git a/404.html b/404.html
index 97fdeabe..d11b23b3 100644
--- a/404.html
+++ b/404.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <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" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><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.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.b5734492.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.9cea6454.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.b5734492.js"></script>
+<script src="/assets/js/runtime~main.9cea6454.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/js/1db64337.2618879b.js b/assets/js/1db64337.22a091c1.js
similarity index 61%
rename from assets/js/1db64337.2618879b.js
rename to assets/js/1db64337.22a091c1.js
index 84cb253c..f3e37aa6 100644
--- a/assets/js/1db64337.2618879b.js
+++ b/assets/js/1db64337.22a091c1.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[372],{6777:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>n,contentTitle:()=>s,default:()=>l,frontMatter:()=>a,metadata:()=>d,toc:()=>v});var o=i(7462),r=(i(7294),i(3905));const a={sidebar_position:1,title:"Overview"},s=void 0,d={unversionedId:"overview",id:"overview",title:"Overview",description:"",source:"@site/docs/overview.md",sourceDirName:".",slug:"/overview",permalink:"/docs/overview",draft:!1,editUrl: [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[372],{6777:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>n,contentTitle:()=>s,default:()=>l,frontMatter:()=>a,metadata:()=>d,toc:()=>v});var o=i(7462),r=(i(7294),i(3905));const a={sidebar_position:1,title:"Overview"},s=void 0,d={unversionedId:"overview",id:"overview",title:"Overview",description:"",source:"@site/docs/overview.md",sourceDirName:".",slug:"/overview",permalink:"/docs/overview",draft:!1,editUrl: [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.9cea6454.js b/assets/js/runtime~main.9cea6454.js
new file mode 100644
index 00000000..e60701ff
--- /dev/null
+++ b/assets/js/runtime~main.9cea6454.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,t,r,o,a,n={},c={};function f(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={exports:{}};return n[e].call(r.exports,r,r.exports,f),r.exports}f.m=n,e=[],f.O=(t,r,o,a)=>{if(!r){var n=1/0;for(b=0;b<e.length;b++){r=e[b][0],o=e[b][1],a=e[b][2];for(var c=!0,i=0;i<r.length;i++)(!1&a||n>=a)&&Object.keys(f.O).every((e=>f.O[e](r[i])))?r.splice(i--,1):(c=!1,a<n&&(n=a));if(c){e.splice(b--,1);var d=o();void 0!==d&&(t=d)}}return t}a=a||0;for(var b=e.length;b>0&&e[b-1] [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.b5734492.js b/assets/js/runtime~main.b5734492.js
deleted file mode 100644
index f22b0bfd..00000000
--- a/assets/js/runtime~main.b5734492.js
+++ /dev/null
@@ -1 +0,0 @@
-(()=>{"use strict";var e,t,r,o,a,n={},f={};function c(e){var t=f[e];if(void 0!==t)return t.exports;var r=f[e]={exports:{}};return n[e].call(r.exports,r,r.exports,c),r.exports}c.m=n,e=[],c.O=(t,r,o,a)=>{if(!r){var n=1/0;for(b=0;b<e.length;b++){r=e[b][0],o=e[b][1],a=e[b][2];for(var f=!0,i=0;i<r.length;i++)(!1&a||n>=a)&&Object.keys(c.O).every((e=>c.O[e](r[i])))?r.splice(i--,1):(f=!1,a<n&&(n=a));if(f){e.splice(b--,1);var d=o();void 0!==d&&(t=d)}}return t}a=a||0;for(var b=e.length;b>0&&e[b-1] [...]
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
index 97842549..63357871 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <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" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><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.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.b5734492.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.9cea6454.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.b5734492.js"></script>
+<script src="/assets/js/runtime~main.9cea6454.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index f260da99..2e082fe1 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <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" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property="og:title" content="Blog | Apache OpenDAL"><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.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.b5734492.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.9cea6454.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.b5734492.js"></script>
+<script src="/assets/js/runtime~main.9cea6454.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/opendal-entered-apache-incubator/index.html b/blog/opendal-entered-apache-incubator/index.html
index db33cf7e..d206ff2f 100644
--- a/blog/opendal-entered-apache-incubator/index.html
+++ b/blog/opendal-entered-apache-incubator/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <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" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><m [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.b5734492.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.9cea6454.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.b5734492.js"></script>
+<script src="/assets/js/runtime~main.9cea6454.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/announcement/index.html b/blog/tags/announcement/index.html
index fac0d207..8fb830df 100644
--- a/blog/tags/announcement/index.html
+++ b/blog/tags/announcement/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">One post tagged with &quot;announcement&quot; | 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" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.b5734492.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.9cea6454.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.b5734492.js"></script>
+<script src="/assets/js/runtime~main.9cea6454.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/index.html b/blog/tags/index.html
index 99e8c040..188d54c4 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <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" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property="og:title" content="Tags | Apache OpenDAL"><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.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.b5734492.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.9cea6454.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.b5734492.js"></script>
+<script src="/assets/js/runtime~main.9cea6454.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/nodejs/classes/BlockingLister.html b/docs/nodejs/classes/BlockingLister.html
index 157d1f1a..51f47746 100644
--- a/docs/nodejs/classes/BlockingLister.html
+++ b/docs/nodejs/classes/BlockingLister.html
@@ -20,7 +20,7 @@
 <ul class="tsd-hierarchy">
 <li><span class="target">BlockingLister</span></li></ul></section><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L101">index.d.ts:101</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L101">index.d.ts:101</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">
@@ -51,7 +51,7 @@
 <li class="tsd-description">
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="Entry.html" class="tsd-signature-type" data-tsd-kind="Class">Entry</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L102">index.d.ts:102</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L102">index.d.ts:102</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/nodejs/classes/Entry.html b/docs/nodejs/classes/Entry.html
index 051443ea..a9ac2cae 100644
--- a/docs/nodejs/classes/Entry.html
+++ b/docs/nodejs/classes/Entry.html
@@ -20,7 +20,7 @@
 <ul class="tsd-hierarchy">
 <li><span class="target">Entry</span></li></ul></section><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L68">index.d.ts:68</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L68">index.d.ts:68</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">
@@ -53,7 +53,7 @@
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L70">index.d.ts:70</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L70">index.d.ts:70</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/nodejs/classes/Lister.html b/docs/nodejs/classes/Lister.html
index 4d54e1a4..c4cc2579 100644
--- a/docs/nodejs/classes/Lister.html
+++ b/docs/nodejs/classes/Lister.html
@@ -20,7 +20,7 @@
 <ul class="tsd-hierarchy">
 <li><span class="target">Lister</span></li></ul></section><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L90">index.d.ts:90</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L90">index.d.ts:90</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">
@@ -61,7 +61,7 @@ thing internally.</p>
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="Entry.html" class="tsd-signature-type" data-tsd-kind="Class">Entry</a><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L99">index.d.ts:99</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L99">index.d.ts:99</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/nodejs/classes/Metadata.html b/docs/nodejs/classes/Metadata.html
index 44f4326e..97158533 100644
--- a/docs/nodejs/classes/Metadata.html
+++ b/docs/nodejs/classes/Metadata.html
@@ -20,7 +20,7 @@
 <ul class="tsd-hierarchy">
 <li><span class="target">Metadata</span></li></ul></section><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L72">index.d.ts:72</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L72">index.d.ts:72</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">
@@ -63,7 +63,7 @@
 </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><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L78">index.d.ts:78</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L78">index.d.ts:78</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="contentLength" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>content<wbr/>Length</span><a href="#contentLength" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-accessor tsd-parent-kind-class">
@@ -73,7 +73,7 @@
 </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><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L80">index.d.ts:80</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L80">index.d.ts:80</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="contentMd5" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>content<wbr/>Md5</span><a href="#contentMd5" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-accessor tsd-parent-kind-class">
@@ -83,7 +83,7 @@
 </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><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L82">index.d.ts:82</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L82">index.d.ts:82</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="contentType" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>content<wbr/>Type</span><a href="#contentType" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-accessor tsd-parent-kind-class">
@@ -93,7 +93,7 @@
 </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><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L84">index.d.ts:84</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L84">index.d.ts:84</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="etag" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>etag</span><a href="#etag" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-accessor tsd-parent-kind-class">
@@ -103,7 +103,7 @@
 </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><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L86">index.d.ts:86</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L86">index.d.ts:86</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="lastModified" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>last<wbr/>Modified</span><a href="#lastModified" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-accessor tsd-parent-kind-class">
@@ -113,7 +113,7 @@
 </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><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L88">index.d.ts:88</a></li></ul></aside></li></ul></section></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L88">index.d.ts:88</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 tsd-kind-method tsd-parent-kind-class"><a id="isDirectory" class="tsd-anchor"></a>
@@ -125,7 +125,7 @@
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L74">index.d.ts:74</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L74">index.d.ts:74</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="isFile" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>is<wbr/>File</span><a href="#isFile" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -135,7 +135,7 @@
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L76">index.d.ts:76</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L76">index.d.ts:76</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/nodejs/classes/Operator.html b/docs/nodejs/classes/Operator.html
index 42f5cac4..44a442d0 100644
--- a/docs/nodejs/classes/Operator.html
+++ b/docs/nodejs/classes/Operator.html
@@ -20,7 +20,7 @@
 <ul class="tsd-hierarchy">
 <li><span class="target">Operator</span></li></ul></section><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L25">index.d.ts:25</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L25">index.d.ts:25</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">
@@ -63,7 +63,7 @@
 <h5><code class="tsd-tag ts-flagOptional">Optional</code> options: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="Operator.html" class="tsd-signature-type" data-tsd-kind="Class">Operator</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L26">index.d.ts:26</a></li></ul></aside></li></ul></section></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L26">index.d.ts:26</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 tsd-kind-method tsd-parent-kind-class"><a id="createDir" class="tsd-anchor"></a>
@@ -80,7 +80,7 @@
 <h5>path: <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">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L32">index.d.ts:32</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L32">index.d.ts:32</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="createDirSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>create<wbr/>Dir<wbr/>Sync</span><a href="#createDirSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -95,7 +95,7 @@
 <h5>path: <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><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L34">index.d.ts:34</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L34">index.d.ts:34</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="delete" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>delete</span><a href="#delete" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -110,7 +110,7 @@
 <h5>path: <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">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L48">index.d.ts:48</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L48">index.d.ts:48</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="deleteSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>delete<wbr/>Sync</span><a href="#deleteSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -125,7 +125,7 @@
 <h5>path: <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><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L50">index.d.ts:50</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L50">index.d.ts:50</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="list" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>list</span><a href="#list" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -142,7 +142,7 @@
 <h5>path: <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">&lt;</span><a href="Lister.html" class="tsd-signature-type" data-tsd-kind="Class">Lister</a><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L58">index.d.ts:58</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L58">index.d.ts:58</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="listSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>list<wbr/>Sync</span><a href="#listSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -159,7 +159,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="BlockingLister.html" class="tsd-signature-type" data-tsd-kind="Class">BlockingLister</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L66">index.d.ts:66</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L66">index.d.ts:66</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="read" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>read</span><a href="#read" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -174,7 +174,7 @@
 <h5>path: <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">&lt;</span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L40">index.d.ts:40</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L40">index.d.ts:40</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="readSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>read<wbr/>Sync</span><a href="#readSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -189,7 +189,7 @@
 <h5>path: <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><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L42">index.d.ts:42</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L42">index.d.ts:42</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="scan" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>scan</span><a href="#scan" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -204,7 +204,7 @@
 <h5>path: <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">&lt;</span><a href="Lister.html" class="tsd-signature-type" data-tsd-kind="Class">Lister</a><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L44">index.d.ts:44</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L44">index.d.ts:44</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="scanSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>scan<wbr/>Sync</span><a href="#scanSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -219,7 +219,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="BlockingLister.html" class="tsd-signature-type" data-tsd-kind="Class">BlockingLister</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L46">index.d.ts:46</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L46">index.d.ts:46</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="stat" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>stat</span><a href="#stat" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -234,7 +234,7 @@
 <h5>path: <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">&lt;</span><a href="Metadata.html" class="tsd-signature-type" data-tsd-kind="Class">Metadata</a><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L28">index.d.ts:28</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L28">index.d.ts:28</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="statSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>stat<wbr/>Sync</span><a href="#statSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -249,7 +249,7 @@
 <h5>path: <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" data-tsd-kind="Class">Metadata</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L30">index.d.ts:30</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L30">index.d.ts:30</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="write" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>write</span><a href="#write" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -266,7 +266,7 @@
 <h5>content: <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">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L36">index.d.ts:36</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L36">index.d.ts:36</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="writeSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>write<wbr/>Sync</span><a href="#writeSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -283,7 +283,7 @@
 <h5>content: <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><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/524b787/bindings/nodejs/index.d.ts#L38">index.d.ts:38</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/14cbb0f/bindings/nodejs/index.d.ts#L38">index.d.ts:38</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/overview/index.html b/docs/overview/index.html
index 3598a8ce..6d53fcb9 100644
--- a/docs/overview/index.html
+++ b/docs/overview/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">Overview | 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" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><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.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.b5734492.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.9cea6454.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.b5734492.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
+<script src="/assets/js/runtime~main.9cea6454.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/python/opendal.html b/docs/python/opendal.html
index fec3f675..6b047bd4 100644
--- a/docs/python/opendal.html
+++ b/docs/python/opendal.html
@@ -159,16 +159,16 @@
                                 <a class="variable" href="#Metadata.mode">mode</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Metadata.content_md5">content_md5</a>
+                                <a class="variable" href="#Metadata.content_type">content_type</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Metadata.etag">etag</a>
+                                <a class="variable" href="#Metadata.content_md5">content_md5</a>
                         </li>
                         <li>
                                 <a class="variable" href="#Metadata.content_length">content_length</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Metadata.content_type">content_type</a>
+                                <a class="variable" href="#Metadata.etag">etag</a>
                         </li>
                 </ul>
 
@@ -865,28 +865,28 @@ 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>
 
 
                             </div>
-                            <div id="Metadata.etag" class="classattr">
+                            <div id="Metadata.content_md5" class="classattr">
                                 <div class="attr variable">
-            <span class="name">etag</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.etag"></a>
+    <a class="headerlink" href="#Metadata.content_md5"></a>
     
-            <div class="docstring"><p>ETag of this entry.</p>
+            <div class="docstring"><p>Content MD5 of this entry.</p>
 </div>
 
 
@@ -904,15 +904,15 @@ 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.etag" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_type</span><span class="annotation">: Optional[str]</span>
+            <span class="name">etag</span><span class="annotation">: Optional[str]</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.content_type"></a>
+    <a class="headerlink" href="#Metadata.etag"></a>
     
-            <div class="docstring"><p>Content Type of this entry.</p>
+            <div class="docstring"><p>ETag of this entry.</p>
 </div>
 
 
diff --git a/docs/python/search.js b/docs/python/search.js
index bf19307d..c04d1c91 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>OpenDAL 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=\"w\"> </span> [...]
+    /** 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>OpenDAL 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=\"w\"> </span> [...]
 
     // 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/rust/help.html b/docs/rust/help.html
index 30a0c5cc..4622db46 100644
--- a/docs/rust/help.html
+++ b/docs/rust/help.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="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2 [...]
\ 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="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2 [...]
\ No newline at end of file
diff --git a/docs/rust/implementors/core/clone/trait.Clone.js b/docs/rust/implementors/core/clone/trait.Clone.js
index 1965b470..31293bde 100644
--- a/docs/rust/implementors/core/clone/trait.Clone.js
+++ b/docs/rust/implementors/core/clone/trait.Clone.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"opendal/struct.Entry.html\" title=\"struct opendal::Entry\" [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"opendal/struct.Entry.html\" title=\"struct opendal::Entry\" [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/cmp/trait.Eq.js b/docs/rust/implementors/core/cmp/trait.Eq.js
index d915c888..fe04f1e8 100644
--- a/docs/rust/implementors/core/cmp/trait.Eq.js
+++ b/docs/rust/implementors/core/cmp/trait.Eq.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"opendal/struct.Metadata.html\" title=\"struct opendal::Metadata\">Metadata</a>"],["im [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"opendal/struct.Metadata.html\" title=\"struct opendal::Metadata\">Metadata</a>"],["im [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/cmp/trait.PartialEq.js b/docs/rust/implementors/core/cmp/trait.PartialEq.js
index d3af87e3..b791954f 100644
--- a/docs/rust/implementors/core/cmp/trait.PartialEq.js
+++ b/docs/rust/implementors/core/cmp/trait.PartialEq.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>&lt;<a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>&gt; for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html\" title=\"trait c [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>&lt;<a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>&gt; for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html\" title=\"trait c [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/convert/trait.From.js b/docs/rust/implementors/core/convert/trait.From.js
index ccc5f982..74441b71 100644
--- a/docs/rust/implementors/core/convert/trait.From.js
+++ b/docs/rust/implementors/core/convert/trait.From.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a>&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt; for FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html\" title=\"trait core:: [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a>&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt; for FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html\" title=\"trait core:: [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/default/trait.Default.js b/docs/rust/implementors/core/default/trait.Default.js
index cf233067..e92aea10 100644
--- a/docs/rust/implementors/core/default/trait.Default.js
+++ b/docs/rust/implementors/core/default/trait.Default.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"opendal/struct.OperatorInfo.html\" titl [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"opendal/struct.OperatorInfo.html\" titl [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/error/trait.Error.js b/docs/rust/implementors/core/error/trait.Error.js
index f5e4c3fb..8727ae62 100644
--- a/docs/rust/implementors/core/error/trait.Error.js
+++ b/docs/rust/implementors/core/error/trait.Error.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"struct\" href=\"opendal/struct.Error.html\" title=\"struct opendal::Error\">Error</a>"]]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"struct\" href=\"opendal/struct.Error.html\" title=\"struct opendal::Error\">Error</a>"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/fmt/trait.Debug.js b/docs/rust/implementors/core/fmt/trait.Debug.js
index d794739a..f60238cb 100644
--- a/docs/rust/implementors/core/fmt/trait.Debug.js
+++ b/docs/rust/implementors/core/fmt/trait.Debug.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"opendal/struct.Entry.html\" title=\"struct opendal::Entry\">Entry</ [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"opendal/struct.Entry.html\" title=\"struct opendal::Entry\">Entry</ [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/fmt/trait.Display.js b/docs/rust/implementors/core/fmt/trait.Display.js
index e6913968..9a7374e5 100644
--- a/docs/rust/implementors/core/fmt/trait.Display.js
+++ b/docs/rust/implementors/core/fmt/trait.Display.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"opendal/enum.ErrorKind.html\" title=\"enum opendal::Error [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"opendal/enum.ErrorKind.html\" title=\"enum opendal::Error [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/hash/trait.Hash.js b/docs/rust/implementors/core/hash/trait.Hash.js
index a68d3406..ea71b11e 100644
--- a/docs/rust/implementors/core/hash/trait.Hash.js
+++ b/docs/rust/implementors/core/hash/trait.Hash.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"opendal/enum.Scheme.html\" title=\"enum opendal::Scheme\">Scheme</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"opendal/raw/oio/enum.ReadOperation.html\" title=\"enum opendal::raw::oio::ReadOp [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"opendal/enum.Scheme.html\" title=\"enum opendal::Scheme\">Scheme</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"opendal/raw/oio/enum.ReadOperation.html\" title=\"enum opendal::raw::oio::ReadOp [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/iter/traits/iterator/trait.Iterator.js b/docs/rust/implementors/core/iter/traits/iterator/trait.Iterator.js
index 6f90a812..3c8ae1ce 100644
--- a/docs/rust/implementors/core/iter/traits/iterator/trait.Iterator.js
+++ b/docs/rust/implementors/core/iter/traits/iterator/trait.Iterator.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html\" title=\"trait core::iter::traits::iterator::Iterator\">Iterator</a> for <a class=\"struct\" href=\"opendal/struct.BlockingReader.html\" title=\"struct opendal::BlockingReader\">BlockingReader</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html\" title=\"trait core::iter::traits::iterator::Iterator\"> [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html\" title=\"trait core::iter::traits::iterator::Iterator\">Iterator</a> for <a class=\"struct\" href=\"opendal/struct.BlockingReader.html\" title=\"struct opendal::BlockingReader\">BlockingReader</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html\" title=\"trait core::iter::traits::iterator::Iterator\"> [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/marker/trait.Copy.js b/docs/rust/implementors/core/marker/trait.Copy.js
index 3f2b9cd7..c9f3e507 100644
--- a/docs/rust/implementors/core/marker/trait.Copy.js
+++ b/docs/rust/implementors/core/marker/trait.Copy.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Met [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Met [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/marker/trait.Send.js b/docs/rust/implementors/core/marker/trait.Send.js
index 2bf6d1d7..aea92498 100644
--- a/docs/rust/implementors/core/marker/trait.Send.js
+++ b/docs/rust/implementors/core/marker/trait.Send.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/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/1.68.0/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"opendal/struct.Entry.ht [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/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/1.68.1/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"opendal/struct.Entry.ht [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/marker/trait.StructuralEq.js b/docs/rust/implementors/core/marker/trait.StructuralEq.js
index c353acdc..38a23e91 100644
--- a/docs/rust/implementors/core/marker/trait.StructuralEq.js
+++ b/docs/rust/implementors/core/marker/trait.StructuralEq.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"opendal/struc [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"opendal/struc [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/marker/trait.StructuralPartialEq.js b/docs/rust/implementors/core/marker/trait.StructuralPartialEq.js
index 0175f3c5..1396b191 100644
--- a/docs/rust/implementors/core/marker/trait.StructuralPartialEq.js
+++ b/docs/rust/implementors/core/marker/trait.StructuralPartialEq.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> fo [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> fo [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/marker/trait.Sync.js b/docs/rust/implementors/core/marker/trait.Sync.js
index acd2234c..657d2759 100644
--- a/docs/rust/implementors/core/marker/trait.Sync.js
+++ b/docs/rust/implementors/core/marker/trait.Sync.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/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/1.68.0/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"opendal/struct.Entry.ht [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/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/1.68.1/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"opendal/struct.Entry.ht [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/marker/trait.Unpin.js b/docs/rust/implementors/core/marker/trait.Unpin.js
index f1551bf9..3fbcffd9 100644
--- a/docs/rust/implementors/core/marker/trait.Unpin.js
+++ b/docs/rust/implementors/core/marker/trait.Unpin.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</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/1.68.0/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"opendal/struct.En [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</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/1.68.1/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"opendal/struct.En [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/ops/arith/trait.Rem.js b/docs/rust/implementors/core/ops/arith/trait.Rem.js
index 312e9086..1bb15abc 100644
--- a/docs/rust/implementors/core/ops/arith/trait.Rem.js
+++ b/docs/rust/implementors/core/ops/arith/trait.Rem.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl&lt;R:&nbsp;<a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/convert/trait.Into.html\" title=\"trait core::convert::Into\">Into</a>&lt;FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;&gt;&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/ops/arith/trait.Rem.html\" title=\"trait core::ops::arith::Rem\">Rem</a>&lt;R&gt; for <a class=\"enum\" href=\"opendal/enum.Metakey.html\" ti [...]
+"opendal":[["impl&lt;R:&nbsp;<a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/convert/trait.Into.html\" title=\"trait core::convert::Into\">Into</a>&lt;FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;&gt;&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/ops/arith/trait.Rem.html\" title=\"trait core::ops::arith::Rem\">Rem</a>&lt;R&gt; for <a class=\"enum\" href=\"opendal/enum.Metakey.html\" ti [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/ops/arith/trait.Sub.js b/docs/rust/implementors/core/ops/arith/trait.Sub.js
index 7c30f270..2b2c5f50 100644
--- a/docs/rust/implementors/core/ops/arith/trait.Sub.js
+++ b/docs/rust/implementors/core/ops/arith/trait.Sub.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl&lt;R:&nbsp;<a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/convert/trait.Into.html\" title=\"trait core::convert::Into\">Into</a>&lt;FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;&gt;&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/ops/arith/trait.Sub.html\" title=\"trait core::ops::arith::Sub\">Sub</a>&lt;R&gt; for <a class=\"enum\" href=\"opendal/enum.Metakey.html\" ti [...]
+"opendal":[["impl&lt;R:&nbsp;<a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/convert/trait.Into.html\" title=\"trait core::convert::Into\">Into</a>&lt;FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;&gt;&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/ops/arith/trait.Sub.html\" title=\"trait core::ops::arith::Sub\">Sub</a>&lt;R&gt; for <a class=\"enum\" href=\"opendal/enum.Metakey.html\" ti [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/ops/bit/trait.BitAnd.js b/docs/rust/implementors/core/ops/bit/trait.BitAnd.js
index f2e41f35..1ade8240 100644
--- a/docs/rust/implementors/core/ops/bit/trait.BitAnd.js
+++ b/docs/rust/implementors/core/ops/bit/trait.BitAnd.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl&lt;R:&nbsp;<a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/convert/trait.Into.html\" title=\"trait core::convert::Into\">Into</a>&lt;FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;&gt;&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/ops/bit/trait.BitAnd.html\" title=\"trait core::ops::bit::BitAnd\">BitAnd</a>&lt;R&gt; for <a class=\"enum\" href=\"opendal/enum.Metakey.html [...]
+"opendal":[["impl&lt;R:&nbsp;<a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/convert/trait.Into.html\" title=\"trait core::convert::Into\">Into</a>&lt;FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;&gt;&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/ops/bit/trait.BitAnd.html\" title=\"trait core::ops::bit::BitAnd\">BitAnd</a>&lt;R&gt; for <a class=\"enum\" href=\"opendal/enum.Metakey.html [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/ops/bit/trait.BitOr.js b/docs/rust/implementors/core/ops/bit/trait.BitOr.js
index e57171af..e116da35 100644
--- a/docs/rust/implementors/core/ops/bit/trait.BitOr.js
+++ b/docs/rust/implementors/core/ops/bit/trait.BitOr.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl&lt;R:&nbsp;<a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/convert/trait.Into.html\" title=\"trait core::convert::Into\">Into</a>&lt;FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;&gt;&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/ops/bit/trait.BitOr.html\" title=\"trait core::ops::bit::BitOr\">BitOr</a>&lt;R&gt; for <a class=\"enum\" href=\"opendal/enum.Metakey.html\"  [...]
+"opendal":[["impl&lt;R:&nbsp;<a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/convert/trait.Into.html\" title=\"trait core::convert::Into\">Into</a>&lt;FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;&gt;&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/ops/bit/trait.BitOr.html\" title=\"trait core::ops::bit::BitOr\">BitOr</a>&lt;R&gt; for <a class=\"enum\" href=\"opendal/enum.Metakey.html\"  [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/ops/bit/trait.BitXor.js b/docs/rust/implementors/core/ops/bit/trait.BitXor.js
index 16485d4c..17fa913e 100644
--- a/docs/rust/implementors/core/ops/bit/trait.BitXor.js
+++ b/docs/rust/implementors/core/ops/bit/trait.BitXor.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl&lt;R:&nbsp;<a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/convert/trait.Into.html\" title=\"trait core::convert::Into\">Into</a>&lt;FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;&gt;&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/ops/bit/trait.BitXor.html\" title=\"trait core::ops::bit::BitXor\">BitXor</a>&lt;R&gt; for <a class=\"enum\" href=\"opendal/enum.Metakey.html [...]
+"opendal":[["impl&lt;R:&nbsp;<a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/convert/trait.Into.html\" title=\"trait core::convert::Into\">Into</a>&lt;FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;&gt;&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/ops/bit/trait.BitXor.html\" title=\"trait core::ops::bit::BitXor\">BitXor</a>&lt;R&gt; for <a class=\"enum\" href=\"opendal/enum.Metakey.html [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/ops/bit/trait.Not.js b/docs/rust/implementors/core/ops/bit/trait.Not.js
index c0faa1be..0741c1a9 100644
--- a/docs/rust/implementors/core/ops/bit/trait.Not.js
+++ b/docs/rust/implementors/core/ops/bit/trait.Not.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/ops/bit/trait.Not.html\" title=\"trait core::ops::bit::Not\">Not</a> for <a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/ops/bit/trait.Not.html\" title=\"trait core::ops::bit::Not\">Not</a> for <a class=\"enum\" href=\"opendal/raw/enum.AccessorCapability.html\" title=\"enum opendal::raw: [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/ops/bit/trait.Not.html\" title=\"trait core::ops::bit::Not\">Not</a> for <a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/ops/bit/trait.Not.html\" title=\"trait core::ops::bit::Not\">Not</a> for <a class=\"enum\" href=\"opendal/raw/enum.AccessorCapability.html\" title=\"enum opendal::raw: [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/docs/rust/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
index 438cd8c1..f7ee3c8d 100644
--- a/docs/rust/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
+++ b/docs/rust/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</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/1.68.0/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::u [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</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/1.68.1/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::u [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/docs/rust/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
index ebfd1dc9..2208b413 100644
--- a/docs/rust/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
+++ b/docs/rust/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</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/1.68.0/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe:: [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</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/1.68.1/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe:: [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/str/traits/trait.FromStr.js b/docs/rust/implementors/core/str/traits/trait.FromStr.js
index e65b7083..11ceec01 100644
--- a/docs/rust/implementors/core/str/traits/trait.FromStr.js
+++ b/docs/rust/implementors/core/str/traits/trait.FromStr.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"enum\" href=\"opendal/enum.Scheme.html\" title=\"enum opendal::Scheme\">Scheme</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"struct\" href=\"opendal/raw/struct.BytesRange.html [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"enum\" href=\"opendal/enum.Scheme.html\" title=\"enum opendal::Scheme\">Scheme</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"struct\" href=\"opendal/raw/struct.BytesRange.html [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/std/io/trait.Read.js b/docs/rust/implementors/std/io/trait.Read.js
index 6128c154..b3aa43ba 100644
--- a/docs/rust/implementors/std/io/trait.Read.js
+++ b/docs/rust/implementors/std/io/trait.Read.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/std/io/trait.Read.html\" title=\"trait std::io::Read\">Read</a> for <a class=\"struct\" href=\"opendal/struct.BlockingReader.html\" title=\"struct opendal::BlockingReader\">BlockingReader</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/std/io/trait.Read.html\" title=\"trait std::io::Read\">Read</a> for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.BlockingRead.html\" title=\"trait o [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/std/io/trait.Read.html\" title=\"trait std::io::Read\">Read</a> for <a class=\"struct\" href=\"opendal/struct.BlockingReader.html\" title=\"struct opendal::BlockingReader\">BlockingReader</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/std/io/trait.Read.html\" title=\"trait std::io::Read\">Read</a> for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.BlockingRead.html\" title=\"trait o [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/std/io/trait.Seek.js b/docs/rust/implementors/std/io/trait.Seek.js
index 6b9ae9f0..eb747eae 100644
--- a/docs/rust/implementors/std/io/trait.Seek.js
+++ b/docs/rust/implementors/std/io/trait.Seek.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/std/io/trait.Seek.html\" title=\"trait std::io::Seek\">Seek</a> for <a class=\"struct\" href=\"opendal/struct.BlockingReader.html\" title=\"struct opendal::BlockingReader\">BlockingReader</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/std/io/trait.Seek.html\" title=\"trait std::io::Seek\">Seek</a> for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.BlockingRead.html\" title=\"trait o [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/std/io/trait.Seek.html\" title=\"trait std::io::Seek\">Seek</a> for <a class=\"struct\" href=\"opendal/struct.BlockingReader.html\" title=\"struct opendal::BlockingReader\">BlockingReader</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/std/io/trait.Seek.html\" title=\"trait std::io::Seek\">Seek</a> for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.BlockingRead.html\" title=\"trait o [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/std/io/trait.Write.js b/docs/rust/implementors/std/io/trait.Write.js
index 4e5f8744..abb25e3b 100644
--- a/docs/rust/implementors/std/io/trait.Write.js
+++ b/docs/rust/implementors/std/io/trait.Write.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/std/io/trait.Write.html\" title=\"trait std::io::Write\">Write</a> for <a class=\"struct\" href=\"opendal/struct.BlockingWriter.html\" title=\"struct opendal::BlockingWriter\">BlockingWriter</a>"]]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.1/std/io/trait.Write.html\" title=\"trait std::io::Write\">Write</a> for <a class=\"struct\" href=\"opendal/struct.BlockingWriter.html\" title=\"struct opendal::BlockingWriter\">BlockingWriter</a>"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/opendal/all.html b/docs/rust/opendal/all.html
index e1f2b473..2bdc1133 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"><meta name="keywords" content="rust, rustlang, rust-lang"><title>List of all items in this crate</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload"  [...]
\ 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"><meta name="keywords" content="rust, rustlang, rust-lang"><title>List of all items in this crate</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload"  [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/changelog/index.html b/docs/rust/opendal/docs/changelog/index.html
index 29ee807a..cecd578f 100644
--- a/docs/rust/opendal/docs/changelog/index.html
+++ b/docs/rust/opendal/docs/changelog/index.html
@@ -1459,4 +1459,4 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
 </ul>
 <h3 id="v001---2022-02-14"><a href="#v001---2022-02-14">v0.0.1 - 2022-02-14</a></h3><h4 id="added-78"><a href="#added-78">Added</a></h4>
 <p>Hello, OpenDAL!</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/comparisons/index.html b/docs/rust/opendal/docs/comparisons/index.html
index c3cd1c4c..8cfd2be1 100644
--- a/docs/rust/opendal/docs/comparisons/index.html
+++ b/docs/rust/opendal/docs/comparisons/index.html
@@ -8,4 +8,4 @@
 <ul>
 <li><a href="vs_object_store/index.html" title="vs_object_store">vs <code>object_store</code></a></li>
 </ul>
-</div></details><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="vs_object_store/index.html" title="opendal::docs::comparisons::vs_object_store mod">vs_object_store</a></div><div class="item-right docblock-short">OpenDAL vs object_store</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../.. [...]
\ No newline at end of file
+</div></details><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="vs_object_store/index.html" title="opendal::docs::comparisons::vs_object_store mod">vs_object_store</a></div><div class="item-right docblock-short">OpenDAL vs object_store</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../.. [...]
\ 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 2c76499e..0ede21e3 100644
--- a/docs/rust/opendal/docs/comparisons/vs_object_store/index.html
+++ b/docs/rust/opendal/docs/comparisons/vs_object_store/index.html
@@ -135,4 +135,4 @@ let r = store.reader(&quot;data.parquet&quot;).await?;
 let store = Arc::new(builder.build()?);
 let path: Path = &quot;data.parquet&quot;.try_into().unwrap();
 let stream = store.get(&amp;path).await()?.into_stream();
-</code></pre></div></div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</code></pre></div></div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/concepts/index.html b/docs/rust/opendal/docs/concepts/index.html
index d38e8044..cf0f3270 100644
--- a/docs/rust/opendal/docs/concepts/index.html
+++ b/docs/rust/opendal/docs/concepts/index.html
@@ -70,4 +70,4 @@ builder.root(<span class="string">&quot;/path/to/file&quot;</span>);
 
 <span class="kw">let </span>op = Operator::new(builder)<span class="question-mark">?</span>.finish();
 <span class="kw">let </span>bs: Vec&lt;u8&gt; = op.read(<span class="string">&quot;abc&quot;</span>).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/features/index.html b/docs/rust/opendal/docs/features/index.html
index f990ee1e..6d605145 100644
--- a/docs/rust/opendal/docs/features/index.html
+++ b/docs/rust/opendal/docs/features/index.html
@@ -25,4 +25,4 @@
 <li><code>native-tls</code>: Enable TLS functionality provided by <code>native-tls</code></li>
 <li><code>native-tls-vendored</code>: Enable the <code>vendored</code> feature of <code>native-tls</code></li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/index.html b/docs/rust/opendal/docs/index.html
index 33466013..8710c7bd 100644
--- a/docs/rust/opendal/docs/index.html
+++ b/docs/rust/opendal/docs/index.html
@@ -1,3 +1,3 @@
 <!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="This module holds documentation for OpenDAL."><meta name="keywords" content="rust, rustlang, rust-lang, docs"><title>opendal::docs - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
 <p>It’s highly recommended that you start by reading <a href="concepts/index.html" title="concepts"><code>concepts</code></a> first.</p>
-</div></details><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="changelog/index.html" title="opendal::docs::changelog mod">changelog</a></div><div class="item-right docblock-short">Changes log for all OpenDAL released versions.</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="comparisons/index.html" title="opendal:: [...]
\ No newline at end of file
+</div></details><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="changelog/index.html" title="opendal::docs::changelog mod">changelog</a></div><div class="item-right docblock-short">Changes log for all OpenDAL released versions.</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="comparisons/index.html" title="opendal:: [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/internals/accessor/index.html b/docs/rust/opendal/docs/internals/accessor/index.html
index 0399364e..acc7cb78 100644
--- a/docs/rust/opendal/docs/internals/accessor/index.html
+++ b/docs/rust/opendal/docs/internals/accessor/index.html
@@ -42,10 +42,10 @@ underlying storage services via APIs provided by <a href="../../../raw/trait.Acc
 <div class="example-wrap ignore"><div class='tooltip'>ⓘ</div><pre class="rust rust-example-rendered"><code><span class="kw">pub trait </span>Accessor: Send + Sync + Debug + Unpin + <span class="lifetime">&#39;static </span>{}</code></pre></div>
 <p>There are many trait boundings here. For now, <a href="../../../raw/trait.Accessor.html"><code>Accessor</code></a> requires the following bound:</p>
 <ul>
-<li><a href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Send.html" title="Send"><code>Send</code></a>: Allow user to send between threads without extra wrapper.</li>
-<li><a href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sync.html" title="Sync"><code>Sync</code></a>: Allow user to sync between threads without extra lock.</li>
-<li><a href="https://doc.rust-lang.org/1.68.0/core/fmt/trait.Debug.html" title="std::fmt::Debug"><code>Debug</code></a>: Allow users to print underlying debug information of accessor.</li>
-<li><a href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Unpin.html" title="Unpin"><code>Unpin</code></a>: Make sure <code>Accessor</code> can be safely moved after being pinned, so users don’t need to <code>Pin&lt;Box&lt;A&gt;&gt;</code>.</li>
+<li><a href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Send.html" title="Send"><code>Send</code></a>: Allow user to send between threads without extra wrapper.</li>
+<li><a href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sync.html" title="Sync"><code>Sync</code></a>: Allow user to sync between threads without extra lock.</li>
+<li><a href="https://doc.rust-lang.org/1.68.1/core/fmt/trait.Debug.html" title="std::fmt::Debug"><code>Debug</code></a>: Allow users to print underlying debug information of accessor.</li>
+<li><a href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Unpin.html" title="Unpin"><code>Unpin</code></a>: Make sure <code>Accessor</code> can be safely moved after being pinned, so users don’t need to <code>Pin&lt;Box&lt;A&gt;&gt;</code>.</li>
 <li><code>'static</code>: Make sure <code>Accessor</code> is not a short-time reference, allow users to use <code>Accessor</code> in clouse, futures without playing with lifetime.</li>
 </ul>
 <p>Implementer of <code>Accessor</code> should take care the following things:</p>
@@ -244,4 +244,4 @@ 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/incubator-opendal/issues/5">here</a>. Welcome to pick one to implement. I promise you won’t
 have to <code>gagaga!()</code> this time.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/internals/index.html b/docs/rust/opendal/docs/internals/index.html
index 563da6d7..a7fbc8cf 100644
--- a/docs/rust/opendal/docs/internals/index.html
+++ b/docs/rust/opendal/docs/internals/index.html
@@ -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="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="accessor/index.html" title="opendal::docs::internals::accessor mod">accessor</a></div><div class="item-right docblock-short">The internal implement details of <a href="../../raw/trait.Accessor.html"><code>Accessor</code></a>.</div></div><div class="item-row"><div class="ite [...]
\ No newline at end of file
+</code></pre></div></div></details><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="accessor/index.html" title="opendal::docs::internals::accessor mod">accessor</a></div><div class="item-right docblock-short">The internal implement details of <a href="../../raw/trait.Accessor.html"><code>Accessor</code></a>.</div></div><div class="item-row"><div class="ite [...]
\ 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 9bedaff8..d630d0e0 100644
--- a/docs/rust/opendal/docs/internals/layer/index.html
+++ b/docs/rust/opendal/docs/internals/layer/index.html
@@ -15,4 +15,4 @@
 <a href="../../../raw/trait.LayeredAccessor.html"><code>LayeredAccessor</code></a> which will forward all not implemented methods to
 <code>inner</code>. It’s highly recommend to implement <a href="../../../raw/trait.LayeredAccessor.html"><code>LayeredAccessor</code></a> trait
 instead.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/index.html b/docs/rust/opendal/docs/rfcs/index.html
index 440a5293..0ed0eb9d 100644
--- a/docs/rust/opendal/docs/rfcs/index.html
+++ b/docs/rust/opendal/docs/rfcs/index.html
@@ -151,4 +151,4 @@
 <li>Start Date: 2023-03-23</li>
 <li>RFC PR: <a href="https://github.com/apache/incubator-opendal/pull/1735">apache/incubator-opendal#1735</a></li>
 <li>Tracking Issue: <a href="https://github.com/apache/incubator-opendal/issues/1738">apache/incubator-opendal#1738</a></li>
-</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0000_example/index.html b/docs/rust/opendal/docs/rfcs/rfc_0000_example/index.html
index 826ac6f8..95e9ab53 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0000_example/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0000_example/index.html
@@ -57,4 +57,4 @@ you may state that you cannot think of anything.</p>
 is not a reason to accept the current or a future RFC; such notes should be
 in the section on motivation or rationale in this or subsequent RFCs.
 The section merely provides additional information.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0041_object_native_api/index.html b/docs/rust/opendal/docs/rfcs/rfc_0041_object_native_api/index.html
index 1da2a912..07062b02 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0041_object_native_api/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0041_object_native_api/index.html
@@ -148,4 +148,4 @@ Benchmarking s3/bench_buf_read/6971c464-15f7-48d6-b69c-c8abc7774802:
 <li>Implement <code>AsyncWrite</code> for <code>Writer</code> so that we can use <code>Writer</code> easier.</li>
 <li>Implement <code>Operator::objects()</code> to return an object iterator.</li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0044_error_handle/index.html b/docs/rust/opendal/docs/rfcs/rfc_0044_error_handle/index.html
index 27c1e8f9..6744445c 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0044_error_handle/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0044_error_handle/index.html
@@ -140,4 +140,4 @@
 <ul>
 <li><code>Backtrace</code> support.</li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0057_auto_region/index.html b/docs/rust/opendal/docs/rfcs/rfc_0057_auto_region/index.html
index 9e6a4cab..17c90f6f 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0057_auto_region/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0057_auto_region/index.html
@@ -122,4 +122,4 @@ X-Qs-Request-Id: 05b83b615c801a3d
 <p>None</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0069_object_stream/index.html b/docs/rust/opendal/docs/rfcs/rfc_0069_object_stream/index.html
index 2b7b0477..74c10f3f 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0069_object_stream/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0069_object_stream/index.html
@@ -100,4 +100,4 @@
 <ul>
 <li>More precise field-level metadata cache so that user can send <code>stat</code> only when needed.</li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0090_limited_reader/index.html b/docs/rust/opendal/docs/rfcs/rfc_0090_limited_reader/index.html
index 474a7871..bce69820 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0090_limited_reader/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0090_limited_reader/index.html
@@ -116,4 +116,4 @@ s3/read_half/6dd40f8d-7455-451e-b510-3b7ac23e0468
 <ul>
 <li>Refactor the parquet reading logic to make the most use of <code>range_reader</code>.</li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0112_path_normalization/index.html b/docs/rust/opendal/docs/rfcs/rfc_0112_path_normalization/index.html
index 4cdf45fc..d8a1cc6a 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0112_path_normalization/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0112_path_normalization/index.html
@@ -48,4 +48,4 @@
 <p>None</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0191_async_streaming_io/index.html b/docs/rust/opendal/docs/rfcs/rfc_0191_async_streaming_io/index.html
index 58867c9d..368538f3 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0191_async_streaming_io/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0191_async_streaming_io/index.html
@@ -250,4 +250,4 @@ write_once/<span class="number">16.0 </span>MiB     time:   [<span class="number
 <li>Implement <code>Object::read_into(w: BoxedAsyncWriter)</code></li>
 <li>Implement <code>Object::write_from(r: BoxedAsyncReader)</code></li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0203_remove_credential/index.html b/docs/rust/opendal/docs/rfcs/rfc_0203_remove_credential/index.html
index 2b72b478..52b9163b 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0203_remove_credential/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0203_remove_credential/index.html
@@ -66,4 +66,4 @@
 <p>None</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0221_create_dir/index.html b/docs/rust/opendal/docs/rfcs/rfc_0221_create_dir/index.html
index 90e63dd0..5a106dc9 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0221_create_dir/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0221_create_dir/index.html
@@ -60,4 +60,4 @@
 <p>Until they get stabilized.</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0247_retryable_error/index.html b/docs/rust/opendal/docs/rfcs/rfc_0247_retryable_error/index.html
index 57e240a9..596172ef 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0247_retryable_error/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0247_retryable_error/index.html
@@ -53,4 +53,4 @@
 </ul>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0293_object_id/index.html b/docs/rust/opendal/docs/rfcs/rfc_0293_object_id/index.html
index bf61ba3f..60f4c7f8 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0293_object_id/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0293_object_id/index.html
@@ -39,4 +39,4 @@
 <p>None</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0337_dir_entry/index.html b/docs/rust/opendal/docs/rfcs/rfc_0337_dir_entry/index.html
index 631b4326..098ae44c 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0337_dir_entry/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0337_dir_entry/index.html
@@ -136,4 +136,4 @@
 <p>None.</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0409_accessor_capabilities/index.html b/docs/rust/opendal/docs/rfcs/rfc_0409_accessor_capabilities/index.html
index 2e0739f0..952e0194 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0409_accessor_capabilities/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0409_accessor_capabilities/index.html
@@ -42,4 +42,4 @@
 <p>None.</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0413_presign/index.html b/docs/rust/opendal/docs/rfcs/rfc_0413_presign/index.html
index f294c22b..e6522a89 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0413_presign/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0413_presign/index.html
@@ -102,4 +102,4 @@ https://DOC-EXAMPLE-BUCKET.s3.us-west-2.amazonaws.com/key?X-Amz-Algorithm=AWS4-H
 <ul>
 <li>Add <code>stat</code>/<code>list</code>/<code>delete</code> support</li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0423_command_line_interface/index.html b/docs/rust/opendal/docs/rfcs/rfc_0423_command_line_interface/index.html
index 1fdc0bda..6253768a 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0423_command_line_interface/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0423_command_line_interface/index.html
@@ -212,4 +212,4 @@ gsutil rm [-f] [-r] -I
 <p>None.</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0429_init_from_iter/index.html b/docs/rust/opendal/docs/rfcs/rfc_0429_init_from_iter/index.html
index de20e56c..ee6e96c9 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0429_init_from_iter/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0429_init_from_iter/index.html
@@ -70,4 +70,4 @@ builder.server_side_encryption_aws_kms_key_id(
 
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>op = Operator::open(<span class="string">&quot;s3://bucket?region=test&quot;</span>)<span class="question-mark">?</span></code></pre></div>
 <p>But there are no valid use cases. Let’s implement this in the future if needed.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0438_multipart/index.html b/docs/rust/opendal/docs/rfcs/rfc_0438_multipart/index.html
index dab2d984..5019177f 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0438_multipart/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0438_multipart/index.html
@@ -105,4 +105,4 @@
 <p>We can support listing multipart uploads to list ongoing multipart uploads so we can resume an upload or abort them.</p>
 <h3 id="support-list-part"><a href="#support-list-part">Support list part</a></h3>
 <p>We can support listing parts to list already uploaded parts for an upload.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0443_gateway/index.html b/docs/rust/opendal/docs/rfcs/rfc_0443_gateway/index.html
index a30b4c98..10ffae94 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0443_gateway/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0443_gateway/index.html
@@ -48,4 +48,4 @@ brew install oay
 <p>None</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0501_new_builder/index.html b/docs/rust/opendal/docs/rfcs/rfc_0501_new_builder/index.html
index 15ec5f33..9b1ab315 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0501_new_builder/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0501_new_builder/index.html
@@ -74,4 +74,4 @@
 <p>None.</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0554_write_refactor/index.html b/docs/rust/opendal/docs/rfcs/rfc_0554_write_refactor/index.html
index 2389f992..798ad1f6 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0554_write_refactor/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0554_write_refactor/index.html
@@ -61,4 +61,4 @@
 <p>None.</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0561_list_metadata_reuse/index.html b/docs/rust/opendal/docs/rfcs/rfc_0561_list_metadata_reuse/index.html
index 69cf86d1..6c4dd380 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0561_list_metadata_reuse/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0561_list_metadata_reuse/index.html
@@ -161,4 +161,4 @@
 // so this function could return instantly.
 </span><span class="kw">let </span>md5 = file.content_md5().<span class="kw">await</span><span class="question-mark">?</span>;
 <span class="macro">println!</span>(<span class="string">&quot;size of file {} is {}B, md5 outcome of file is {}&quot;</span>, path, size, md5);</code></pre></div>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0599_blocking_api/index.html b/docs/rust/opendal/docs/rfcs/rfc_0599_blocking_api/index.html
index 15c96c16..ef75d42b 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0599_blocking_api/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0599_blocking_api/index.html
@@ -119,4 +119,4 @@
 <p>None</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0623_redis_service/index.html b/docs/rust/opendal/docs/rfcs/rfc_0623_redis_service/index.html
index ade04683..86a89d79 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0623_redis_service/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0623_redis_service/index.html
@@ -227,4 +227,4 @@ SET v0:m:/home/monika/poem.txt &lt;bincode encoded metadata&gt;
 <li>Making a customized redis module to calculate metadata on redis side</li>
 <li>Wait for stable of <code>bincode</code> 2.0, and bump to it.</li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0627_split_capabilities/index.html b/docs/rust/opendal/docs/rfcs/rfc_0627_split_capabilities/index.html
index f0b87929..eb2daf0d 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0627_split_capabilities/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0627_split_capabilities/index.html
@@ -67,4 +67,4 @@
 </ul>
 <h3 id="add-new-capabilities-with-layers"><a href="#add-new-capabilities-with-layers">Add new capabilities with Layers</a></h3>
 <p>We can implement a layer that can add <code>list</code> capability for underlying storage services. For example, <code>IndexLayer</code> for HTTP services.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0661_path_in_accessor/index.html b/docs/rust/opendal/docs/rfcs/rfc_0661_path_in_accessor/index.html
index b1a6cc44..50c4bfa2 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0661_path_in_accessor/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0661_path_in_accessor/index.html
@@ -93,4 +93,4 @@
 <p>None.</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>We can add more fields in <code>OpXxx</code>.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0793_generic_kv_services/index.html b/docs/rust/opendal/docs/rfcs/rfc_0793_generic_kv_services/index.html
index ef1df72f..c046c1ad 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0793_generic_kv_services/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0793_generic_kv_services/index.html
@@ -153,4 +153,4 @@ entry key.</p>
 <p>None.</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0926_object_reader/index.html b/docs/rust/opendal/docs/rfcs/rfc_0926_object_reader/index.html
index cc3456eb..4acd92d8 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0926_object_reader/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0926_object_reader/index.html
@@ -61,4 +61,4 @@
 <p>None.</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2><h3 id="add-content-range-support"><a href="#add-content-range-support">Add content-range support</a></h3>
 <p>We can add <code>content-range</code> in <code>ObjectMeta</code> so that users can fetch and use them.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0977_refactor_error/index.html b/docs/rust/opendal/docs/rfcs/rfc_0977_refactor_error/index.html
index c13ce9b5..9dd4b982 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0977_refactor_error/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0977_refactor_error/index.html
@@ -100,4 +100,4 @@ Backtrace: &lt;backtrace <span class="kw">if </span>we have&gt;</code></pre></di
 <p>None.</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2><h3 id="more-errorkind"><a href="#more-errorkind">More ErrorKind</a></h3>
 <p>We can add more error kinds to make it possible for users to check.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_1085_object_handler/index.html b/docs/rust/opendal/docs/rfcs/rfc_1085_object_handler/index.html
index 089a4430..fea34958 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_1085_object_handler/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_1085_object_handler/index.html
@@ -43,4 +43,4 @@
 <li>Add write support</li>
 <li>Adopt native <code>pread</code></li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_1391_object_metadataer/index.html b/docs/rust/opendal/docs/rfcs/rfc_1391_object_metadataer/index.html
index 3e6e7c63..830eac56 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_1391_object_metadataer/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_1391_object_metadataer/index.html
@@ -70,4 +70,4 @@
 <p>None.</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_1398_query_based_metadata/index.html b/docs/rust/opendal/docs/rfcs/rfc_1398_query_based_metadata/index.html
index 31bdb09e..e9233ed7 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_1398_query_based_metadata/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_1398_query_based_metadata/index.html
@@ -82,4 +82,4 @@
 <p>None</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_1420_object_writer/index.html b/docs/rust/opendal/docs/rfcs/rfc_1420_object_writer/index.html
index 66ea0680..b85db3ea 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_1420_object_writer/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_1420_object_writer/index.html
@@ -93,4 +93,4 @@ w.close().<span class="kw">await</span><span class="question-mark">?</span>;</co
     <span class="kw">pub async </span>write_from(<span class="kw-2">&amp;mut </span><span class="self">self</span>, r: BytesStream, size: u64) -&gt; <span class="prelude-ty">Result</span>&lt;()&gt;;
 }</code></pre></div>
 <p>By implementing this feature, users don’t need to hold a large buffer inside memory.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_1477_remove_object_concept/index.html b/docs/rust/opendal/docs/rfcs/rfc_1477_remove_object_concept/index.html
index 582501d7..c5067cfd 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_1477_remove_object_concept/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_1477_remove_object_concept/index.html
@@ -97,4 +97,4 @@ bop.write(<span class="string">&quot;file&quot;</span>, bs)<span class="question
 <p>None</p>
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2>
 <p>None</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/rfcs/rfc_1735_operation_extension/index.html b/docs/rust/opendal/docs/rfcs/rfc_1735_operation_extension/index.html
index 0c5238ef..c702fe2f 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_1735_operation_extension/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_1735_operation_extension/index.html
@@ -78,4 +78,4 @@ builder.default_cache_control(<span class="string">&quot;max-age=3600&quot;</spa
 <h2 id="future-possibilities"><a href="#future-possibilities">Future possibilities</a></h2><h3 id="strict-mode"><a href="#strict-mode">Strict Mode</a></h3>
 <p>Additionally, we have implemented a <code>strict</code> option for the <code>Operator</code>. If users enable this option, OpenDAL will return an error message for unsupported options. Otherwise, it will ignore them.</p>
 <p>For instance, if users rely on the <code>if_match</code> behavior but services like <code>fs</code> and <code>hdfs</code> do not support it natively, they can use the <code>op.with_strict()</code> function to prompt OpenDAL to return an error.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/upgrade/index.html b/docs/rust/opendal/docs/upgrade/index.html
index fe56bcc8..68343aa1 100644
--- a/docs/rust/opendal/docs/upgrade/index.html
+++ b/docs/rust/opendal/docs/upgrade/index.html
@@ -439,4 +439,4 @@ builder.secret_access_key(<span class="string">&quot;secret_access_key&quot;</sp
 <li><code>BoxedAsyncWriter</code> =&gt; <code>BytesWriter</code></li>
 <li><code>ObjectStream</code> =&gt; <code>ObjectStreamer</code></li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/enum.EntryMode.html b/docs/rust/opendal/enum.EntryMode.html
index df2daee5..5450823a 100644
--- a/docs/rust/opendal/enum.EntryMode.html
+++ b/docs/rust/opendal/enum.EntryMode.html
@@ -6,16 +6,16 @@
 </div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.FILE" class="variant"><a href="#variant.FILE" class="anchor">§</a><h3 class="code-header">FILE</h3></section><div class="docblock"><p>FILE means the path has data to read.</p>
 </div><section id="variant.DIR" class="variant"><a href="#variant.DIR" class="anchor">§</a><h3 class="code-header">DIR</h3></section><div class="docblock"><p>DIR means the path can be listed.</p>
 </div><section id="variant.Unknown" class="variant"><a href="#variant.Unknown" class="anchor">§</a><h3 class="code-header">Unknown</h3></section><div class="docblock"><p>Unknown means we don’t know what we can do on this path.</p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-EntryMode" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/mode.rs.html#32-41">source</a><a href="#impl-EntryMode" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.EntryMode.html" title="enum  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.is_dir" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/mode.rs.html#38-40">source</a><h4 class="code-header">pub fn <a href="#method.is_dir" class="fn">is_dir</a>(self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if this mode is DIR.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-EntryMode" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/mode.rs.html#22">source</a><a href="#impl-Clone-for-EntryMode" class="anchor">§</a><h3 class="code-h [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-EntryMode" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/mode.rs.html#22">source</a><a href="#impl-Copy-for-EntryMode" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.EntryM [...]
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-EntryMode" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/mode.rs.html#32-41">source</a><a href="#impl-EntryMode" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.EntryMode.html" title="enum  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.is_dir" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/mode.rs.html#38-40">source</a><h4 class="code-header">pub fn <a href="#method.is_dir" class="fn">is_dir</a>(self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if this mode is DIR.</p>
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-EntryMode" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/mode.rs.html#22">source</a><a href="#impl-Clone-for-EntryMode" class="anchor">§</a><h3 class="code-h [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-EntryMode" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/mode.rs.html#22">source</a><a href="#impl-Copy-for-EntryMode" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.EntryM [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-EntryMode" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-EntryMode" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrumen [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-EntryMode" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-EntryMode" class="anchor">§</a><h3 class= [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-EntryMode" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-EntryMode" class="anchor">§</a><h3 class= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-EntryMode" class="impl has-srclink"><a href="#impl-Pointable-for-EntryMode" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-EntryMode" class="impl has-srclink"><a href="#impl-Pointable-for-EntryMode" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/enum.ErrorKind.html b/docs/rust/opendal/enum.ErrorKind.html
index c154963d..52ce0b5a 100644
--- a/docs/rust/opendal/enum.ErrorKind.html
+++ b/docs/rust/opendal/enum.ErrorKind.html
@@ -20,15 +20,15 @@ returning it back. For example, s3 returns an internal service error.</p>
 </div><section id="variant.NotADirectory" class="variant"><a href="#variant.NotADirectory" class="anchor">§</a><h3 class="code-header">NotADirectory</h3></section><div class="docblock"><p>The given path is not a directory.</p>
 </div><section id="variant.AlreadyExists" class="variant"><a href="#variant.AlreadyExists" class="anchor">§</a><h3 class="code-header">AlreadyExists</h3></section><div class="docblock"><p>The given path already exists thus we failed to the specified operation on it.</p>
 </div><section id="variant.RateLimited" class="variant"><a href="#variant.RateLimited" class="anchor">§</a><h3 class="code-header">RateLimited</h3></section><div class="docblock"><p>Requests that sent to this path is over the limit, please slow down.</p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ErrorKind" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#73-78">source</a><a href="#impl-ErrorKind" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.ErrorKind.html" title="enum [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-ErrorKind" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#48">source</a><a href="#impl-Clone-for-ErrorKind" class="anchor">§</a><h3 class="code- [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-ErrorKind" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#48">source</a><a href="#impl-Copy-for-ErrorKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.Error [...]
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ErrorKind" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#73-78">source</a><a href="#impl-ErrorKind" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.ErrorKind.html" title="enum [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-ErrorKind" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#48">source</a><a href="#impl-Clone-for-ErrorKind" class="anchor">§</a><h3 class="code- [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-ErrorKind" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#48">source</a><a href="#impl-Copy-for-ErrorKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.Error [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-ErrorKind" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-ErrorKind" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrumen [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ErrorKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ErrorKind" class="anchor">§</a><h3 class= [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ErrorKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ErrorKind" class="anchor">§</a><h3 class= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ErrorKind" class="impl has-srclink"><a href="#impl-Pointable-for-ErrorKind" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ErrorKind" class="impl has-srclink"><a href="#impl-Pointable-for-ErrorKind" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/enum.Metakey.html b/docs/rust/opendal/enum.Metakey.html
index 460f2c6e..6c403f8e 100644
--- a/docs/rust/opendal/enum.Metakey.html
+++ b/docs/rust/opendal/enum.Metakey.html
@@ -27,14 +27,14 @@ already contains all metadata.</p>
 </div><section id="variant.ContentType" class="variant"><a href="#variant.ContentType" class="anchor">§</a><h3 class="code-header">ContentType</h3></section><div class="docblock"><p>Key for content type.</p>
 </div><section id="variant.Etag" class="variant"><a href="#variant.Etag" class="anchor">§</a><h3 class="code-header">Etag</h3></section><div class="docblock"><p>Key for etag.</p>
 </div><section id="variant.LastModified" class="variant"><a href="#variant.LastModified" class="anchor">§</a><h3 class="code-header">LastModified</h3></section><div class="docblock"><p>Key for last last modified.</p>
-</div></div><h2 id="trait-implementations" class="small-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-BitAnd%3CR%3E-for-Metakey" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#388-424">source</a><a href="#impl-BitAnd%3CR%3E-for-Metakey" class="anchor">§</a><h3 class="code-header [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-Metakey" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#388-424">source</a><a href="#impl-Rem%3CR%3E-for-Metakey" class="anchor">§</a><h3 class="code-header">impl&lt;R:&nbsp;<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.Int [...]
+</div></div><h2 id="trait-implementations" class="small-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-BitAnd%3CR%3E-for-Metakey" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#388-424">source</a><a href="#impl-BitAnd%3CR%3E-for-Metakey" class="anchor">§</a><h3 class="code-header [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-Metakey" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#388-424">source</a><a href="#impl-Rem%3CR%3E-for-Metakey" class="anchor">§</a><h3 class="code-header">impl&lt;R:&nbsp;<a class="trait" href="https://doc.rust-lang.org/1.68.1/core/convert/trait.Int [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Metakey" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Metakey" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::I [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Metakey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Metakey" class="anchor">§</a><h3 class="cod [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Metakey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Metakey" class="anchor">§</a><h3 class="cod [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Metakey" class="impl has-srclink"><a href="#impl-Pointable-for-Metakey" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</ [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Metakey" class="impl has-srclink"><a href="#impl-Pointable-for-Metakey" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</ [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/enum.Scheme.html b/docs/rust/opendal/enum.Scheme.html
index cb18eef4..d65d4686 100644
--- a/docs/rust/opendal/enum.Scheme.html
+++ b/docs/rust/opendal/enum.Scheme.html
@@ -22,7 +22,7 @@ pub enum Scheme {
     Sled,
     Webdav,
     Webhdfs,
-    Custom(&amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>),
+    Custom(&amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>),
 </details>}</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Services that OpenDAL supports</p>
 <h2 id="notes"><a href="#notes">Notes</a></h2>
 <ul>
@@ -52,21 +52,21 @@ pub enum Scheme {
 </div><section id="variant.Sled" class="variant"><a href="#variant.Sled" class="anchor">§</a><h3 class="code-header">Sled</h3></section><div class="docblock"><p><a href="services/struct.Sled.html" title="crate::services::Sled">sled</a>: Sled services</p>
 </div><section id="variant.Webdav" class="variant"><a href="#variant.Webdav" class="anchor">§</a><h3 class="code-header">Webdav</h3></section><div class="docblock"><p><a href="services/struct.Webdav.html" title="crate::services::Webdav">webdav</a>: WebDAV support.</p>
 </div><section id="variant.Webhdfs" class="variant"><a href="#variant.Webhdfs" class="anchor">§</a><h3 class="code-header">Webhdfs</h3></section><div class="docblock"><p><a href="services/struct.Webhdfs.html" title="crate::services::Webhdfs">webhdfs</a>: WebHDFS RESTful API Services</p>
-</div><section id="variant.Custom" class="variant"><a href="#variant.Custom" class="anchor">§</a><h3 class="code-header">Custom(&amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</h3></section><div class="docblock"><p>Custom that allow users to implement services outside of OpenDAL.</p>
+</div><section id="variant.Custom" class="variant"><a href="#variant.Custom" class="anchor">§</a><h3 class="code-header">Custom(&amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>)</h3></section><div class="docblock"><p>Custom that allow users to implement services outside of OpenDAL.</p>
 <h4 id="note"><a href="#note">NOTE</a></h4>
 <ul>
 <li>Custom must not overwrite any existing services name.</li>
 <li>Custom must be lowed cases.</li>
 </ul>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Scheme" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/scheme.rs.html#96-101">source</a><a href="#impl-Scheme" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Scheme.html" title="enum openda [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Scheme" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/scheme.rs.html#31">source</a><a href="#impl-Clone-for-Scheme" class="anchor">§</a><h3 class="code-heade [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-Scheme" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/scheme.rs.html#31">source</a><a href="#impl-Copy-for-Scheme" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.Scheme.htm [...]
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Scheme" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/scheme.rs.html#96-101">source</a><a href="#impl-Scheme" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Scheme.html" title="enum openda [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Scheme" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/scheme.rs.html#31">source</a><a href="#impl-Clone-for-Scheme" class="anchor">§</a><h3 class="code-heade [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-Scheme" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/scheme.rs.html#31">source</a><a href="#impl-Copy-for-Scheme" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.Scheme.htm [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Scheme" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Scheme" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Scheme" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Scheme" class="anchor">§</a><h3 class="code- [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Scheme" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Scheme" class="anchor">§</a><h3 class="code- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Scheme" class="impl has-srclink"><a href="#impl-Pointable-for-Scheme" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Scheme" class="impl has-srclink"><a href="#impl-Pointable-for-Scheme" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/index.html b/docs/rust/opendal/index.html
index 475fb116..2a2f92e4 100644
--- a/docs/rust/opendal/index.html
+++ b/docs/rust/opendal/index.html
@@ -46,4 +46,4 @@ manner.</div></div><div class="item-row"><div class="item-left module-item"><a c
 manner.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Metadata.html" title="opendal::Metadata struct">Metadata</a></div><div class="item-right docblock-short">Metadata carries all metadata associated with an path.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Operator.html" title="opendal::Operator struct">Operator</a></div><div class="item-right docblock-short">Operator is the entry [...]
 manner.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Writer.html" title="opendal::Writer struct">Writer</a></div><div class="item-right docblock-short">Writer is designed to write data into given path in an asynchronous
 manner.</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.EntryMode.html" title="opendal::EntryMode enum">EntryMode</a></div><div class="item-right docblock-short">EntryMode represents the mode.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.ErrorKind.html" title="opendal::ErrorKind enum">Erro [...]
-or queried.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Scheme.html" title="opendal::Scheme enum">Scheme</a></div><div class="item-right docblock-short">Services that OpenDAL supports</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.Builder.html" title="opendal::Builder trait">Builder [...]
\ No newline at end of file
+or queried.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Scheme.html" title="opendal::Scheme enum">Scheme</a></div><div class="item-right docblock-short">Services that OpenDAL supports</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.Builder.html" title="opendal::Builder trait">Builder [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/layers/index.html b/docs/rust/opendal/layers/index.html
index 28c47dbd..313f1b56 100644
--- a/docs/rust/opendal/layers/index.html
+++ b/docs/rust/opendal/layers/index.html
@@ -1,2 +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="`Layer` is the mechanism to intercept operations."><meta name="keywords" content="rust, rustlang, rust-lang, layers"><title>opendal::layers - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
-</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ChaosLayer.html" title="opendal::layers::ChaosLayer struct">ChaosLayer</a></div><div class="item-right docblock-short">Inject chaos into underlying services for robustness test.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Concur [...]
\ No newline at end of file
+</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ChaosLayer.html" title="opendal::layers::ChaosLayer struct">ChaosLayer</a></div><div class="item-right docblock-short">Inject chaos into underlying services for robustness test.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Concur [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/layers/struct.ChaosLayer.html b/docs/rust/opendal/layers/struct.ChaosLayer.html
index 3ea5372e..455cd165 100644
--- a/docs/rust/opendal/layers/struct.ChaosLayer.html
+++ b/docs/rust/opendal/layers/struct.ChaosLayer.html
@@ -19,15 +19,15 @@ be added in the future.</p>
     .expect(<span class="string">&quot;must init&quot;</span>)
     .layer(ChaosLayer::new(<span class="number">0.1</span>))
     .finish();</code></pre></div>
-</div></details><h2 id="implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/chaos.rs.html#68-81">source</a><a href="#impl-ChaosLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ChaosLayer.ht [...]
+</div></details><h2 id="implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/chaos.rs.html#68-81">source</a><a href="#impl-ChaosLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ChaosLayer.ht [...]
 <h5 id="panics"><a href="#panics">Panics</a></h5>
 <p>Input error_ratio must in [0.0..=1.0]</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/chaos.rs.html#63">source</a><a href="#impl-Clone-for-ChaosLayer" class="anchor">§</a><h3 class= [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/chaos.rs.html#63">source</a><a href="#impl-Clone-for-ChaosLayer" class="anchor">§</a><h3 class= [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-ChaosLayer" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-ChaosLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrum [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ChaosLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ChaosLayer" class="anchor">§</a><h3 clas [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ChaosLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ChaosLayer" class="anchor">§</a><h3 clas [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ChaosLayer" class="impl has-srclink"><a href="#impl-Pointable-for-ChaosLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ChaosLayer" class="impl has-srclink"><a href="#impl-Pointable-for-ChaosLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html b/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html
index 452e30df..176e7cda 100644
--- a/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html
+++ b/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html
@@ -13,13 +13,13 @@ between OpenDAL and underlying storage services.</p>
     .expect(<span class="string">&quot;must init&quot;</span>)
     .layer(ConcurrentLimitLayer::new(<span class="number">1024</span>))
     .finish();</code></pre></div>
-</div></details><h2 id="implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/concurrent_limit.rs.html#59-64">source</a><a href="#impl-ConcurrentLimitLayer" class="anchor">§</a><h3 class="code-header">impl <a class="str [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/concurrent_limit.rs.html#54">source</a><a href="#impl-Clone-for-ConcurrentLimitLayer" [...]
+</div></details><h2 id="implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/concurrent_limit.rs.html#59-64">source</a><a href="#impl-ConcurrentLimitLayer" class="anchor">§</a><h3 class="code-header">impl <a class="str [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/concurrent_limit.rs.html#54">source</a><a href="#impl-Clone-for-ConcurrentLimitLayer" [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-ConcurrentLimitLayer" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-ConcurrentLimitLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="tr [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ConcurrentLimitLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ConcurrentLimitLayer" class="a [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ConcurrentLimitLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ConcurrentLimitLayer" class="a [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ConcurrentLimitLayer" class="impl has-srclink"><a href="#impl-Pointable-for-ConcurrentLimitLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ConcurrentLimitLayer" class="impl has-srclink"><a href="#impl-Pointable-for-ConcurrentLimitLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html b/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html
index f58fcddc..80506533 100644
--- a/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html
+++ b/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html
@@ -15,14 +15,14 @@
     .unwrap()
     .layer(iil)
     .finish();</code></pre></div>
-</div></details><h2 id="implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/immutable_index.rs.html#55-68">source</a><a href="#impl-ImmutableIndexLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.extend_iter" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/immutable_index.rs.html#62-67">source</a><h4 class="code-header">pub fn <a href="#method.extend_iter" class="fn">extend_iter</a>&lt;I&gt;(&amp;mut self, iter: I)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/iter/traits/co [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/immutable_index.rs.html#50">source</a><a href="#impl-Clone-for-ImmutableIndexLayer" cl [...]
+</div></details><h2 id="implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/immutable_index.rs.html#55-68">source</a><a href="#impl-ImmutableIndexLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.extend_iter" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/immutable_index.rs.html#62-67">source</a><h4 class="code-header">pub fn <a href="#method.extend_iter" class="fn">extend_iter</a>&lt;I&gt;(&amp;mut self, iter: I)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/iter/traits/co [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/immutable_index.rs.html#50">source</a><a href="#impl-Clone-for-ImmutableIndexLayer" cl [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-ImmutableIndexLayer" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-ImmutableIndexLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trai [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ImmutableIndexLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ImmutableIndexLayer" class="anc [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ImmutableIndexLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ImmutableIndexLayer" class="anc [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ImmutableIndexLayer" class="impl has-srclink"><a href="#impl-Pointable-for-ImmutableIndexLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.A [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ImmutableIndexLayer" class="impl has-srclink"><a href="#impl-Pointable-for-ImmutableIndexLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.A [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/layers/struct.LoggingLayer.html b/docs/rust/opendal/layers/struct.LoggingLayer.html
index 3d216849..de950fe1 100644
--- a/docs/rust/opendal/layers/struct.LoggingLayer.html
+++ b/docs/rust/opendal/layers/struct.LoggingLayer.html
@@ -32,18 +32,18 @@
 </code></pre></div>
 <p>To config logging output, please refer to <a href="https://rust-lang-nursery.github.io/rust-cookbook/development_tools/debugging/config_log.html">Configure Logging</a>:</p>
 <div class="example-wrap"><pre class="language-shell"><code>RUST_LOG=&quot;info,opendal::services=debug&quot; ./app
-</code></pre></div></div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-LoggingLayer" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/logging.rs.html#100-120">source</a><a href="#impl-LoggingLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" [...]
+</code></pre></div></div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-LoggingLayer" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/logging.rs.html#100-120">source</a><a href="#impl-LoggingLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" [...]
 <p>For example: accessor returns NotFound.</p>
 <p><code>None</code> means disable the log for error.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_failure_level" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/logging.rs.html#116-119">source</a><h4 class="code-header">pub fn <a href="#method.with_failure_level" class="fn">with_failure_level</a>(self, level: <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_failure_level" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/logging.rs.html#116-119">source</a><h4 class="code-header">pub fn <a href="#method.with_failure_level" class="fn">with_failure_level</a>(self, level: <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum [...]
 <p>For example: accessor returns Unexpected network error.</p>
 <p><code>None</code> means disable the log for failure.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/logging.rs.html#85">source</a><a href="#impl-Clone-for-LoggingLayer" class="anchor">§</a><h3  [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/logging.rs.html#85">source</a><a href="#impl-Clone-for-LoggingLayer" class="anchor">§</a><h3  [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-LoggingLayer" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-LoggingLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-LoggingLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-LoggingLayer" class="anchor">§</a><h3  [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-LoggingLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-LoggingLayer" class="anchor">§</a><h3  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-LoggingLayer" class="impl has-srclink"><a href="#impl-Pointable-for-LoggingLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-LoggingLayer" class="impl has-srclink"><a href="#impl-Pointable-for-LoggingLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/layers/struct.MetricsLayer.html b/docs/rust/opendal/layers/struct.MetricsLayer.html
index d9ed928a..ec4a0d10 100644
--- a/docs/rust/opendal/layers/struct.MetricsLayer.html
+++ b/docs/rust/opendal/layers/struct.MetricsLayer.html
@@ -37,12 +37,12 @@ builder.install().expect(<span class="string">&quot;failed to install recorder/e
 <span class="kw">let </span>handle = builder.install_recorder().expect(<span class="string">&quot;failed to install recorder&quot;</span>);
 <span class="kw">let </span>(recorder, exporter) = builder.build().expect(<span class="string">&quot;failed to build recorder/exporter&quot;</span>);
 <span class="kw">let </span>recorder = builder.build_recorder().expect(<span class="string">&quot;failed to build recorder&quot;</span>);</code></pre></div>
-</div></details><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/metrics.rs.html#117">source</a><a href="#impl-Clone-for-MetricsLayer" class="anchor">§</a><h3 class="code-header">i [...]
+</div></details><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/metrics.rs.html#117">source</a><a href="#impl-Clone-for-MetricsLayer" class="anchor">§</a><h3 class="code-header">i [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-MetricsLayer" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-MetricsLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-MetricsLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MetricsLayer" class="anchor">§</a><h3  [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-MetricsLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MetricsLayer" class="anchor">§</a><h3  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-MetricsLayer" class="impl has-srclink"><a href="#impl-Pointable-for-MetricsLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-MetricsLayer" class="impl has-srclink"><a href="#impl-Pointable-for-MetricsLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/layers/struct.RetryLayer.html b/docs/rust/opendal/layers/struct.RetryLayer.html
index 1ae464a7..1e374929 100644
--- a/docs/rust/opendal/layers/struct.RetryLayer.html
+++ b/docs/rust/opendal/layers/struct.RetryLayer.html
@@ -29,20 +29,20 @@ returns true. If operation still failed, this layer will set error to
 </div></details><details class="toggle method-toggle" open><summary><section id="method.with_jitter" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/retry.rs.html#94-97">source</a><h4 class="code-header">pub fn <a href="#method.with_jitter" class="fn">with_jitter</a>(self) -&gt; Self</h4></section></summary><div class="docblock"><p>Set jitter of current backoff.</p>
 <p>If jitter is enabled, ExponentialBackoff will add a random jitter in `[0, min_delay)
 to current delay.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_factor" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/retry.rs.html#104-107">source</a><h4 class="code-header">pub fn <a href="#method.with_factor" class="fn">with_factor</a>(self, factor: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.f32.html">f32</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set factor of cu [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_factor" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/retry.rs.html#104-107">source</a><h4 class="code-header">pub fn <a href="#method.with_factor" class="fn">with_factor</a>(self, factor: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.f32.html">f32</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set factor of cu [...]
 <h5 id="panics"><a href="#panics">Panics</a></h5>
 <p>This function will panic if input factor smaller than <code>1.0</code>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_min_delay" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/retry.rs.html#110-113">source</a><h4 class="code-header">pub fn <a href="#method.with_min_delay" class="fn">with_min_delay</a>(self, min_delay: <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; Self</h4></s [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_max_delay" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/retry.rs.html#118-121">source</a><h4 class="code-header">pub fn <a href="#method.with_max_delay" class="fn">with_max_delay</a>(self, max_delay: <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; Self</h4></s [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_min_delay" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/retry.rs.html#110-113">source</a><h4 class="code-header">pub fn <a href="#method.with_min_delay" class="fn">with_min_delay</a>(self, min_delay: <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; Self</h4></s [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_max_delay" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/retry.rs.html#118-121">source</a><h4 class="code-header">pub fn <a href="#method.with_max_delay" class="fn">with_max_delay</a>(self, max_delay: <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; Self</h4></s [...]
 <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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/retry.rs.html#126-129">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/1.68.0/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p> [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_max_times" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/retry.rs.html#126-129">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/1.68.1/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p> [...]
 <p>Backoff will return <code>None</code> if max times is reaching.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/retry.rs.html#68">source</a><a href="#impl-Clone-for-RetryLayer" class="anchor">§</a><h3 class= [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/retry.rs.html#68">source</a><a href="#impl-Clone-for-RetryLayer" class="anchor">§</a><h3 class= [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-RetryLayer" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-RetryLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrum [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RetryLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RetryLayer" class="anchor">§</a><h3 clas [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RetryLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RetryLayer" class="anchor">§</a><h3 clas [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RetryLayer" class="impl has-srclink"><a href="#impl-Pointable-for-RetryLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RetryLayer" class="impl has-srclink"><a href="#impl-Pointable-for-RetryLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/layers/struct.TracingLayer.html b/docs/rust/opendal/layers/struct.TracingLayer.html
index c8e8928b..50993ca8 100644
--- a/docs/rust/opendal/layers/struct.TracingLayer.html
+++ b/docs/rust/opendal/layers/struct.TracingLayer.html
@@ -68,12 +68,12 @@
 tracing::subscriber::set_global_default(my_subscriber)
     .expect(<span class="string">&quot;setting tracing default failed&quot;</span>);</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="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/tracing.rs.html#121-127">source</a><a href="#impl-Layer%3CA%3E-for-TracingLayer" class="anchor">§</a><h3 cla [...]
+</div></details><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/tracing.rs.html#121-127">source</a><a href="#impl-Layer%3CA%3E-for-TracingLayer" class="anchor">§</a><h3 cla [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-TracingLayer" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-TracingLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-TracingLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-TracingLayer" class="anchor">§</a><h3  [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-TracingLayer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-TracingLayer" class="anchor">§</a><h3  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-TracingLayer" class="impl has-srclink"><a href="#impl-Pointable-for-TracingLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-TracingLayer" class="impl has-srclink"><a href="#impl-Pointable-for-TracingLayer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/ops/enum.BatchOperations.html b/docs/rust/opendal/ops/enum.BatchOperations.html
index 26a66ed1..22364d1c 100644
--- a/docs/rust/opendal/ops/enum.BatchOperations.html
+++ b/docs/rust/opendal/ops/enum.BatchOperations.html
@@ -1,17 +1,17 @@
 <!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="Batch operation used for batch."><meta name="keywords" content="rust, rustlang, rust-lang, BatchOperations"><title>BatchOperations in opendal::ops - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf. [...]
 pub enum BatchOperations {
-    Delete(<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="struct.OpDelete.html" title="struct opendal::ops::OpDelete">OpDelete</a>)&gt;),
+    Delete(<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="struct.OpDelete.html" title="struct opendal::ops::OpDelete">OpDelete</a>)&gt;),
 }</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Batch operation used for batch.</p>
-</div></details><h2 id="variants" class="variants small-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 variant [...]
+</div></details><h2 id="variants" class="variants small-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 variant [...]
 </div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BatchOperations" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#203-227">source</a><a href="#impl-BatchOperations" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.BatchOperati [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#213-218">source</a><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Return the length of given operations.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#221-226">source</a><h4 class="code-header">pub fn <a href="#method.is_empty" class="fn">is_empty</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return if given operations is empty.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-BatchOperations" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#196">source</a><a href="#impl-Clone-for-BatchOperations" class="anchor">§</a><h [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#213-218">source</a><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Return the length of given operations.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#221-226">source</a><h4 class="code-header">pub fn <a href="#method.is_empty" class="fn">is_empty</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return if given operations is empty.</p>
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-BatchOperations" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#196">source</a><a href="#impl-Clone-for-BatchOperations" class="anchor">§</a><h [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-BatchOperations" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-BatchOperations" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracin [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BatchOperations" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BatchOperations" class="anchor">§</ [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BatchOperations" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BatchOperations" class="anchor">§</ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-BatchOperations" class="impl has-srclink"><a href="#impl-Pointable-for-BatchOperations" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" cl [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-BatchOperations" class="impl has-srclink"><a href="#impl-Pointable-for-BatchOperations" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" cl [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/ops/enum.PresignOperation.html b/docs/rust/opendal/ops/enum.PresignOperation.html
index e6a2bb98..d676ad7f 100644
--- a/docs/rust/opendal/ops/enum.PresignOperation.html
+++ b/docs/rust/opendal/ops/enum.PresignOperation.html
@@ -7,12 +7,12 @@ pub enum PresignOperation {
 </div></details><h2 id="variants" class="variants small-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 variant [...]
 </div><section id="variant.Read" class="variant"><a href="#variant.Read" class="anchor">§</a><h3 class="code-header">Read(<a class="struct" href="struct.OpRead.html" title="struct opendal::ops::OpRead">OpRead</a>)</h3></section><div class="docblock"><p>Presign a read operation.</p>
 </div><section id="variant.Write" class="variant"><a href="#variant.Write" class="anchor">§</a><h3 class="code-header">Write(<a class="struct" href="struct.OpWrite.html" title="struct opendal::ops::OpWrite">OpWrite</a>)</h3></section><div class="docblock"><p>Presign a write operation.</p>
-</div></div><h2 id="trait-implementations" class="small-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-PresignOperation" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#143">source</a><a href="#impl-Clone-for-PresignOperation" class="anchor">§</a><h3 class="code-header">im [...]
+</div></div><h2 id="trait-implementations" class="small-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-PresignOperation" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#143">source</a><a href="#impl-Clone-for-PresignOperation" class="anchor">§</a><h3 class="code-header">im [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-PresignOperation" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-PresignOperation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait trac [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PresignOperation" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PresignOperation" class="anchor">§ [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PresignOperation" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PresignOperation" class="anchor">§ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-PresignOperation" class="impl has-srclink"><a href="#impl-Pointable-for-PresignOperation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN"  [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-PresignOperation" class="impl has-srclink"><a href="#impl-Pointable-for-PresignOperation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN"  [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/ops/index.html b/docs/rust/opendal/ops/index.html
index ba614b57..49e6abaa 100644
--- a/docs/rust/opendal/ops/index.html
+++ b/docs/rust/opendal/ops/index.html
@@ -1,3 +1,3 @@
 <!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="Ops provides the operation args struct like [`OpRead`] for user."><meta name="keywords" content="rust, rustlang, rust-lang, ops"><title>opendal::ops - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.tt [...]
 <p>By using ops, users can add more context for operation.</p>
-</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.OpBatch.html" title="opendal::ops::OpBatch struct">OpBatch</a></div><div class="item-right docblock-short">Args for <code>batch</code> operation.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.OpCreate.html" title="opendal::ops::Op [...]
\ No newline at end of file
+</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.OpBatch.html" title="opendal::ops::OpBatch struct">OpBatch</a></div><div class="item-right docblock-short">Args for <code>batch</code> operation.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.OpCreate.html" title="opendal::ops::Op [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/ops/struct.OpBatch.html b/docs/rust/opendal/ops/struct.OpBatch.html
index f9fe9439..7be0e2d7 100644
--- a/docs/rust/opendal/ops/struct.OpBatch.html
+++ b/docs/rust/opendal/ops/struct.OpBatch.html
@@ -2,12 +2,12 @@
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpBatch" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#178-193">source</a><a href="#impl-OpBatch" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpBatch.html" title= [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.operation" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#185-187">source</a><h4 class="code-header">pub fn <a href="#method.operation" class="fn">operation</a>(&amp;self) -&gt; &amp;<a class="enum" href="enum.BatchOperations.html" title="enum opendal::ops::BatchOperations">BatchOperations</a></h4></section></summary><div class="docblock"><p>Get opera [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.into_operation" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#190-192">source</a><h4 class="code-header">pub fn <a href="#method.into_operation" class="fn">into_operation</a>(self) -&gt; <a class="enum" href="enum.BatchOperations.html" title="enum opendal::ops::BatchOperations">BatchOperations</a></h4></section></summary><div class="docblock"><p>Cons [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpBatch" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#173">source</a><a href="#impl-Clone-for-OpBatch" class="anchor">§</a><h3 class="code-he [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpBatch" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#173">source</a><a href="#impl-Clone-for-OpBatch" class="anchor">§</a><h3 class="code-he [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-OpBatch" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-OpBatch" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::I [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpBatch" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpBatch" class="anchor">§</a><h3 class="cod [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpBatch" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpBatch" class="anchor">§</a><h3 class="cod [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpBatch" class="impl has-srclink"><a href="#impl-Pointable-for-OpBatch" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</ [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpBatch" class="impl has-srclink"><a href="#impl-Pointable-for-OpBatch" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</ [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/ops/struct.OpCreate.html b/docs/rust/opendal/ops/struct.OpCreate.html
index f7f85cb2..469c505e 100644
--- a/docs/rust/opendal/ops/struct.OpCreate.html
+++ b/docs/rust/opendal/ops/struct.OpCreate.html
@@ -2,12 +2,12 @@
 <p>The path must be normalized.</p>
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpCreate" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#35-45">source</a><a href="#impl-OpCreate" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpCreate.html" title [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.mode" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#42-44">source</a><h4 class="code-header">pub fn <a href="#method.mode" class="fn">mode</a>(&amp;self) -&gt; <a class="enum" href="../enum.EntryMode.html" title="enum opendal::EntryMode">EntryMode</a></h4></section></summary><div class="docblock"><p>Get mode from option.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpCreate" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#30">source</a><a href="#impl-Clone-for-OpCreate" class="anchor">§</a><h3 class="code-h [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpCreate" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#30">source</a><a href="#impl-Clone-for-OpCreate" class="anchor">§</a><h3 class="code-h [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-OpCreate" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-OpCreate" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpCreate" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpCreate" class="anchor">§</a><h3 class="c [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpCreate" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpCreate" class="anchor">§</a><h3 class="c [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpCreate" class="impl has-srclink"><a href="#impl-Pointable-for-OpCreate" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpCreate" class="impl has-srclink"><a href="#impl-Pointable-for-OpCreate" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/ops/struct.OpDelete.html b/docs/rust/opendal/ops/struct.OpDelete.html
index f01be915..8af322ff 100644
--- a/docs/rust/opendal/ops/struct.OpDelete.html
+++ b/docs/rust/opendal/ops/struct.OpDelete.html
@@ -1,12 +1,12 @@
 <!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="Args for `delete` operation."><meta name="keywords" content="rust, rustlang, rust-lang, OpDelete"><title>OpDelete in opendal::ops - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel= [...]
 <p>The path must be normalized.</p>
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpDelete" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#53-58">source</a><a href="#impl-OpDelete" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpDelete.html" title [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpDelete" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#50">source</a><a href="#impl-Clone-for-OpDelete" class="anchor">§</a><h3 class="code-h [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpDelete" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#50">source</a><a href="#impl-Clone-for-OpDelete" class="anchor">§</a><h3 class="code-h [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-OpDelete" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-OpDelete" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpDelete" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpDelete" class="anchor">§</a><h3 class="c [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpDelete" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpDelete" class="anchor">§</a><h3 class="c [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpDelete" class="impl has-srclink"><a href="#impl-Pointable-for-OpDelete" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpDelete" class="impl has-srclink"><a href="#impl-Pointable-for-OpDelete" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/ops/struct.OpList.html b/docs/rust/opendal/ops/struct.OpList.html
index f4921801..5b1cd88b 100644
--- a/docs/rust/opendal/ops/struct.OpList.html
+++ b/docs/rust/opendal/ops/struct.OpList.html
@@ -1,13 +1,13 @@
 <!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="Args for `list` operation."><meta name="keywords" content="rust, rustlang, rust-lang, OpList"><title>OpList in opendal::ops - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="prelo [...]
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpList" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#68-84">source</a><a href="#impl-OpList" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpList.html" title="stru [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_limit" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#75-78">source</a><h4 class="code-header">pub fn <a href="#method.with_limit" class="fn">with_limit</a>(self, limit: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Change the limit of t [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.limit" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#81-83">source</a><h4 class="code-header">pub fn <a href="#method.limit" class="fn">limit</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.6 [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpList" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#61">source</a><a href="#impl-Clone-for-OpList" class="anchor">§</a><h3 class="code-heade [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_limit" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#75-78">source</a><h4 class="code-header">pub fn <a href="#method.with_limit" class="fn">with_limit</a>(self, limit: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Change the limit of t [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.limit" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#81-83">source</a><h4 class="code-header">pub fn <a href="#method.limit" class="fn">limit</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.6 [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpList" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#61">source</a><a href="#impl-Clone-for-OpList" class="anchor">§</a><h3 class="code-heade [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-OpList" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-OpList" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpList" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpList" class="anchor">§</a><h3 class="code- [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpList" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpList" class="anchor">§</a><h3 class="code- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpList" class="impl has-srclink"><a href="#impl-Pointable-for-OpList" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpList" class="impl has-srclink"><a href="#impl-Pointable-for-OpList" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/ops/struct.OpPresign.html b/docs/rust/opendal/ops/struct.OpPresign.html
index 345de00b..06508597 100644
--- a/docs/rust/opendal/ops/struct.OpPresign.html
+++ b/docs/rust/opendal/ops/struct.OpPresign.html
@@ -1,14 +1,14 @@
 <!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="Args for `presign` operation."><meta name="keywords" content="rust, rustlang, rust-lang, OpPresign"><title>OpPresign in opendal::ops - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
 <p>The path must be normalized.</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpPresign" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#122-140">source</a><a href="#impl-OpPresign" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpPresign.html"  [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpPresign" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#122-140">source</a><a href="#impl-OpPresign" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpPresign.html"  [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.operation" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#132-134">source</a><h4 class="code-header">pub fn <a href="#method.operation" class="fn">operation</a>(&amp;self) -&gt; &amp;<a class="enum" href="enum.PresignOperation.html" title="enum opendal::ops::PresignOperation">PresignOperation</a></h4></section></summary><div class="docblock"><p>Get op [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.expire" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#137-139">source</a><h4 class="code-header">pub fn <a href="#method.expire" class="fn">expire</a>(&amp;self) -&gt; Duration</h4></section></summary><div class="docblock"><p>Get expire from op.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpPresign" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#115">source</a><a href="#impl-Clone-for-OpPresign" class="anchor">§</a><h3 class="cod [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpPresign" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#115">source</a><a href="#impl-Clone-for-OpPresign" class="anchor">§</a><h3 class="cod [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-OpPresign" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-OpPresign" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrumen [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpPresign" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpPresign" class="anchor">§</a><h3 class= [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpPresign" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpPresign" class="anchor">§</a><h3 class= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpPresign" class="impl has-srclink"><a href="#impl-Pointable-for-OpPresign" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpPresign" class="impl has-srclink"><a href="#impl-Pointable-for-OpPresign" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/ops/struct.OpRead.html b/docs/rust/opendal/ops/struct.OpRead.html
index e7249681..ddfacecc 100644
--- a/docs/rust/opendal/ops/struct.OpRead.html
+++ b/docs/rust/opendal/ops/struct.OpRead.html
@@ -2,12 +2,12 @@
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpRead" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#235-251">source</a><a href="#impl-OpRead" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpRead.html" title="st [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.with_range" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#242-245">source</a><h4 class="code-header">pub fn <a href="#method.with_range" class="fn">with_range</a>(self, range: <a class="struct" href="../raw/struct.BytesRange.html" title="struct opendal::raw::BytesRange">BytesRange</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Creat [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.range" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#248-250">source</a><h4 class="code-header">pub fn <a href="#method.range" class="fn">range</a>(&amp;self) -&gt; <a class="struct" href="../raw/struct.BytesRange.html" title="struct opendal::raw::BytesRange">BytesRange</a></h4></section></summary><div class="docblock"><p>Get range from OpRead.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpRead" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#230">source</a><a href="#impl-Clone-for-OpRead" class="anchor">§</a><h3 class="code-head [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpRead" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#230">source</a><a href="#impl-Clone-for-OpRead" class="anchor">§</a><h3 class="code-head [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-OpRead" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-OpRead" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpRead" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpRead" class="anchor">§</a><h3 class="code- [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpRead" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpRead" class="anchor">§</a><h3 class="code- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpRead" class="impl has-srclink"><a href="#impl-Pointable-for-OpRead" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpRead" class="impl has-srclink"><a href="#impl-Pointable-for-OpRead" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/ops/struct.OpScan.html b/docs/rust/opendal/ops/struct.OpScan.html
index 14105bbf..0c905af1 100644
--- a/docs/rust/opendal/ops/struct.OpScan.html
+++ b/docs/rust/opendal/ops/struct.OpScan.html
@@ -1,13 +1,13 @@
 <!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="Args for `scan` operation."><meta name="keywords" content="rust, rustlang, rust-lang, OpScan"><title>OpScan in opendal::ops - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="prelo [...]
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpScan" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#94-110">source</a><a href="#impl-OpScan" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpScan.html" title="str [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_limit" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#101-104">source</a><h4 class="code-header">pub fn <a href="#method.with_limit" class="fn">with_limit</a>(self, limit: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Change the limit of [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.limit" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#107-109">source</a><h4 class="code-header">pub fn <a href="#method.limit" class="fn">limit</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1 [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpScan" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#87">source</a><a href="#impl-Clone-for-OpScan" class="anchor">§</a><h3 class="code-heade [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_limit" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#101-104">source</a><h4 class="code-header">pub fn <a href="#method.with_limit" class="fn">with_limit</a>(self, limit: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Change the limit of [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.limit" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#107-109">source</a><h4 class="code-header">pub fn <a href="#method.limit" class="fn">limit</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1 [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpScan" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#87">source</a><a href="#impl-Clone-for-OpScan" class="anchor">§</a><h3 class="code-heade [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-OpScan" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-OpScan" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpScan" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpScan" class="anchor">§</a><h3 class="code- [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpScan" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpScan" class="anchor">§</a><h3 class="code- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpScan" class="impl has-srclink"><a href="#impl-Pointable-for-OpScan" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpScan" class="impl has-srclink"><a href="#impl-Pointable-for-OpScan" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/ops/struct.OpStat.html b/docs/rust/opendal/ops/struct.OpStat.html
index c01e9ed3..29a0afd2 100644
--- a/docs/rust/opendal/ops/struct.OpStat.html
+++ b/docs/rust/opendal/ops/struct.OpStat.html
@@ -1,11 +1,11 @@
 <!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="Args for `stat` operation."><meta name="keywords" content="rust, rustlang, rust-lang, OpStat"><title>OpStat in opendal::ops - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="prelo [...]
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpStat" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#257-262">source</a><a href="#impl-OpStat" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpStat.html" title="st [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpStat" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#254">source</a><a href="#impl-Clone-for-OpStat" class="anchor">§</a><h3 class="code-head [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpStat" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#254">source</a><a href="#impl-Clone-for-OpStat" class="anchor">§</a><h3 class="code-head [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-OpStat" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-OpStat" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpStat" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpStat" class="anchor">§</a><h3 class="code- [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpStat" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpStat" class="anchor">§</a><h3 class="code- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpStat" class="impl has-srclink"><a href="#impl-Pointable-for-OpStat" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpStat" class="impl has-srclink"><a href="#impl-Pointable-for-OpStat" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/ops/struct.OpWrite.html b/docs/rust/opendal/ops/struct.OpWrite.html
index 8a1d2559..a54424d7 100644
--- a/docs/rust/opendal/ops/struct.OpWrite.html
+++ b/docs/rust/opendal/ops/struct.OpWrite.html
@@ -1,16 +1,16 @@
 <!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="Args for `write` operation."><meta name="keywords" content="rust, rustlang, rust-lang, OpWrite"><title>OpWrite in opendal::ops - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pr [...]
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpWrite" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#273-316">source</a><a href="#impl-OpWrite" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpWrite.html" title= [...]
 <p>If input path is not a file path, an error will be returned.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#296-298">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="h [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_type" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#301-304">source</a><h4 class="code-header">pub fn <a href="#method.with_content_type" class="fn">with_content_type</a>(self, content_type: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="doc [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#307-309">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a clas [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_disposition" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#312-315">source</a><h4 class="code-header">pub fn <a href="#method.with_content_disposition" class="fn">with_content_disposition</a>(self, content_disposition: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; Self</h4></secti [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpWrite" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#265">source</a><a href="#impl-Clone-for-OpWrite" class="anchor">§</a><h3 class="code-he [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#296-298">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="h [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_type" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#301-304">source</a><h4 class="code-header">pub fn <a href="#method.with_content_type" class="fn">with_content_type</a>(self, content_type: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="doc [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#307-309">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a clas [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_disposition" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#312-315">source</a><h4 class="code-header">pub fn <a href="#method.with_content_disposition" class="fn">with_content_disposition</a>(self, content_disposition: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; Self</h4></secti [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OpWrite" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/types/ops.rs.html#265">source</a><a href="#impl-Clone-for-OpWrite" class="anchor">§</a><h3 class="code-he [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-OpWrite" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-OpWrite" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::I [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpWrite" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpWrite" class="anchor">§</a><h3 class="cod [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OpWrite" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpWrite" class="anchor">§</a><h3 class="cod [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpWrite" class="impl has-srclink"><a href="#impl-Pointable-for-OpWrite" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</ [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OpWrite" class="impl has-srclink"><a href="#impl-Pointable-for-OpWrite" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</ [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/adapters/index.html b/docs/rust/opendal/raw/adapters/index.html
index 26d74d9b..e14e7cb1 100644
--- a/docs/rust/opendal/raw/adapters/index.html
+++ b/docs/rust/opendal/raw/adapters/index.html
@@ -18,4 +18,4 @@ with <a href="kv/trait.Adapter.html" title="kv::Adapter"><code>kv::Adapter</code
 <ul>
 <li><a href="kv/trait.Adapter.html" title="kv::Adapter"><code>kv::Adapter</code></a>: Adapter for Key Value Services like in-memory map, <code>redis</code>.</li>
 </ul>
-</div></details><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="kv/index.html" title="opendal::raw::adapters::kv mod">kv</a></div><div class="item-right docblock-short">Providing Key Value Adapter for OpenDAL.</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-curre [...]
\ No newline at end of file
+</div></details><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="kv/index.html" title="opendal::raw::adapters::kv mod">kv</a></div><div class="item-right docblock-short">Providing Key Value Adapter for OpenDAL.</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-curre [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/adapters/kv/index.html b/docs/rust/opendal/raw/adapters/kv/index.html
index 161a2a04..35a5d350 100644
--- a/docs/rust/opendal/raw/adapters/kv/index.html
+++ b/docs/rust/opendal/raw/adapters/kv/index.html
@@ -3,4 +3,4 @@
 <h2 id="notes"><a href="#notes">Notes</a></h2>
 <p>This adapter creates a new storage format which is not stable.</p>
 <p>Any service that built upon this adapter should not be persisted.</p>
-</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Backend.html" title="opendal::raw::adapters::kv::Backend struct">Backend</a></div><div class="item-right docblock-short">Backend of kv service.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Metadata.html" title="opendal::raw::adap [...]
\ No newline at end of file
+</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Backend.html" title="opendal::raw::adapters::kv::Backend struct">Backend</a></div><div class="item-right docblock-short">Backend of kv service.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Metadata.html" title="opendal::raw::adap [...]
\ 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 23d421b9..39567b2d 100644
--- a/docs/rust/opendal/raw/adapters/kv/struct.Backend.html
+++ b/docs/rust/opendal/raw/adapters/kv/struct.Backend.html
@@ -1,17 +1,17 @@
 <!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."><meta name="keywords" content="rust, rustlang, rust-lang, Backend"><title>Backend in opendal::raw::adapters::kv - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
 </div></details><h2 id="implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#35-52">source</a><a href="#impl-Backend%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; <a class=" [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_root" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/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: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Conf [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_root" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/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: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Conf [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#55-183">source</a><a href="#impl-Accessor-for-Backend%3CS [...]
 <code>blocking_read</code> operation.</div></details><details class="toggle" open><summary><section id="associatedtype.Writer" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Writer" class="anchor">§</a><h4 class="code-header">type <a href="../../trait.Accessor.html#associatedtype.Writer" class="associatedtype">Writer</a> = KvWriter&lt;S&gt;</h4></section></summary><div class='docblock'>Reader is the associated writer the could return in <code>write</code> operatio [...]
 <code>blocking_write</code> operation.</div></details><details class="toggle" open><summary><section id="associatedtype.Pager" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Pager" class="anchor">§</a><h4 class="code-header">type <a href="../../trait.Accessor.html#associatedtype.Pager" class="associatedtype">Pager</a> = KvPager</h4></section></summary><div class='docblock'>Pager is the associated page that return in <code>list</code> or <code>scan</code> operation [...]
-<code>blocking_list</code> or <code>scan</code> operation.</div></details><details class="toggle method-toggle" open><summary><section id="method.info" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#63-69">source</a><a href="#method.info" class="anchor">§</a><h4 class="code-header">fn <a href="../../trait.Accessor.html#tymethod.info" class="fn">info</a>(&amp;self) -&gt; <a class="struct" href="../../struct. [...]
-<a href="../../../struct.Reader.html" title="crate::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 has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#98-108">source</a><a href="#method.blocking_read" class="anchor">§</a><h4 class="code-header [...]
-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 has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#116-120">source</a><a href="#method.blocking_write" class="anchor">§</a><h4 class="code-header">fn <a href="../../trait.Accessor.html#method.blocking_write" clas [...]
+<code>blocking_list</code> or <code>scan</code> operation.</div></details><details class="toggle method-toggle" open><summary><section id="method.info" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#63-69">source</a><a href="#method.info" class="anchor">§</a><h4 class="code-header">fn <a href="../../trait.Accessor.html#tymethod.info" class="fn">info</a>(&amp;self) -&gt; <a class="struct" href="../../struct. [...]
+<a href="../../../struct.Reader.html" title="crate::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 has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#98-108">source</a><a href="#method.blocking_read" class="anchor">§</a><h4 class="code-header [...]
+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 has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/backend.rs.html#116-120">source</a><a href="#method.blocking_write" class="anchor">§</a><h4 class="code-header">fn <a href="../../trait.Accessor.html#method.blocking_write" clas [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Backend%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Backend%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Backend%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Backend%3CS%3E" class="anchor">§</a> [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Backend%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Backend%3CS%3E" class="anchor">§</a> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Backend%3CS%3E" class="impl has-srclink"><a href="#impl-Pointable-for-Backend%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Backend%3CS%3E" class="impl has-srclink"><a href="#impl-Pointable-for-Backend%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-reso [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-reso [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/adapters/kv/struct.Metadata.html b/docs/rust/opendal/raw/adapters/kv/struct.Metadata.html
index d68486f9..a4056e11 100644
--- a/docs/rust/opendal/raw/adapters/kv/struct.Metadata.html
+++ b/docs/rust/opendal/raw/adapters/kv/struct.Metadata.html
@@ -1,14 +1,14 @@
 <!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="Metadata for this key value accessor."><meta name="keywords" content="rust, rustlang, rust-lang, Metadata"><title>Metadata in opendal::raw::adapters::kv - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b1 [...]
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Metadata" class="impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#141-169">source</a><a href="#impl-Metadata" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Me [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Metadata" class="impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#141-169">source</a><a href="#impl-Metadata" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Me [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.scheme" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#156-158">source</a><h4 class="code-header">pub fn <a href="#method.scheme" class="fn">scheme</a>(&amp;self) -&gt; <a class="enum" href="../../../enum.Scheme.html" title="enum opendal::Scheme">Scheme</a></h4></section></summary><div class="docblock"><p>Get the scheme.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#161-163">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Get the name.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#161-163">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Get the name.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.capabilities" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#166-168">source</a><h4 class="code-header">pub fn <a href="#method.capabilities" class="fn">capabilities</a>(&amp;self) -&gt; FlagSet&lt;<a class="enum" href="../../enum.AccessorCapability.html" title="enum opendal::raw::AccessorCapability">AccessorCapability</a>&gt;</h4></se [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-From%3CMetadata%3E-for-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#171-180">source</a><a href="#impl-From%3CMetadata%3E- [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-From%3CMetadata%3E-for-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#171-180">source</a><a href="#impl-From%3CMetadata%3E- [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Metadata" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Metadata" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Metadata" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Metadata" class="anchor">§</a><h3 class="c [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Metadata" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Metadata" class="anchor">§</a><h3 class="c [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Metadata" class="impl has-srclink"><a href="#impl-Pointable-for-Metadata" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Metadata" class="impl has-srclink"><a href="#impl-Pointable-for-Metadata" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-reso [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-reso [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/adapters/kv/trait.Adapter.html b/docs/rust/opendal/raw/adapters/kv/trait.Adapter.html
index 1db1efd8..95de6f68 100644
--- a/docs/rust/opendal/raw/adapters/kv/trait.Adapter.html
+++ b/docs/rust/opendal/raw/adapters/kv/trait.Adapter.html
@@ -1,40 +1,40 @@
-<!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="KvAdapter is the adapter to underlying kv services."><meta name="keywords" content="rust, rustlang, rust-lang, Adapter"><title>Adapter in opendal::raw::adapters::kv - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regul [...]
+<!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="KvAdapter is the adapter to underlying kv services."><meta name="keywords" content="rust, rustlang, rust-lang, Adapter"><title>Adapter in opendal::raw::adapters::kv - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regul [...]
     fn <a href="#tymethod.metadata" class="fn">metadata</a>(&amp;self) -&gt; <a class="struct" href="struct.Metadata.html" title="struct opendal::raw::adapters::kv::Metadata">Metadata</a>;
-<span class="item-spacer"></span>    fn <a href="#tymethod.get" class="fn">get</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/pin/struct.Pin.html" title="struct core::pin: [...]
-<span class="item-spacer"></span>    fn <a href="#tymethod.set" class="fn">set</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value: &amp;'life2 [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/st [...]
-<span class="item-spacer"></span>    fn <a href="#tymethod.delete" class="fn">delete</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/pin/struct.Pin.html" title="struct core [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.get" class="fn">get</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/pin/struct.Pin.html" title="struct core::pin: [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.set" class="fn">set</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value: &amp;'life2 [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/st [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.delete" class="fn">delete</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/pin/struct.Pin.html" title="struct core [...]
 
-    fn <a href="#method.blocking_get" class="fn">blocking_get</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/vec/struct.Vec.ht [...]
-<span class="item-spacer"></span>    fn <a href="#method.blocking_set" class="fn">blocking_set</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, value: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8.html">u8</a>]) -&gt; <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u [...]
-<span class="item-spacer"></span>    fn <a href="#method.blocking_delete" class="fn">blocking_delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>&gt; { ... }
-<span class="item-spacer"></span>    fn <a href="#method.scan" class="fn">scan</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/pin/struct.Pin.html" title="struct core::pin: [...]
+    fn <a href="#method.blocking_get" class="fn">blocking_get</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/vec/struct.Vec.ht [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_set" class="fn">blocking_set</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, value: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u8.html">u8</a>]) -&gt; <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_delete" class="fn">blocking_delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.unit.html">()</a>&gt; { ... }
+<span class="item-spacer"></span>    fn <a href="#method.scan" class="fn">scan</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/pin/struct.Pin.html" title="struct core::pin: [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.blocking_scan" class="fn">blocking_scan</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1. [...]
-<span class="item-spacer"></span>    fn <a href="#method.append" class="fn">append</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value: &amp;'life2 [<a class="primitive" href="https://doc.rust-lang.org/1.68. [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_scan" class="fn">blocking_scan</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1. [...]
+<span class="item-spacer"></span>    fn <a href="#method.append" class="fn">append</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value: &amp;'life2 [<a class="primitive" href="https://doc.rust-lang.org/1.68. [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.blocking_append" class="fn">blocking_append</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, value: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8.html">u8</a>]) -&gt; <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primi [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_append" class="fn">blocking_append</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, value: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u8.html">u8</a>]) -&gt; <a class="type" href="../../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primi [...]
 }</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>KvAdapter is the adapter to underlying kv services.</p>
 <p>By implement this trait, any kv service can work as an OpenDAL Service.</p>
 </div></details><h2 id="required-methods" class="small-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.metadata" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#35">source</a><h4 class="code-header">fn <a href="#tymethod.metadata" class="fn">metadata</a>(&amp;self) -&gt; <a class="struct" href [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#40">source</a><h4 class="code-header">fn <a href="#tymethod.get" class="fn">get</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitiv [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#40">source</a><h4 class="code-header">fn <a href="#tymethod.get" class="fn">get</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitiv [...]
 <ul>
 <li>return <code>Ok(None)</code> if this key is not exist.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.set" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#54">source</a><h4 class="code-header">fn <a href="#tymethod.set" class="fn">set</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/ [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.delete" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#70">source</a><h4 class="code-header">fn <a href="#tymethod.delete" class="fn">delete</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.set" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#54">source</a><h4 class="code-header">fn <a href="#tymethod.set" class="fn">set</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.delete" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#70">source</a><h4 class="code-header">fn <a href="#tymethod.delete" class="fn">delete</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std [...]
 <ul>
 <li>return <code>Ok(())</code> even if this key is not exist.</li>
 </ul>
-</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.blocking_get" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#43-51">source</a><h4 class="code-header">fn <a href="#method.blocking_get" class="fn">blocking_get</a>(&amp;self, path: &amp; [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_set" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#57-65">source</a><h4 class="code-header">fn <a href="#method.blocking_set" class="fn">blocking_set</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, value: &amp;[<a class="primitive" href="https://doc.rust-l [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_delete" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#75-83">source</a><h4 class="code-header">fn <a href="#method.blocking_delete" class="fn">blocking_delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../../../type.Result. [...]
+</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.blocking_get" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#43-51">source</a><h4 class="code-header">fn <a href="#method.blocking_get" class="fn">blocking_get</a>(&amp;self, path: &amp; [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_set" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#57-65">source</a><h4 class="code-header">fn <a href="#method.blocking_set" class="fn">blocking_set</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, value: &amp;[<a class="primitive" href="https://doc.rust-l [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_delete" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#75-83">source</a><h4 class="code-header">fn <a href="#method.blocking_delete" class="fn">blocking_delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../../../type.Result. [...]
 <ul>
 <li>return <code>Ok(())</code> even if this key is not exist.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#86-94">source</a><h4 class="code-header">fn <a href="#method.scan" class="fn">scan</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primit [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_scan" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#98-106">source</a><h4 class="code-header">fn <a href="#method.blocking_scan" class="fn">blocking_scan</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../../../type.Result.html" [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#86-94">source</a><h4 class="code-header">fn <a href="#method.scan" class="fn">scan</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primit [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_scan" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#98-106">source</a><h4 class="code-header">fn <a href="#method.blocking_scan" class="fn">blocking_scan</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../../../type.Result.html" [...]
 in blocking way.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.append" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#109-118">source</a><h4 class="code-header">fn <a href="#method.append" class="fn">append</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1 [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_append" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#122-131">source</a><h4 class="code-header">fn <a href="#method.blocking_append" class="fn">blocking_append</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, value: &amp;[<a class="primitive" href="https:/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.append" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#109-118">source</a><h4 class="code-header">fn <a href="#method.append" class="fn">append</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1 [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_append" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#122-131">source</a><h4 class="code-header">fn <a href="#method.blocking_append" class="fn">blocking_append</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, value: &amp;[<a class="primitive" href="https:/ [...]
 in blocking way.</p>
-</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../../implementors/opendal/raw/adapters/kv/api/trait.Adapter.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2 [...]
\ No newline at end of file
+</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../../implementors/opendal/raw/adapters/kv/api/trait.Adapter.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8 [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/constant.VERSION.html b/docs/rust/opendal/raw/constant.VERSION.html
index 8fe7f532..841cfe79 100644
--- a/docs/rust/opendal/raw/constant.VERSION.html
+++ b/docs/rust/opendal/raw/constant.VERSION.html
@@ -1,2 +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="VERSION is the compiled version of OpenDAL."><meta name="keywords" content="rust, rustlang, rust-lang, VERSION"><title>VERSION in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="VERSION is the compiled version of OpenDAL."><meta name="keywords" content="rust, rustlang, rust-lang, VERSION"><title>VERSION in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/enum.AccessorCapability.html b/docs/rust/opendal/raw/enum.AccessorCapability.html
index 4c06b0b1..58db0fd6 100644
--- a/docs/rust/opendal/raw/enum.AccessorCapability.html
+++ b/docs/rust/opendal/raw/enum.AccessorCapability.html
@@ -14,14 +14,14 @@
 </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>Add this capability if service supports <code>presign</code></p>
 </div><section id="variant.Blocking" class="variant"><a href="#variant.Blocking" class="anchor">§</a><h3 class="code-header">Blocking</h3></section><div class="docblock"><p>Add this capability if service supports <code>blocking</code></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>Add this capability if service supports <code>batch</code></p>
-</div></div><h2 id="trait-implementations" class="small-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-BitAnd%3CR%3E-for-AccessorCapability" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#524-542">source</a><a href="#impl-BitAnd%3CR%3E-for-AccessorCapability" class="anchor">§</a [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-AccessorCapability" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#524-542">source</a><a href="#impl-Rem%3CR%3E-for-AccessorCapability" class="anchor">§</a><h3 class="code-header">impl&lt;R:&nbsp;<a class="trait" href="https://doc.rust-lang.org/1.68.0 [...]
+</div></div><h2 id="trait-implementations" class="small-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-BitAnd%3CR%3E-for-AccessorCapability" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#524-542">source</a><a href="#impl-BitAnd%3CR%3E-for-AccessorCapability" class="anchor">§</a [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-AccessorCapability" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#524-542">source</a><a href="#impl-Rem%3CR%3E-for-AccessorCapability" class="anchor">§</a><h3 class="code-header">impl&lt;R:&nbsp;<a class="trait" href="https://doc.rust-lang.org/1.68.1 [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-AccessorCapability" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-AccessorCapability" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait  [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AccessorCapability" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AccessorCapability" class="ancho [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AccessorCapability" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AccessorCapability" class="ancho [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-AccessorCapability" class="impl has-srclink"><a href="#impl-Pointable-for-AccessorCapability" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALI [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-AccessorCapability" class="impl has-srclink"><a href="#impl-Pointable-for-AccessorCapability" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALI [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/enum.AccessorHint.html b/docs/rust/opendal/raw/enum.AccessorHint.html
index 4aec110d..f3ee30b4 100644
--- a/docs/rust/opendal/raw/enum.AccessorHint.html
+++ b/docs/rust/opendal/raw/enum.AccessorHint.html
@@ -8,14 +8,14 @@
 <p>We can reuse the same reader instead of always creating new one.</p>
 </div><section id="variant.ReadStreamable" class="variant"><a href="#variant.ReadStreamable" class="anchor">§</a><h3 class="code-header">ReadStreamable</h3></section><div class="docblock"><p>Read streamable means the underlying read is streamable.</p>
 <p>It’s better to use stream to reading data.</p>
-</div></div><h2 id="trait-implementations" class="small-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-BitAnd%3CR%3E-for-AccessorHint" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#544-560">source</a><a href="#impl-BitAnd%3CR%3E-for-AccessorHint" class="anchor">§</a><h3 class=" [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-AccessorHint" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#544-560">source</a><a href="#impl-Rem%3CR%3E-for-AccessorHint" class="anchor">§</a><h3 class="code-header">impl&lt;R:&nbsp;<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/conver [...]
+</div></div><h2 id="trait-implementations" class="small-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-BitAnd%3CR%3E-for-AccessorHint" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#544-560">source</a><a href="#impl-BitAnd%3CR%3E-for-AccessorHint" class="anchor">§</a><h3 class=" [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-AccessorHint" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#544-560">source</a><a href="#impl-Rem%3CR%3E-for-AccessorHint" class="anchor">§</a><h3 class="code-header">impl&lt;R:&nbsp;<a class="trait" href="https://doc.rust-lang.org/1.68.1/core/conver [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-AccessorHint" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-AccessorHint" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AccessorHint" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AccessorHint" class="anchor">§</a><h3  [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AccessorHint" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AccessorHint" class="anchor">§</a><h3  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-AccessorHint" class="impl has-srclink"><a href="#impl-Pointable-for-AccessorHint" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-AccessorHint" class="impl has-srclink"><a href="#impl-Pointable-for-AccessorHint" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/enum.AsyncBody.html b/docs/rust/opendal/raw/enum.AsyncBody.html
index 7798d0ae..c0878c84 100644
--- a/docs/rust/opendal/raw/enum.AsyncBody.html
+++ b/docs/rust/opendal/raw/enum.AsyncBody.html
@@ -1,19 +1,19 @@
 <!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="Body used in async HTTP requests."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncBody"><title>AsyncBody in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
     Empty,
     Bytes(Bytes),
-    Multipart(<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,&nbsp;Bytes),
+    Multipart(<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,&nbsp;Bytes),
 }</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Body used in async HTTP requests.</p>
 </div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Empty" class="variant"><a href="#variant.Empty" class="anchor">§</a><h3 class="code-header">Empty</h3></section><div class="docblock"><p>An empty body.</p>
 </div><section id="variant.Bytes" class="variant"><a href="#variant.Bytes" class="anchor">§</a><h3 class="code-header">Bytes(Bytes)</h3></section><div class="docblock"><p>Body with bytes.</p>
-</div><section id="variant.Multipart" class="variant"><a href="#variant.Multipart" class="anchor">§</a><h3 class="code-header">Multipart(<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,&nbsp;Bytes)</h3></section><div class="docblock"><p>Body with a multipart field.</p>
+</div><section id="variant.Multipart" class="variant"><a href="#variant.Multipart" class="anchor">§</a><h3 class="code-header">Multipart(<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,&nbsp;Bytes)</h3></section><div class="docblock"><p>Body with a multipart field.</p>
 <p>If input with this field, we will goto the internal multipart
 handle logic.</p>
-</div></div><h2 id="trait-implementations" class="small-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-Default-for-AsyncBody" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#99-103">source</a><a href="#impl-Default-for-AsyncBody" class="anchor">§</a><h3 class="code-header"> [...]
+</div></div><h2 id="trait-implementations" class="small-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-Default-for-AsyncBody" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#99-103">source</a><a href="#impl-Default-for-AsyncBody" class="anchor">§</a><h3 class="code-header"> [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-AsyncBody" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-AsyncBody" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrumen [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AsyncBody" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AsyncBody" class="anchor">§</a><h3 class= [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AsyncBody" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AsyncBody" class="anchor">§</a><h3 class= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-AsyncBody" class="impl has-srclink"><a href="#impl-Pointable-for-AsyncBody" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-AsyncBody" class="impl has-srclink"><a href="#impl-Pointable-for-AsyncBody" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/enum.BatchedResults.html b/docs/rust/opendal/raw/enum.BatchedResults.html
index 7d0291f6..a5795dfc 100644
--- a/docs/rust/opendal/raw/enum.BatchedResults.html
+++ b/docs/rust/opendal/raw/enum.BatchedResults.html
@@ -1,17 +1,17 @@
 <!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="Batch results of `batch` operations."><meta name="keywords" content="rust, rustlang, rust-lang, BatchedResults"><title>BatchedResults in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.t [...]
-    Delete(<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.68.0/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>&lt;<a class="struct" href="struct.RpDelete.html" title="struct opendal::raw::RpDelete">RpDelete</a>&gt;)&gt;),
+    Delete(<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.68.1/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>&lt;<a class="struct" href="struct.RpDelete.html" title="struct opendal::raw::RpDelete">RpDelete</a>&gt;)&gt;),
 }</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Batch results of <code>batch</code> operations.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Delete" class="variant"><a href="#variant.Delete" class="anchor">§</a><h3 class="code-header">Delete(<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title= [...]
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BatchedResults" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#161-193">source</a><a href="#impl-BatchedResults" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.BatchedResults.h [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#171-176">source</a><h4 class="code-header">pub fn <a href="#method.is_empty" class="fn">is_empty</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return if given results is empty.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.len_ok" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#179-184">source</a><h4 class="code-header">pub fn <a href="#method.len_ok" class="fn">len_ok</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Return the length of ok results.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.len_err" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#187-192">source</a><h4 class="code-header">pub fn <a href="#method.len_err" class="fn">len_err</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Return the length of error results.</p>
-</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BatchedResults" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BatchedResults" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/panic/unwind_safe/trait.R [...]
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Delete" class="variant"><a href="#variant.Delete" class="anchor">§</a><h3 class="code-header">Delete(<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title= [...]
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BatchedResults" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#161-193">source</a><a href="#impl-BatchedResults" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.BatchedResults.h [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#171-176">source</a><h4 class="code-header">pub fn <a href="#method.is_empty" class="fn">is_empty</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return if given results is empty.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.len_ok" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#179-184">source</a><h4 class="code-header">pub fn <a href="#method.len_ok" class="fn">len_ok</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Return the length of ok results.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.len_err" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#187-192">source</a><h4 class="code-header">pub fn <a href="#method.len_err" class="fn">len_err</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Return the length of error results.</p>
+</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BatchedResults" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BatchedResults" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/panic/unwind_safe/trait.R [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-BatchedResults" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-BatchedResults" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BatchedResults" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BatchedResults" class="anchor">§</a> [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BatchedResults" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BatchedResults" class="anchor">§</a> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-BatchedResults" class="impl has-srclink"><a href="#impl-Pointable-for-BatchedResults" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-BatchedResults" class="impl has-srclink"><a href="#impl-Pointable-for-BatchedResults" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/enum.Body.html b/docs/rust/opendal/raw/enum.Body.html
index 7e4c3c6f..376acd6b 100644
--- a/docs/rust/opendal/raw/enum.Body.html
+++ b/docs/rust/opendal/raw/enum.Body.html
@@ -1,32 +1,32 @@
 <!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="Body used in blocking HTTP requests."><meta name="keywords" content="rust, rustlang, rust-lang, Body"><title>Body in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel= [...]
     Empty,
     Bytes(Bytes),
-    Reader(<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.68.0/std/io/trait.Read.html" title="trait std::io::Read">Read</a> + <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>&gt;),
+    Reader(<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.68.1/std/io/trait.Read.html" title="trait std::io::Read">Read</a> + <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>&gt;),
 }</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Body used in blocking HTTP requests.</p>
 </div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Empty" class="variant"><a href="#variant.Empty" class="anchor">§</a><h3 class="code-header">Empty</h3></section><div class="docblock"><p>An empty body.</p>
 </div><section id="variant.Bytes" class="variant"><a href="#variant.Bytes" class="anchor">§</a><h3 class="code-header">Bytes(Bytes)</h3></section><div class="docblock"><p>Body with bytes.</p>
-</div><section id="variant.Reader" class="variant"><a href="#variant.Reader" class="anchor">§</a><h3 class="code-header">Reader(<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.68.0/std/io/trait.Read.html" title="trait std::io::Read">Read</a> + <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Send.html" title="trait core::marker: [...]
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Body" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#54-67">source</a><a href="#impl-Body" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Body.html" title="enum open [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Default-for-Body" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#48-52">source</a><a href="#impl-Default-for-Body" class="anchor">§</a><h3 class [...]
-how many bytes were read. <a href="https://doc.rust-lang.org/1.68.0/std/io/trait.Read.html#tymethod.read">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_vectored" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.36.0">1.36.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/std/io/mod.rs.html#645">source</a></span><a href="#method.read_vector [...]
-implementation. <a href="https://doc.rust-lang.org/1.68.0/std/io/trait.Read.html#method.is_read_vectored">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/std/io/mod.rs.html#709">source</a></span><a href="#method.read_to_end" cl [...]
+</div><section id="variant.Reader" class="variant"><a href="#variant.Reader" class="anchor">§</a><h3 class="code-header">Reader(<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.68.1/std/io/trait.Read.html" title="trait std::io::Read">Read</a> + <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Send.html" title="trait core::marker: [...]
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Body" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#54-67">source</a><a href="#impl-Body" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Body.html" title="enum open [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Default-for-Body" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#48-52">source</a><a href="#impl-Default-for-Body" class="anchor">§</a><h3 class [...]
+how many bytes were read. <a href="https://doc.rust-lang.org/1.68.1/std/io/trait.Read.html#tymethod.read">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_vectored" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.36.0">1.36.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/std/io/mod.rs.html#645">source</a></span><a href="#method.read_vector [...]
+implementation. <a href="https://doc.rust-lang.org/1.68.1/std/io/trait.Read.html#method.is_read_vectored">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/std/io/mod.rs.html#709">source</a></span><a href="#method.read_to_end" cl [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Body" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Body" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Instrum [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Body" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Body" class="anchor">§</a><h3 class="code-head [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Body" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Body" class="anchor">§</a><h3 class="code-head [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Body" class="impl has-srclink"><a href="#impl-Pointable-for-Body" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a><h4  [...]
-the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64" class="method trait-impl has-srclink"><a href="#method.read_f64" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f64</a>&lt;T&gt;(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/ [...]
-the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u16_into" class="method trait-impl has-srclink"><a href="#method.read_u16_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u16_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u16.html">u16</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/re [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u32_into" class="method trait-impl has-srclink"><a href="#method.read_u32_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u32_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u32.html">u32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Resul [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u64_into" class="method trait-impl has-srclink"><a href="#method.read_u64_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u64_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u64.html">u64</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Resul [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u128_into" class="method trait-impl has-srclink"><a href="#method.read_u128_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u128_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u128.html">u128</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum. [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i8_into" class="method trait-impl has-srclink"><a href="#method.read_i8_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i8_into</a>(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.i8.html">i8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title= [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i32_into" class="method trait-impl has-srclink"><a href="#method.read_i32_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i32_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.i32.html">i32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Resul [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i64_into" class="method trait-impl has-srclink"><a href="#method.read_i64_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i64_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.i64.html">i64</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Resul [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i128_into" class="method trait-impl has-srclink"><a href="#method.read_i128_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i128_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.i128.html">i128</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum. [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32_into" class="method trait-impl has-srclink"><a href="#method.read_f32_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f32_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.f32.html">f32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Resul [...]
-point numbers from the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32_into_unchecked" class="method trait-impl has-srclink"><a href="#method.read_f32_into_unchecked" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f32_into_unchecked</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.f32.html">f32</a>]) -&gt; <a class="enu [...]
-point numbers from the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64_into_unchecked" class="method trait-impl has-srclink"><a href="#method.read_f64_into_unchecked" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f64_into_unchecked</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.f64.html">f64</a>]) -&gt; <a class="enu [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Body" class="impl has-srclink"><a href="#impl-Pointable-for-Body" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a><h4  [...]
+the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64" class="method trait-impl has-srclink"><a href="#method.read_f64" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f64</a>&lt;T&gt;(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/ [...]
+the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u16_into" class="method trait-impl has-srclink"><a href="#method.read_u16_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u16_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u16.html">u16</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/re [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u32_into" class="method trait-impl has-srclink"><a href="#method.read_u32_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u32_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u32.html">u32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Resul [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u64_into" class="method trait-impl has-srclink"><a href="#method.read_u64_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u64_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u64.html">u64</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Resul [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u128_into" class="method trait-impl has-srclink"><a href="#method.read_u128_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u128_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u128.html">u128</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum. [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i8_into" class="method trait-impl has-srclink"><a href="#method.read_i8_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i8_into</a>(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.i8.html">i8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Result.html" title= [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i32_into" class="method trait-impl has-srclink"><a href="#method.read_i32_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i32_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.i32.html">i32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Resul [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i64_into" class="method trait-impl has-srclink"><a href="#method.read_i64_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i64_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.i64.html">i64</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Resul [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i128_into" class="method trait-impl has-srclink"><a href="#method.read_i128_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i128_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.i128.html">i128</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum. [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32_into" class="method trait-impl has-srclink"><a href="#method.read_f32_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f32_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.f32.html">f32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Resul [...]
+point numbers from the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32_into_unchecked" class="method trait-impl has-srclink"><a href="#method.read_f32_into_unchecked" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f32_into_unchecked</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.f32.html">f32</a>]) -&gt; <a class="enu [...]
+point numbers from the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64_into_unchecked" class="method trait-impl has-srclink"><a href="#method.read_f64_into_unchecked" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f64_into_unchecked</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.f64.html">f64</a>]) -&gt; <a class="enu [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/enum.Operation.html b/docs/rust/opendal/raw/enum.Operation.html
index 20dea8b2..68bf00f0 100644
--- a/docs/rust/opendal/raw/enum.Operation.html
+++ b/docs/rust/opendal/raw/enum.Operation.html
@@ -35,15 +35,15 @@ pub enum Operation {
 </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="crate::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="crate::raw::Accessor::blocking_list"><code>crate::raw::Accessor::blocking_list</code></a></p>
 </div><section id="variant.BlockingScan" class="variant"><a href="#variant.BlockingScan" class="anchor">§</a><h3 class="code-header">BlockingScan</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.blocking_scan" title="crate::raw::Accessor::blocking_scan"><code>crate::raw::Accessor::blocking_scan</code></a></p>
-</div></div><h2 id="implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/operation.rs.html#61-66">source</a><a href="#impl-Operation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Operation.html" title= [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/operation.rs.html#22">source</a><a href="#impl-Clone-for-Operation" class="anchor">§</a><h3 class=" [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-Operation" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/operation.rs.html#22">source</a><a href="#impl-Copy-for-Operation" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum. [...]
+</div></div><h2 id="implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/operation.rs.html#61-66">source</a><a href="#impl-Operation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Operation.html" title= [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/operation.rs.html#22">source</a><a href="#impl-Clone-for-Operation" class="anchor">§</a><h3 class=" [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-Operation" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/operation.rs.html#22">source</a><a href="#impl-Copy-for-Operation" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum. [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Operation" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Operation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrumen [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Operation" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Operation" class="anchor">§</a><h3 class= [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Operation" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Operation" class="anchor">§</a><h3 class= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Operation" class="impl has-srclink"><a href="#impl-Pointable-for-Operation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Operation" class="impl has-srclink"><a href="#impl-Pointable-for-Operation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.build_abs_path.html b/docs/rust/opendal/raw/fn.build_abs_path.html
index b9f41a00..dc659ba8 100644
--- a/docs/rust/opendal/raw/fn.build_abs_path.html
+++ b/docs/rust/opendal/raw/fn.build_abs_path.html
@@ -1,7 +1,7 @@
-<!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="build_abs_path will build an absolute path with root."><meta name="keywords" content="rust, rustlang, rust-lang, build_abs_path"><title>build_abs_path in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-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="build_abs_path will build an absolute path with root."><meta name="keywords" content="rust, rustlang, rust-lang, build_abs_path"><title>build_abs_path in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1 [...]
 <h2 id="rules"><a href="#rules">Rules</a></h2>
 <ul>
 <li>Input root MUST be the format like <code>/abc/def/</code></li>
 <li>Output will be the format like <code>path/to/root/path</code>.</li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.build_rel_path.html b/docs/rust/opendal/raw/fn.build_rel_path.html
index 8681cdc6..bde5b417 100644
--- a/docs/rust/opendal/raw/fn.build_rel_path.html
+++ b/docs/rust/opendal/raw/fn.build_rel_path.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="build_rel_path will build a relative path towards root."><meta name="keywords" content="rust, rustlang, rust-lang, build_rel_path"><title>build_rel_path in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular [...]
+<!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="build_rel_path will build a relative path towards root."><meta name="keywords" content="rust, rustlang, rust-lang, build_rel_path"><title>build_rel_path in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular [...]
 <h2 id="rules"><a href="#rules">Rules</a></h2>
 <ul>
 <li>Input root MUST be the format like <code>/abc/def/</code></li>
 <li>Input path MUST start with root like <code>/abc/def/path/to/file</code></li>
 <li>Output will be the format like <code>path/to/file</code>.</li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.build_rooted_abs_path.html b/docs/rust/opendal/raw/fn.build_rooted_abs_path.html
index 162d6303..bf597ade 100644
--- a/docs/rust/opendal/raw/fn.build_rooted_abs_path.html
+++ b/docs/rust/opendal/raw/fn.build_rooted_abs_path.html
@@ -1,7 +1,7 @@
-<!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="build_rooted_abs_path will build an absolute path with root."><meta name="keywords" content="rust, rustlang, rust-lang, build_rooted_abs_path"><title>build_rooted_abs_path in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/S [...]
+<!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="build_rooted_abs_path will build an absolute path with root."><meta name="keywords" content="rust, rustlang, rust-lang, build_rooted_abs_path"><title>build_rooted_abs_path in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/S [...]
 <h2 id="rules"><a href="#rules">Rules</a></h2>
 <ul>
 <li>Input root MUST be the format like <code>/abc/def/</code></li>
 <li>Output will be the format like <code>/path/to/root/path</code>.</li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.format_authorization_by_basic.html b/docs/rust/opendal/raw/fn.format_authorization_by_basic.html
index dc0ecff8..81ef5871 100644
--- a/docs/rust/opendal/raw/fn.format_authorization_by_basic.html
+++ b/docs/rust/opendal/raw/fn.format_authorization_by_basic.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="format authorization header by basic auth."><meta name="keywords" content="rust, rustlang, rust-lang, format_authorization_by_basic"><title>format_authorization_by_basic in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/Sou [...]
+<!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="format authorization header by basic auth."><meta name="keywords" content="rust, rustlang, rust-lang, format_authorization_by_basic"><title>format_authorization_by_basic in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/Sou [...]
 <h2 id="errors"><a href="#errors">Errors</a></h2>
 <p>If input username is empty, function will return an unexpected error.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.format_authorization_by_bearer.html b/docs/rust/opendal/raw/fn.format_authorization_by_bearer.html
index 52fbc58b..aaa30bc2 100644
--- a/docs/rust/opendal/raw/fn.format_authorization_by_bearer.html
+++ b/docs/rust/opendal/raw/fn.format_authorization_by_bearer.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="format authorization header by bearer token."><meta name="keywords" content="rust, rustlang, rust-lang, format_authorization_by_bearer"><title>format_authorization_by_bearer in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files [...]
+<!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="format authorization header by bearer token."><meta name="keywords" content="rust, rustlang, rust-lang, format_authorization_by_bearer"><title>format_authorization_by_bearer in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files [...]
 <h2 id="errors"><a href="#errors">Errors</a></h2>
 <p>If input token is empty, function will return an unexpected error.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.format_content_md5.html b/docs/rust/opendal/raw/fn.format_content_md5.html
index ea3f4728..e5ebdee4 100644
--- a/docs/rust/opendal/raw/fn.format_content_md5.html
+++ b/docs/rust/opendal/raw/fn.format_content_md5.html
@@ -1,2 +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="format content md5 header by given input."><meta name="keywords" content="rust, rustlang, rust-lang, format_content_md5"><title>format_content_md5 in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d5 [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="format content md5 header by given input."><meta name="keywords" content="rust, rustlang, rust-lang, format_content_md5"><title>format_content_md5 in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d5 [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.get_basename.html b/docs/rust/opendal/raw/fn.get_basename.html
index c8004a28..7f6dd218 100644
--- a/docs/rust/opendal/raw/fn.get_basename.html
+++ b/docs/rust/opendal/raw/fn.get_basename.html
@@ -1,2 +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="Get basename from path."><meta name="keywords" content="rust, rustlang, rust-lang, get_basename"><title>get_basename in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Get basename from path."><meta name="keywords" content="rust, rustlang, rust-lang, get_basename"><title>get_basename in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.get_parent.html b/docs/rust/opendal/raw/fn.get_parent.html
index 9d667e51..e6ba9866 100644
--- a/docs/rust/opendal/raw/fn.get_parent.html
+++ b/docs/rust/opendal/raw/fn.get_parent.html
@@ -1,2 +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="Get parent from path."><meta name="keywords" content="rust, rustlang, rust-lang, get_parent"><title>get_parent in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pr [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Get parent from path."><meta name="keywords" content="rust, rustlang, rust-lang, get_parent"><title>get_parent in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pr [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.new_json_deserialize_error.html b/docs/rust/opendal/raw/fn.new_json_deserialize_error.html
index 80f318a4..34fdbd73 100644
--- a/docs/rust/opendal/raw/fn.new_json_deserialize_error.html
+++ b/docs/rust/opendal/raw/fn.new_json_deserialize_error.html
@@ -1,2 +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="Parse json deserialize error into opendal::Error."><meta name="keywords" content="rust, rustlang, rust-lang, new_json_deserialize_error"><title>new_json_deserialize_error in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/So [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.new_json_serialize_error.html b/docs/rust/opendal/raw/fn.new_json_serialize_error.html
index 44118887..8fbcbc15 100644
--- a/docs/rust/opendal/raw/fn.new_json_serialize_error.html
+++ b/docs/rust/opendal/raw/fn.new_json_serialize_error.html
@@ -1,2 +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="Parse json serialize error into opendal::Error."><meta name="keywords" content="rust, rustlang, rust-lang, new_json_serialize_error"><title>new_json_serialize_error in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSe [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.new_request_build_error.html b/docs/rust/opendal/raw/fn.new_request_build_error.html
index c3e7d944..b19f3a77 100644
--- a/docs/rust/opendal/raw/fn.new_request_build_error.html
+++ b/docs/rust/opendal/raw/fn.new_request_build_error.html
@@ -1,2 +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="Create a new error happened during building request."><meta name="keywords" content="rust, rustlang, rust-lang, new_request_build_error"><title>new_request_build_error in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/Sourc [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.new_request_sign_error.html b/docs/rust/opendal/raw/fn.new_request_sign_error.html
index b0142814..b13e614d 100644
--- a/docs/rust/opendal/raw/fn.new_request_sign_error.html
+++ b/docs/rust/opendal/raw/fn.new_request_sign_error.html
@@ -1,2 +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="Create a new error happened during signing request."><meta name="keywords" content="rust, rustlang, rust-lang, new_request_sign_error"><title>new_request_sign_error in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSe [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.new_xml_deserialize_error.html b/docs/rust/opendal/raw/fn.new_xml_deserialize_error.html
index c792c36e..1405883a 100644
--- a/docs/rust/opendal/raw/fn.new_xml_deserialize_error.html
+++ b/docs/rust/opendal/raw/fn.new_xml_deserialize_error.html
@@ -1,2 +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="Parse xml deserialize error into opendal::Error."><meta name="keywords" content="rust, rustlang, rust-lang, new_xml_deserialize_error"><title>new_xml_deserialize_error in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/Sourc [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.normalize_path.html b/docs/rust/opendal/raw/fn.normalize_path.html
index 26e36984..ba0c884a 100644
--- a/docs/rust/opendal/raw/fn.normalize_path.html
+++ b/docs/rust/opendal/raw/fn.normalize_path.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="Make sure all operation are constructed by normalized path:"><meta name="keywords" content="rust, rustlang, rust-lang, normalize_path"><title>normalize_path in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Reg [...]
+<!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="Make sure all operation are constructed by normalized path:"><meta name="keywords" content="rust, rustlang, rust-lang, normalize_path"><title>normalize_path in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Reg [...]
 <ul>
 <li>Path endswith <code>/</code> means it’s a dir path.</li>
 <li>Otherwise, it’s a file path.</li>
@@ -10,4 +10,4 @@
 <li>Internal // will be replaced by /: <code>abc///def</code> =&gt; <code>abc/def</code></li>
 <li>Empty path will be <code>/</code>: `` =&gt; <code>/</code></li>
 </ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.normalize_root.html b/docs/rust/opendal/raw/fn.normalize_root.html
index c9418d28..aae301d9 100644
--- a/docs/rust/opendal/raw/fn.normalize_root.html
+++ b/docs/rust/opendal/raw/fn.normalize_root.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="Make sure root is normalized to style like `/abc/def/`."><meta name="keywords" content="rust, rustlang, rust-lang, normalize_root"><title>normalize_root in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular [...]
+<!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="Make sure root is normalized to style like `/abc/def/`."><meta name="keywords" content="rust, rustlang, rust-lang, normalize_root"><title>normalize_root in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular [...]
 <h2 id="normalize-rules"><a href="#normalize-rules">Normalize Rules</a></h2>
 <ul>
 <li>All whitespace will be trimmed: <code>abc/def</code> =&gt; <code>abc/def</code></li>
@@ -9,4 +9,4 @@
 <li>Add trailing <code>/</code> if not ends with: <code>/abc</code> =&gt; <code>/abc/</code></li>
 </ul>
 <p>Finally, we will got path like <code>/path/to/root/</code>.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_content_disposition.html b/docs/rust/opendal/raw/fn.parse_content_disposition.html
index 94e973db..3fec281a 100644
--- a/docs/rust/opendal/raw/fn.parse_content_disposition.html
+++ b/docs/rust/opendal/raw/fn.parse_content_disposition.html
@@ -1,2 +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="Parse Content-Disposition for header map"><meta name="keywords" content="rust, rustlang, rust-lang, parse_content_disposition"><title>parse_content_disposition in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4- [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Parse Content-Disposition for header map"><meta name="keywords" content="rust, rustlang, rust-lang, parse_content_disposition"><title>parse_content_disposition in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4- [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_content_length.html b/docs/rust/opendal/raw/fn.parse_content_length.html
index 4ccbc160..c1f5329a 100644
--- a/docs/rust/opendal/raw/fn.parse_content_length.html
+++ b/docs/rust/opendal/raw/fn.parse_content_length.html
@@ -1,2 +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="Parse content length from header map."><meta name="keywords" content="rust, rustlang, rust-lang, parse_content_length"><title>parse_content_length in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d5 [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Parse content length from header map."><meta name="keywords" content="rust, rustlang, rust-lang, parse_content_length"><title>parse_content_length in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d5 [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_content_md5.html b/docs/rust/opendal/raw/fn.parse_content_md5.html
index 0a6aecb9..25b6fe22 100644
--- a/docs/rust/opendal/raw/fn.parse_content_md5.html
+++ b/docs/rust/opendal/raw/fn.parse_content_md5.html
@@ -1,2 +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="Parse content md5 from header map."><meta name="keywords" content="rust, rustlang, rust-lang, parse_content_md5"><title>parse_content_md5 in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Parse content md5 from header map."><meta name="keywords" content="rust, rustlang, rust-lang, parse_content_md5"><title>parse_content_md5 in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_content_range.html b/docs/rust/opendal/raw/fn.parse_content_range.html
index e2a52a6a..9a3c6a97 100644
--- a/docs/rust/opendal/raw/fn.parse_content_range.html
+++ b/docs/rust/opendal/raw/fn.parse_content_range.html
@@ -1,2 +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="Parse content range from header map."><meta name="keywords" content="rust, rustlang, rust-lang, parse_content_range"><title>parse_content_range in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Parse content range from header map."><meta name="keywords" content="rust, rustlang, rust-lang, parse_content_range"><title>parse_content_range in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_content_type.html b/docs/rust/opendal/raw/fn.parse_content_type.html
index a2788b0d..f48163f7 100644
--- a/docs/rust/opendal/raw/fn.parse_content_type.html
+++ b/docs/rust/opendal/raw/fn.parse_content_type.html
@@ -1,2 +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="Parse content type from header map."><meta name="keywords" content="rust, rustlang, rust-lang, parse_content_type"><title>parse_content_type in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176 [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Parse content type from header map."><meta name="keywords" content="rust, rustlang, rust-lang, parse_content_type"><title>parse_content_type in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176 [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_error_response.html b/docs/rust/opendal/raw/fn.parse_error_response.html
index ecac3c66..38417c6b 100644
--- a/docs/rust/opendal/raw/fn.parse_error_response.html
+++ b/docs/rust/opendal/raw/fn.parse_error_response.html
@@ -2,4 +2,4 @@
 <h2 id="note"><a href="#note">NOTE</a></h2>
 <p>Please only use this for parsing error response hence it will read the
 entire body into memory.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_etag.html b/docs/rust/opendal/raw/fn.parse_etag.html
index 35fdba6d..a0df69bf 100644
--- a/docs/rust/opendal/raw/fn.parse_etag.html
+++ b/docs/rust/opendal/raw/fn.parse_etag.html
@@ -1,2 +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="Parse etag from header map."><meta name="keywords" content="rust, rustlang, rust-lang, parse_etag"><title>parse_etag in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Parse etag from header map."><meta name="keywords" content="rust, rustlang, rust-lang, parse_etag"><title>parse_etag in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_into_metadata.html b/docs/rust/opendal/raw/fn.parse_into_metadata.html
index 197babe1..d8f3592c 100644
--- a/docs/rust/opendal/raw/fn.parse_into_metadata.html
+++ b/docs/rust/opendal/raw/fn.parse_into_metadata.html
@@ -1,6 +1,6 @@
-<!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="parse_into_metadata will parse standards http headers into Metadata."><meta name="keywords" content="rust, rustlang, rust-lang, parse_into_metadata"><title>parse_into_metadata in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.fil [...]
+<!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="parse_into_metadata will parse standards http headers into Metadata."><meta name="keywords" content="rust, rustlang, rust-lang, parse_into_metadata"><title>parse_into_metadata in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.fil [...]
 <h2 id="notes"><a href="#notes">Notes</a></h2>
 <p>parse_into_metadata only handles the standard behavior of http
 headers. If services have their own logic, they should update the parsed
 metadata on demand.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_last_modified.html b/docs/rust/opendal/raw/fn.parse_last_modified.html
index bc583a88..6a921829 100644
--- a/docs/rust/opendal/raw/fn.parse_last_modified.html
+++ b/docs/rust/opendal/raw/fn.parse_last_modified.html
@@ -1,2 +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="Parse last modified from header map."><meta name="keywords" content="rust, rustlang, rust-lang, parse_last_modified"><title>parse_last_modified in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Parse last modified from header map."><meta name="keywords" content="rust, rustlang, rust-lang, parse_last_modified"><title>parse_last_modified in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_location.html b/docs/rust/opendal/raw/fn.parse_location.html
index 88d766b0..ac457148 100644
--- a/docs/rust/opendal/raw/fn.parse_location.html
+++ b/docs/rust/opendal/raw/fn.parse_location.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="Parse redirect location from header map"><meta name="keywords" content="rust, rustlang, rust-lang, parse_location"><title>parse_location in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f7 [...]
+<!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="Parse redirect location from header map"><meta name="keywords" content="rust, rustlang, rust-lang, parse_location"><title>parse_location in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f7 [...]
 <h2 id="note"><a href="#note">Note</a></h2>
 <p>The returned value maybe a relative path, like <code>/index.html</code>, <code>/robots.txt</code>, etc.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.percent_encode_path.html b/docs/rust/opendal/raw/fn.percent_encode_path.html
index 4827aac1..ab9976b7 100644
--- a/docs/rust/opendal/raw/fn.percent_encode_path.html
+++ b/docs/rust/opendal/raw/fn.percent_encode_path.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="percent_encode_path will do percent encoding for http encode path."><meta name="keywords" content="rust, rustlang, rust-lang, percent_encode_path"><title>percent_encode_path in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files [...]
+<!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="percent_encode_path will do percent encoding for http encode path."><meta name="keywords" content="rust, rustlang, rust-lang, percent_encode_path"><title>percent_encode_path in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files [...]
 <p>Follows <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent">encodeURIComponent</a> which will encode all non-ASCII characters except <code>A-Z a-z 0-9 - _ . ! ~ * ' ( )</code></p>
 <p>There is a special case for <code>/</code> in path: we will allow <code>/</code> in path as
 required by storage services like s3.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.validate_path.html b/docs/rust/opendal/raw/fn.validate_path.html
index ac8306de..1fbe6ed9 100644
--- a/docs/rust/opendal/raw/fn.validate_path.html
+++ b/docs/rust/opendal/raw/fn.validate_path.html
@@ -1,2 +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="Validate given path is match with given EntryMode."><meta name="keywords" content="rust, rustlang, rust-lang, validate_path"><title>validate_path in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d51 [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Validate given path is match with given EntryMode."><meta name="keywords" content="rust, rustlang, rust-lang, validate_path"><title>validate_path in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d51 [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/index.html b/docs/rust/opendal/raw/index.html
index 1a56442e..5ddf89d5 100644
--- a/docs/rust/opendal/raw/index.html
+++ b/docs/rust/opendal/raw/index.html
@@ -10,4 +10,4 @@ them whenever possible.</li>
 </ul>
 </div></details><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="adapters/index.html" title="opendal::raw::adapters mod">adapters</a></div><div class="item-right docblock-short">Providing adapters and its implementations.</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="oio/index.html" title="opendal::raw::oio mod">o [...]
 output.</div></div></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.AccessorInfo.html" title="opendal::raw::AccessorInfo struct">AccessorInfo</a></div><div class="item-right docblock-short">Metadata for accessor, users can use this metadata to get information of underlying backend.</div></div><div class="item-row"><div class="item-left modu [...]
-method to inner.</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.build_abs_path.html" title="opendal::raw::build_abs_path fn">build_abs_path</a></div><div class="item-right docblock-short">build_abs_path will build an absolute path with root.</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="f [...]
\ No newline at end of file
+method to inner.</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.build_abs_path.html" title="opendal::raw::build_abs_path fn">build_abs_path</a></div><div class="item-right docblock-short">build_abs_path will build an absolute path with root.</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="f [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/enum.PageOperation.html b/docs/rust/opendal/raw/oio/enum.PageOperation.html
index bc59db19..6845e059 100644
--- a/docs/rust/opendal/raw/oio/enum.PageOperation.html
+++ b/docs/rust/opendal/raw/oio/enum.PageOperation.html
@@ -5,15 +5,15 @@ pub enum PageOperation {
 }</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>PageOperation is the name for APIs of pager.</p>
 </div></details><h2 id="variants" class="variants small-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 variant [...]
 </div><section id="variant.BlockingNext" class="variant"><a href="#variant.BlockingNext" class="anchor">§</a><h3 class="code-header">BlockingNext</h3></section><div class="docblock"><p>Operation for <a href="trait.BlockingPage.html#tymethod.next" title="BlockingPage::next"><code>BlockingPage::next</code></a></p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-PageOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#36-41">source</a><a href="#impl-PageOperation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.PageOperatio [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-PageOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#27">source</a><a href="#impl-Clone-for-PageOperation" class="anchor">§</a>< [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-PageOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#27">source</a><a href="#impl-Copy-for-PageOperation" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" h [...]
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-PageOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#36-41">source</a><a href="#impl-PageOperation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.PageOperatio [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-PageOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#27">source</a><a href="#impl-Clone-for-PageOperation" class="anchor">§</a>< [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-PageOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#27">source</a><a href="#impl-Copy-for-PageOperation" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" h [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-PageOperation" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-PageOperation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::i [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PageOperation" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PageOperation" class="anchor">§</a><h [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PageOperation" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PageOperation" class="anchor">§</a><h [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-PageOperation" class="impl has-srclink"><a href="#impl-Pointable-for-PageOperation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class= [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-PageOperation" class="impl has-srclink"><a href="#impl-Pointable-for-PageOperation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class= [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/enum.ReadOperation.html b/docs/rust/opendal/raw/oio/enum.ReadOperation.html
index 23e4eb3b..14826313 100644
--- a/docs/rust/opendal/raw/oio/enum.ReadOperation.html
+++ b/docs/rust/opendal/raw/oio/enum.ReadOperation.html
@@ -13,15 +13,15 @@ pub enum ReadOperation {
 </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.BlockingRead.html#tymethod.read" title="BlockingRead::read"><code>BlockingRead::read</code></a></p>
 </div><section id="variant.BlockingSeek" class="variant"><a href="#variant.BlockingSeek" class="anchor">§</a><h3 class="code-header">BlockingSeek</h3></section><div class="docblock"><p>Operation for <a href="trait.BlockingRead.html#tymethod.seek" title="BlockingRead::seek"><code>BlockingRead::seek</code></a></p>
 </div><section id="variant.BlockingNext" class="variant"><a href="#variant.BlockingNext" class="anchor">§</a><h3 class="code-header">BlockingNext</h3></section><div class="docblock"><p>Operation for <a href="trait.BlockingRead.html#tymethod.next" title="BlockingRead::next"><code>BlockingRead::next</code></a></p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ReadOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#50-55">source</a><a href="#impl-ReadOperation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.ReadOperatio [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-ReadOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#33">source</a><a href="#impl-Clone-for-ReadOperation" class="anchor">§</a>< [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-ReadOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#33">source</a><a href="#impl-Copy-for-ReadOperation" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" h [...]
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ReadOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#50-55">source</a><a href="#impl-ReadOperation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.ReadOperatio [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-ReadOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#33">source</a><a href="#impl-Clone-for-ReadOperation" class="anchor">§</a>< [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-ReadOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#33">source</a><a href="#impl-Copy-for-ReadOperation" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" h [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-ReadOperation" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-ReadOperation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::i [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ReadOperation" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ReadOperation" class="anchor">§</a><h [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ReadOperation" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ReadOperation" class="anchor">§</a><h [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ReadOperation" class="impl has-srclink"><a href="#impl-Pointable-for-ReadOperation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class= [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ReadOperation" class="impl has-srclink"><a href="#impl-Pointable-for-ReadOperation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class= [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/enum.WriteOperation.html b/docs/rust/opendal/raw/oio/enum.WriteOperation.html
index a653738f..1512daa1 100644
--- a/docs/rust/opendal/raw/oio/enum.WriteOperation.html
+++ b/docs/rust/opendal/raw/oio/enum.WriteOperation.html
@@ -13,15 +13,15 @@ pub enum WriteOperation {
 </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.BlockingWrite.html#tymethod.write" title="BlockingWrite::write"><code>BlockingWrite::write</code></a></p>
 </div><section id="variant.BlockingAppend" class="variant"><a href="#variant.BlockingAppend" class="anchor">§</a><h3 class="code-header">BlockingAppend</h3></section><div class="docblock"><p>Operation for <a href="trait.BlockingWrite.html#tymethod.append" title="BlockingWrite::append"><code>BlockingWrite::append</code></a></p>
 </div><section id="variant.BlockingClose" class="variant"><a href="#variant.BlockingClose" class="anchor">§</a><h3 class="code-header">BlockingClose</h3></section><div class="docblock"><p>Operation for <a href="trait.BlockingWrite.html#tymethod.close" title="BlockingWrite::close"><code>BlockingWrite::close</code></a></p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-WriteOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#44-49">source</a><a href="#impl-WriteOperation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.WriteOper [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-WriteOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#27">source</a><a href="#impl-Clone-for-WriteOperation" class="anchor">§</ [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-WriteOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#27">source</a><a href="#impl-Copy-for-WriteOperation" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum [...]
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-WriteOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#44-49">source</a><a href="#impl-WriteOperation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.WriteOper [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-WriteOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#27">source</a><a href="#impl-Clone-for-WriteOperation" class="anchor">§</ [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-WriteOperation" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#27">source</a><a href="#impl-Copy-for-WriteOperation" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-WriteOperation" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-WriteOperation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-WriteOperation" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-WriteOperation" class="anchor">§</a> [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-WriteOperation" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-WriteOperation" class="anchor">§</a> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-WriteOperation" class="impl has-srclink"><a href="#impl-Pointable-for-WriteOperation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-WriteOperation" class="impl has-srclink"><a href="#impl-Pointable-for-WriteOperation" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/fn.into_streamable_reader.html b/docs/rust/opendal/raw/oio/fn.into_streamable_reader.html
index ae672c07..dc2a364e 100644
--- a/docs/rust/opendal/raw/oio/fn.into_streamable_reader.html
+++ b/docs/rust/opendal/raw/oio/fn.into_streamable_reader.html
@@ -1,2 +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="as_streamable is used to make [`oio::Read`] or [`oio::BlockingRead`] streamable."><meta name="keywords" content="rust, rustlang, rust-lang, into_streamable_reader"><title>into_streamable_reader in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="as_streamable is used to make [`oio::Read`] or [`oio::BlockingRead`] streamable."><meta name="keywords" content="rust, rustlang, rust-lang, into_streamable_reader"><title>into_streamable_reader in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/fn.to_flat_pager.html b/docs/rust/opendal/raw/oio/fn.to_flat_pager.html
index 8caa95d5..ac258887 100644
--- a/docs/rust/opendal/raw/oio/fn.to_flat_pager.html
+++ b/docs/rust/opendal/raw/oio/fn.to_flat_pager.html
@@ -1,2 +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="to_flat_pager is used to make a hierarchy pager flat."><meta name="keywords" content="rust, rustlang, rust-lang, to_flat_pager"><title>to_flat_pager in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Reg [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="to_flat_pager is used to make a hierarchy pager flat."><meta name="keywords" content="rust, rustlang, rust-lang, to_flat_pager"><title>to_flat_pager in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Reg [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/fn.to_hierarchy_pager.html b/docs/rust/opendal/raw/oio/fn.to_hierarchy_pager.html
index 509aac3c..2d0ccaae 100644
--- a/docs/rust/opendal/raw/oio/fn.to_hierarchy_pager.html
+++ b/docs/rust/opendal/raw/oio/fn.to_hierarchy_pager.html
@@ -1,2 +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="to_hierarchy_pager is used to make a hierarchy pager flat."><meta name="keywords" content="rust, rustlang, rust-lang, to_hierarchy_pager"><title>to_hierarchy_pager in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/S [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="to_hierarchy_pager is used to make a hierarchy pager flat."><meta name="keywords" content="rust, rustlang, rust-lang, to_hierarchy_pager"><title>to_hierarchy_pager in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/S [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></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 27b946e0..e7e547ac 100644
--- a/docs/rust/opendal/raw/oio/index.html
+++ b/docs/rust/opendal/raw/oio/index.html
@@ -7,4 +7,4 @@ our <code>output</code> traits.</p>
 into <a href="trait.BlockingRead.html" title="crate::raw::oio::BlockingRead"><code>oio::BlockingRead</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="into_reader/index.html" title="opendal::raw::oio::into_reader mod">into_reader</a></div><div class="item-right docblock-short">into_reader will provide different implementations to convert into
 <a href="trait.Read.html" title="crate::raw::oio::Read"><code>oio::Read</code></a></div></div></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Cursor.html" title="opendal::raw::oio::Cursor struct">Cursor</a></div><div class="item-right docblock-short">Cursor is the cursor for [<code>Bytes</code>] that implements <a href="trait.Read.html" ti [...]
 not needed entries.</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.PageOperation.html" title="opendal::raw::oio::PageOperation enum">PageOperation</a></div><div class="item-right docblock-short">PageOperation is the name for APIs of pager.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Read [...]
-or <code>scan</code> operation.</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.Read.html" title="opendal::raw::oio::Read trait">Read</a></div><div class="item-right docblock-short">Read is the trait that OpenDAL returns to callers.</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.ReadExt.html" title="opendal::raw::oio::ReadExt trait">ReadExt</a></div><div class="item-right docblock-short">Ex [...]
\ No newline at end of file
+or <code>scan</code> operation.</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.Read.html" title="opendal::raw::oio::Read trait">Read</a></div><div class="item-right docblock-short">Read is the trait that OpenDAL returns to callers.</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.ReadExt.html" title="opendal::raw::oio::ReadExt trait">ReadExt</a></div><div class="item-right docblock-short">Ex [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/into_blocking_reader/fn.from_fd.html b/docs/rust/opendal/raw/oio/into_blocking_reader/fn.from_fd.html
index 65785d79..b4c94af7 100644
--- a/docs/rust/opendal/raw/oio/into_blocking_reader/fn.from_fd.html
+++ b/docs/rust/opendal/raw/oio/into_blocking_reader/fn.from_fd.html
@@ -1,2 +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="Convert given fd into [`oio::BlockingRead`]."><meta name="keywords" content="rust, rustlang, rust-lang, from_fd"><title>from_fd in opendal::raw::oio::into_blocking_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4 [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Convert given fd into [`oio::BlockingRead`]."><meta name="keywords" content="rust, rustlang, rust-lang, from_fd"><title>from_fd in opendal::raw::oio::into_blocking_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4 [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/into_blocking_reader/index.html b/docs/rust/opendal/raw/oio/into_blocking_reader/index.html
index 09396b5f..dc865547 100644
--- a/docs/rust/opendal/raw/oio/into_blocking_reader/index.html
+++ b/docs/rust/opendal/raw/oio/into_blocking_reader/index.html
@@ -1,3 +1,3 @@
 <!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="into_blocking_reader will provide different implementations to convert into [`oio::BlockingRead`][crate::raw::oio::BlockingRead]"><meta name="keywords" content="rust, rustlang, rust-lang, into_blocking_reader"><title>opendal::raw::oio::into_blocking_reader - Rust</title><link rel="preloa [...]
 into <a href="../trait.BlockingRead.html" title="crate::raw::oio::BlockingRead"><code>oio::BlockingRead</code></a></p>
-</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.FdReader.html" title="opendal::raw::oio::into_blocking_reader::FdReader struct">FdReader</a></div><div class="item-right docblock-short">FdReader is a wrapper of input fd to implement <a href="../trait.Read.html" title="oio::Read"><code>oio::Read</code></a>.</div></div></div><h2 id= [...]
\ No newline at end of file
+</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.FdReader.html" title="opendal::raw::oio::into_blocking_reader::FdReader struct">FdReader</a></div><div class="item-right docblock-short">FdReader is a wrapper of input fd to implement <a href="../trait.Read.html" title="oio::Read"><code>oio::Read</code></a>.</div></div></div><h2 id= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/into_blocking_reader/struct.FdReader.html b/docs/rust/opendal/raw/oio/into_blocking_reader/struct.FdReader.html
index 0efa0fe4..50b72bbd 100644
--- a/docs/rust/opendal/raw/oio/into_blocking_reader/struct.FdReader.html
+++ b/docs/rust/opendal/raw/oio/into_blocking_reader/struct.FdReader.html
@@ -1,12 +1,12 @@
-<!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="FdReader is a wrapper of input fd to implement [`oio::Read`]."><meta name="keywords" content="rust, rustlang, rust-lang, FdReader"><title>FdReader in opendal::raw::oio::into_blocking_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static [...]
-</div></details><h2 id="trait-implementations" class="small-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-BlockingRead-for-FdReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/oio/into_blocking_reader/from_fd.rs.html#61-119">source</a><a href="#impl-BlockingRead-for-FdReader%3C [...]
+<!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="FdReader is a wrapper of input fd to implement [`oio::Read`]."><meta name="keywords" content="rust, rustlang, rust-lang, FdReader"><title>FdReader in opendal::raw::oio::into_blocking_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static [...]
+</div></details><h2 id="trait-implementations" class="small-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-BlockingRead-for-FdReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/oio/into_blocking_reader/from_fd.rs.html#61-119">source</a><a href="#impl-BlockingRead-for-FdReader%3C [...]
 <p>We need to wait for tokio’s pread support.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.read" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/oio/into_blocking_reader/from_fd.rs.html#65-79">source</a><a href="#method.read" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.BlockingRead.html#tymethod.read" class="fn">read</a>(&amp;mut self, buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/prim [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.read" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/oio/into_blocking_reader/from_fd.rs.html#65-79">source</a><a href="#method.read" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.BlockingRead.html#tymethod.read" class="fn">read</a>(&amp;mut self, buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/prim [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-FdReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-FdReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracin [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-FdReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FdReader%3CR%3E" class="anchor">§</ [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-FdReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FdReader%3CR%3E" class="anchor">§</ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-FdReader%3CR%3E" class="impl has-srclink"><a href="#impl-Pointable-for-FdReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" cl [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-FdReader%3CR%3E" class="impl has-srclink"><a href="#impl-Pointable-for-FdReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" cl [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-reso [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-reso [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/into_reader/fn.by_range.html b/docs/rust/opendal/raw/oio/into_reader/fn.by_range.html
index 7f66d84e..0f950a97 100644
--- a/docs/rust/opendal/raw/oio/into_reader/fn.by_range.html
+++ b/docs/rust/opendal/raw/oio/into_reader/fn.by_range.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="Convert given reader into [`oio::Reader`] by range."><meta name="keywords" content="rust, rustlang, rust-lang, by_range"><title>by_range in opendal::raw::oio::into_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4 [...]
+<!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="Convert given reader into [`oio::Reader`] by range."><meta name="keywords" content="rust, rustlang, rust-lang, by_range"><title>by_range in opendal::raw::oio::into_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4 [...]
 <h2 id="notes"><a href="#notes">Notes</a></h2>
 <p>This operation is not zero cost. If the accessor already returns a
 seekable reader, please don’t use this.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/into_reader/fn.from_fd.html b/docs/rust/opendal/raw/oio/into_reader/fn.from_fd.html
index 77b99115..0e9d7027 100644
--- a/docs/rust/opendal/raw/oio/into_reader/fn.from_fd.html
+++ b/docs/rust/opendal/raw/oio/into_reader/fn.from_fd.html
@@ -1,2 +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="Convert given fd into [`oio::Reader`]."><meta name="keywords" content="rust, rustlang, rust-lang, from_fd"><title>from_fd in opendal::raw::oio::into_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d51 [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Convert given fd into [`oio::Reader`]."><meta name="keywords" content="rust, rustlang, rust-lang, from_fd"><title>from_fd in opendal::raw::oio::into_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d51 [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/into_reader/index.html b/docs/rust/opendal/raw/oio/into_reader/index.html
index 33e8099d..991170e5 100644
--- a/docs/rust/opendal/raw/oio/into_reader/index.html
+++ b/docs/rust/opendal/raw/oio/into_reader/index.html
@@ -15,4 +15,4 @@ cases.</p>
 <p>For example, for <code>by_full</code>, we don’t need to do <code>stat</code> everytime. If
 user call <code>poll_read</code> first, we can get the total_size from returning
 reader. In this way, we can save 40ms in average for every s3 read call.</p>
-</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.FdReader.html" title="opendal::raw::oio::into_reader::FdReader struct">FdReader</a></div><div class="item-right docblock-short">FdReader is a wrapper of input fd to implement <a href="../trait.Read.html" title="oio::Read"><code>oio::Read</code></a>.</div></div><div class="item-row"> [...]
\ No newline at end of file
+</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.FdReader.html" title="opendal::raw::oio::into_reader::FdReader struct">FdReader</a></div><div class="item-right docblock-short">FdReader is a wrapper of input fd to implement <a href="../trait.Read.html" title="oio::Read"><code>oio::Read</code></a>.</div></div><div class="item-row"> [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/into_reader/struct.FdReader.html b/docs/rust/opendal/raw/oio/into_reader/struct.FdReader.html
index 92253442..20e96a92 100644
--- a/docs/rust/opendal/raw/oio/into_reader/struct.FdReader.html
+++ b/docs/rust/opendal/raw/oio/into_reader/struct.FdReader.html
@@ -1,12 +1,12 @@
-<!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="FdReader is a wrapper of input fd to implement [`oio::Read`]."><meta name="keywords" content="rust, rustlang, rust-lang, FdReader"><title>FdReader in opendal::raw::oio::into_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/So [...]
-</div></details><h2 id="trait-implementations" class="small-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-Read-for-FdReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/oio/into_reader/from_fd.rs.html#63-126">source</a><a href="#impl-Read-for-FdReader%3CR%3E" class="anchor">§</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="FdReader is a wrapper of input fd to implement [`oio::Read`]."><meta name="keywords" content="rust, rustlang, rust-lang, FdReader"><title>FdReader in opendal::raw::oio::into_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/So [...]
+</div></details><h2 id="trait-implementations" class="small-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-Read-for-FdReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/oio/into_reader/from_fd.rs.html#63-126">source</a><a href="#impl-Read-for-FdReader%3CR%3E" class="anchor">§</a [...]
 <p>We need to wait for tokio’s pread support.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.poll_read" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/oio/into_reader/from_fd.rs.html#67-82">source</a><a href="#method.poll_read" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Read.html#tymethod.poll_read" class="fn">poll_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="st [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.poll_read" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/oio/into_reader/from_fd.rs.html#67-82">source</a><a href="#method.poll_read" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Read.html#tymethod.poll_read" class="fn">poll_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="st [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-FdReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-FdReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracin [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-FdReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FdReader%3CR%3E" class="anchor">§</ [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-FdReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FdReader%3CR%3E" class="anchor">§</ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-FdReader%3CR%3E" class="impl has-srclink"><a href="#impl-Pointable-for-FdReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" cl [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-FdReader%3CR%3E" class="impl has-srclink"><a href="#impl-Pointable-for-FdReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" cl [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-reso [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-reso [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/into_reader/struct.RangeReader.html b/docs/rust/opendal/raw/oio/into_reader/struct.RangeReader.html
index 9d45b9b7..babb9f79 100644
--- a/docs/rust/opendal/raw/oio/into_reader/struct.RangeReader.html
+++ b/docs/rust/opendal/raw/oio/into_reader/struct.RangeReader.html
@@ -1,10 +1,10 @@
 <!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="RangeReader that can do seek on non-seekable reader."><meta name="keywords" content="rust, rustlang, rust-lang, RangeReader"><title>RangeReader in opendal::raw::oio::into_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/Sourc [...]
-</div></details><h2 id="trait-implementations" class="small-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-Read-for-RangeReader%3CA%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/oio/into_reader/by_range.rs.html#127-276">source</a><a href="#impl-Read-for-RangeReader%3CA%3E" class="anch [...]
+</div></details><h2 id="trait-implementations" class="small-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-Read-for-RangeReader%3CA%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/oio/into_reader/by_range.rs.html#127-276">source</a><a href="#impl-Read-for-RangeReader%3CA%3E" class="anch [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-RangeReader%3CA%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-RangeReader%3CA%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait  [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RangeReader%3CA%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RangeReader%3CA%3E" class="ancho [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RangeReader%3CA%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RangeReader%3CA%3E" class="ancho [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RangeReader%3CA%3E" class="impl has-srclink"><a href="#impl-Pointable-for-RangeReader%3CA%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALI [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RangeReader%3CA%3E" class="impl has-srclink"><a href="#impl-Pointable-for-RangeReader%3CA%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALI [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-reso [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-reso [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/struct.Cursor.html b/docs/rust/opendal/raw/oio/struct.Cursor.html
index cf28868c..92b51a69 100644
--- a/docs/rust/opendal/raw/oio/struct.Cursor.html
+++ b/docs/rust/opendal/raw/oio/struct.Cursor.html
@@ -1,12 +1,12 @@
 <!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="Cursor is the cursor for [`Bytes`] that implements [`oio::Read`]"><meta name="keywords" content="rust, rustlang, rust-lang, Cursor"><title>Cursor in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regula [...]
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Cursor" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/cursor.rs.html#34-45">source</a><a href="#impl-Cursor" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Cursor.html" tit [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.remaining_slice" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/cursor.rs.html#41-44">source</a><h4 class="code-header">pub fn <a href="#method.remaining_slice" class="fn">remaining_slice</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8.html">u8</a>] <a href="#" class="notable-traits" data-ty="&amp;[u8]" [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-BlockingRead-for-Cursor" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/cursor.rs.html#99-140">source</a><a href="#impl-BlockingRead-for-Cursor" class="anchor"> [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Cursor" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/cursor.rs.html#34-45">source</a><a href="#impl-Cursor" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Cursor.html" tit [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.remaining_slice" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/cursor.rs.html#41-44">source</a><h4 class="code-header">pub fn <a href="#method.remaining_slice" class="fn">remaining_slice</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u8.html">u8</a>] <a href="#" class="notable-traits" data-ty="&amp;[u8]" [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-BlockingRead-for-Cursor" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/cursor.rs.html#99-140">source</a><a href="#impl-BlockingRead-for-Cursor" class="anchor"> [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Cursor" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Cursor" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Cursor" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Cursor" class="anchor">§</a><h3 class="code- [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Cursor" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Cursor" class="anchor">§</a><h3 class="code- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Cursor" class="impl has-srclink"><a href="#impl-Pointable-for-Cursor" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Cursor" class="impl has-srclink"><a href="#impl-Pointable-for-Cursor" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div><script type="text/json" id="notable-traits-data">{"&[u8]":"<h3>Notable traits for <code>&amp;[<a class=\"primitive\" href=\"https://doc.rust-lang.org/1.68.0/std/primitive.u8.html [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div><script type="text/json" id="notable-traits-data">{"&[u8]":"<h3>Notable traits for <code>&amp;[<a class=\"primitive\" href=\"https://doc.rust-lang.org/1.68.1/std/primitive.u8.html [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/struct.Entry.html b/docs/rust/opendal/raw/oio/struct.Entry.html
index 848f20d9..29c9adc7 100644
--- a/docs/rust/opendal/raw/oio/struct.Entry.html
+++ b/docs/rust/opendal/raw/oio/struct.Entry.html
@@ -5,22 +5,22 @@
 <li><code>crate::Entry</code> is the user’s public API and have less public methods.</li>
 <li><code>oio::Entry</code> is the raw API and doesn’t expose to users.</li>
 </ul>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Entry" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#34-84">source</a><a href="#impl-Entry" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Entry.html" title=" [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#41-50">source</a><h4 class="code-header">pub fn <a href="#method.with" class="fn">with</a>(path: <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, meta: <a class="struct" href="../../struct.Metadata.html" [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_path" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#53-56">source</a><h4 class="code-header">pub fn <a href="#method.set_path" class="fn">set_path</a>(&amp;mut self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/p [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.path" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#59-61">source</a><h4 class="code-header">pub fn <a href="#method.path" class="fn">path</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Get the path of entry.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_mode" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#68-71">source</a><h4 class="code-header">pub fn <a href="#method.set_mode" class="fn">set_mode</a>(&amp;mut self, mode: <a class="enum" href="../../enum.EntryMode.html" title="enum opendal::EntryMode">EntryMode</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/pri [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Entry" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#34-84">source</a><a href="#impl-Entry" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Entry.html" title=" [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#41-50">source</a><h4 class="code-header">pub fn <a href="#method.with" class="fn">with</a>(path: <a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, meta: <a class="struct" href="../../struct.Metadata.html" [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_path" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#53-56">source</a><h4 class="code-header">pub fn <a href="#method.set_path" class="fn">set_path</a>(&amp;mut self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/p [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.path" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#59-61">source</a><h4 class="code-header">pub fn <a href="#method.path" class="fn">path</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Get the path of entry.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_mode" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#68-71">source</a><h4 class="code-header">pub fn <a href="#method.set_mode" class="fn">set_mode</a>(&amp;mut self, mode: <a class="enum" href="../../enum.EntryMode.html" title="enum opendal::EntryMode">EntryMode</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/pri [...]
 <h5 id="note"><a href="#note">Note</a></h5>
 <p>Please use this function carefully.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.mode" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#74-76">source</a><h4 class="code-header">pub fn <a href="#method.mode" class="fn">mode</a>(&amp;self) -&gt; <a class="enum" href="../../enum.EntryMode.html" title="enum opendal::EntryMode">EntryMode</a></h4></section></summary><div class="docblock"><p>Get entry’s mode.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Entry" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#28">source</a><a href="#impl-Clone-for-Entry" class="anchor">§</a><h3 class="code- [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Eq-for-Entry" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#28">source</a><a href="#impl-Eq-for-Entry" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Entry.html" title [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Entry" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#28">source</a><a href="#impl-Clone-for-Entry" class="anchor">§</a><h3 class="code- [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Eq-for-Entry" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/entry.rs.html#28">source</a><a href="#impl-Eq-for-Entry" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Entry.html" title [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Entry" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Entry" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Instr [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Entry" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Entry" class="anchor">§</a><h3 class="code-he [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Entry" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Entry" class="anchor">§</a><h3 class="code-he [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Entry" class="impl has-srclink"><a href="#impl-Pointable-for-Entry" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a><h [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Entry" class="impl has-srclink"><a href="#impl-Pointable-for-Entry" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a><h [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/struct.IntoStreamableReader.html b/docs/rust/opendal/raw/oio/struct.IntoStreamableReader.html
index dab551d5..b064c0b6 100644
--- a/docs/rust/opendal/raw/oio/struct.IntoStreamableReader.html
+++ b/docs/rust/opendal/raw/oio/struct.IntoStreamableReader.html
@@ -1,10 +1,10 @@
 <!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="Make given read streamable."><meta name="keywords" content="rust, rustlang, rust-lang, IntoStreamableReader"><title>IntoStreamableReader in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512 [...]
-</div></details><h2 id="trait-implementations" class="small-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-BlockingRead-for-IntoStreamableReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/into_streamable.rs.html#70-93">source</a><a href="#impl-BlockingRead-for-IntoStreamableRe [...]
+</div></details><h2 id="trait-implementations" class="small-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-BlockingRead-for-IntoStreamableReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/into_streamable.rs.html#70-93">source</a><a href="#impl-BlockingRead-for-IntoStreamableRe [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-IntoStreamableReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-IntoStreamableReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.h [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-IntoStreamableReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-IntoStreamableReader%3C [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-IntoStreamableReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-IntoStreamableReader%3C [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-IntoStreamableReader%3CR%3E" class="impl has-srclink"><a href="#impl-Pointable-for-IntoStreamableReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#asso [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-IntoStreamableReader%3CR%3E" class="impl has-srclink"><a href="#impl-Pointable-for-IntoStreamableReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#asso [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/struct.ToFlatPager.html b/docs/rust/opendal/raw/oio/struct.ToFlatPager.html
index c17cb87c..6672b723 100644
--- a/docs/rust/opendal/raw/oio/struct.ToFlatPager.html
+++ b/docs/rust/opendal/raw/oio/struct.ToFlatPager.html
@@ -25,12 +25,12 @@ We only make sure the nested dirs will show up before parent dirs.</p>
 <p>Especially, for storage services that can’t return dirs first, ToFlatPager
 may output parent dirs’ files before nested dirs, this is expected because files
 always output directly while listing.</p>
-</div></details><h2 id="trait-implementations" class="small-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-BlockingPage-for-ToFlatPager%3CA%2C%20P%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/to_flat_pager.rs.html#153-208">source</a><a href="#impl-BlockingPage-for-ToFlatPager%3CA%2C [...]
+</div></details><h2 id="trait-implementations" class="small-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-BlockingPage-for-ToFlatPager%3CA%2C%20P%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/to_flat_pager.rs.html#153-208">source</a><a href="#impl-BlockingPage-for-ToFlatPager%3CA%2C [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-ToFlatPager%3CA%2C%20P%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-ToFlatPager%3CA%2C%20P%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ToFlatPager%3CA%2C%20P%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ToFlatPager%3CA%2C%20P%3E [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ToFlatPager%3CA%2C%20P%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ToFlatPager%3CA%2C%20P%3E [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ToFlatPager%3CA%2C%20P%3E" class="impl has-srclink"><a href="#impl-Pointable-for-ToFlatPager%3CA%2C%20P%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associat [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ToFlatPager%3CA%2C%20P%3E" class="impl has-srclink"><a href="#impl-Pointable-for-ToFlatPager%3CA%2C%20P%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associat [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/struct.ToHierarchyPager.html b/docs/rust/opendal/raw/oio/struct.ToHierarchyPager.html
index 44e952a5..ba5b261c 100644
--- a/docs/rust/opendal/raw/oio/struct.ToHierarchyPager.html
+++ b/docs/rust/opendal/raw/oio/struct.ToHierarchyPager.html
@@ -5,12 +5,12 @@ not needed entries.</p>
 to return an empty vec. It doesn’t mean the all pages have been
 returned.</p>
 <p>Please keep calling next_page until we returned <code>Ok(None)</code></p>
-</div></details><h2 id="trait-implementations" class="small-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-BlockingPage-for-ToHierarchyPager%3CP%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/to_hierarchy_pager.rs.html#136-150">source</a><a href="#impl-BlockingPage-for-ToHierarchyPage [...]
+</div></details><h2 id="trait-implementations" class="small-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-BlockingPage-for-ToHierarchyPager%3CP%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/to_hierarchy_pager.rs.html#136-150">source</a><a href="#impl-BlockingPage-for-ToHierarchyPage [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-ToHierarchyPager%3CP%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-ToHierarchyPager%3CP%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" tit [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ToHierarchyPager%3CP%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ToHierarchyPager%3CP%3E" cl [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ToHierarchyPager%3CP%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ToHierarchyPager%3CP%3E" cl [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ToHierarchyPager%3CP%3E" class="impl has-srclink"><a href="#impl-Pointable-for-ToHierarchyPager%3CP%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedco [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ToHierarchyPager%3CP%3E" class="impl has-srclink"><a href="#impl-Pointable-for-ToHierarchyPager%3CP%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedco [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-s [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/trait.BlockingPage.html b/docs/rust/opendal/raw/oio/trait.BlockingPage.html
index 88767dd0..a4904be7 100644
--- a/docs/rust/opendal/raw/oio/trait.BlockingPage.html
+++ b/docs/rust/opendal/raw/oio/trait.BlockingPage.html
@@ -1,7 +1,7 @@
 <!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="BlockingPage is the blocking version of [`Page`]."><meta name="keywords" content="rust, rustlang, rust-lang, BlockingPage"><title>BlockingPage in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1 [...]
-    fn <a href="#tymethod.next" class="fn">next</a>(&amp;mut self) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.Entry.html" title="struct opendal::raw:: [...]
+    fn <a href="#tymethod.next" class="fn">next</a>(&amp;mut self) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.Entry.html" title="struct opendal::raw:: [...]
 }</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BlockingPage is the blocking version of <a href="trait.Page.html" title="Page"><code>Page</code></a>.</p>
-</div></details><h2 id="required-methods" class="small-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 has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#104">source</a><h4 class="code-header">fn <a href="#tymethod.next" class="fn">next</a>(&amp;mut self) -&gt; <a class="type" href="../../type.Result [...]
+</div></details><h2 id="required-methods" class="small-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 has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#104">source</a><h4 class="code-header">fn <a href="#tymethod.next" class="fn">next</a>(&amp;mut self) -&gt; <a class="type" href="../../type.Result [...]
 <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="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-BlockingPage-for-()" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#116-120">source</a><a href="#impl-BlockingPage-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.BlockingP [...]
\ No newline at end of file
+</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-BlockingPage-for-()" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#116-120">source</a><a href="#impl-BlockingPage-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.BlockingP [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/trait.BlockingRead.html b/docs/rust/opendal/raw/oio/trait.BlockingRead.html
index 28b7f10b..f5a5f88e 100644
--- a/docs/rust/opendal/raw/oio/trait.BlockingRead.html
+++ b/docs/rust/opendal/raw/oio/trait.BlockingRead.html
@@ -1,7 +1,7 @@
-<!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="Read is the trait that OpenDAL returns to callers."><meta name="keywords" content="rust, rustlang, rust-lang, BlockingRead"><title>BlockingRead in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular- [...]
-    fn <a href="#tymethod.read" class="fn">read</a>(&amp;mut self, buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8.html">u8</a>]) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>&gt;;
-<span class="item-spacer"></span>    fn <a href="#tymethod.seek" class="fn">seek</a>(&amp;mut self, pos: <a class="enum" href="https://doc.rust-lang.org/1.68.0/std/io/enum.SeekFrom.html" title="enum std::io::SeekFrom">SeekFrom</a>) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u64.html">u64</a>&gt;;
-<span class="item-spacer"></span>    fn <a href="#tymethod.next" class="fn">next</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;Bytes&gt;&gt;;
+<!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="Read is the trait that OpenDAL returns to callers."><meta name="keywords" content="rust, rustlang, rust-lang, BlockingRead"><title>BlockingRead in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular- [...]
+    fn <a href="#tymethod.read" class="fn">read</a>(&amp;mut self, buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u8.html">u8</a>]) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>&gt;;
+<span class="item-spacer"></span>    fn <a href="#tymethod.seek" class="fn">seek</a>(&amp;mut self, pos: <a class="enum" href="https://doc.rust-lang.org/1.68.1/std/io/enum.SeekFrom.html" title="enum std::io::SeekFrom">SeekFrom</a>) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u64.html">u64</a>&gt;;
+<span class="item-spacer"></span>    fn <a href="#tymethod.next" class="fn">next</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;Bytes&gt;&gt;;
 }</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Read is the trait that OpenDAL returns to callers.</p>
 <p>Read is compose of the following trait</p>
 <ul>
@@ -11,11 +11,11 @@
 </ul>
 <p><code>Read</code> is required to be implemented, <code>Seek</code> and <code>Iterator</code>
 is optional. We use <code>Read</code> to make users life easier.</p>
-</div></details><h2 id="required-methods" class="small-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.read" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#300">source</a><h4 class="code-header">fn <a href="#tymethod.read" class="fn">read</a>(&amp;mut self, buf: &amp;mut [<a class="primitive" href="htt [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.seek" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#303">source</a><h4 class="code-header">fn <a href="#tymethod.seek" class="fn">seek</a>(&amp;mut self, pos: <a class="enum" href="https://doc.rust-lang.org/1.68.0/std/io/enum.SeekFrom.html" title="enum std::io::SeekFrom">SeekFrom</a>) -&gt; <a class="type" href="../../type.Result.html" title= [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.next" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#306">source</a><h4 class="code-header">fn <a href="#tymethod.next" class="fn">next</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="type" href="../../type.Result.html" title [...]
-</div></details></div><h2 id="trait-implementations" class="small-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-Iterator-for-dyn%20BlockingRead" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#367-375">source</a><a href="#impl-Iterator-for-dyn%20BlockingRead" class="anchor">§ [...]
-how many bytes were read. <a href="https://doc.rust-lang.org/1.68.0/std/io/trait.Read.html#tymethod.read">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_vectored" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.36.0">1.36.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/std/io/mod.rs.html#645">source</a></span><a href="#method.read_vector [...]
-implementation. <a href="https://doc.rust-lang.org/1.68.0/std/io/trait.Read.html#method.is_read_vectored">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/std/io/mod.rs.html#709">source</a></span><a href="#method.read_to_end" cl [...]
+</div></details><h2 id="required-methods" class="small-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.read" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#300">source</a><h4 class="code-header">fn <a href="#tymethod.read" class="fn">read</a>(&amp;mut self, buf: &amp;mut [<a class="primitive" href="htt [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.seek" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#303">source</a><h4 class="code-header">fn <a href="#tymethod.seek" class="fn">seek</a>(&amp;mut self, pos: <a class="enum" href="https://doc.rust-lang.org/1.68.1/std/io/enum.SeekFrom.html" title="enum std::io::SeekFrom">SeekFrom</a>) -&gt; <a class="type" href="../../type.Result.html" title= [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.next" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#306">source</a><h4 class="code-header">fn <a href="#tymethod.next" class="fn">next</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="type" href="../../type.Result.html" title [...]
+</div></details></div><h2 id="trait-implementations" class="small-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-Iterator-for-dyn%20BlockingRead" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#367-375">source</a><a href="#impl-Iterator-for-dyn%20BlockingRead" class="anchor">§ [...]
+how many bytes were read. <a href="https://doc.rust-lang.org/1.68.1/std/io/trait.Read.html#tymethod.read">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_vectored" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.36.0">1.36.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/std/io/mod.rs.html#645">source</a></span><a href="#method.read_vector [...]
+implementation. <a href="https://doc.rust-lang.org/1.68.1/std/io/trait.Read.html#method.is_read_vectored">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/std/io/mod.rs.html#709">source</a></span><a href="#method.read_to_end" cl [...]
 To make BlockingReader work as expected, we must add this impl.</p>
-</div><div class="impl-items"><section id="method.read-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#336-338">source</a><a href="#method.read-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.read" class="fn">read</a>(&amp;mut self, buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8.html">u8</a>]) -&gt; <a class="type" href="../../type.Result.html" title="ty [...]
\ No newline at end of file
+</div><div class="impl-items"><section id="method.read-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#336-338">source</a><a href="#method.read-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.read" class="fn">read</a>(&amp;mut self, buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u8.html">u8</a>]) -&gt; <a class="type" href="../../type.Result.html" title="ty [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/trait.BlockingWrite.html b/docs/rust/opendal/raw/oio/trait.BlockingWrite.html
index b0af5de1..38cad263 100644
--- a/docs/rust/opendal/raw/oio/trait.BlockingWrite.html
+++ b/docs/rust/opendal/raw/oio/trait.BlockingWrite.html
@@ -1,11 +1,11 @@
-<!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="BlockingWrite is the trait that OpenDAL returns to callers."><meta name="keywords" content="rust, rustlang, rust-lang, BlockingWrite"><title>BlockingWrite in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSeri [...]
-    fn <a href="#tymethod.write" class="fn">write</a>(&amp;mut self, bs: Bytes) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>&gt;;
-<span class="item-spacer"></span>    fn <a href="#tymethod.append" class="fn">append</a>(&amp;mut self, bs: Bytes) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>&gt;;
-<span class="item-spacer"></span>    fn <a href="#tymethod.close" class="fn">close</a>(&amp;mut self) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>&gt;;
+<!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="BlockingWrite is the trait that OpenDAL returns to callers."><meta name="keywords" content="rust, rustlang, rust-lang, BlockingWrite"><title>BlockingWrite in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSeri [...]
+    fn <a href="#tymethod.write" class="fn">write</a>(&amp;mut self, bs: Bytes) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.unit.html">()</a>&gt;;
+<span class="item-spacer"></span>    fn <a href="#tymethod.append" class="fn">append</a>(&amp;mut self, bs: Bytes) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.unit.html">()</a>&gt;;
+<span class="item-spacer"></span>    fn <a href="#tymethod.close" class="fn">close</a>(&amp;mut self) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.unit.html">()</a>&gt;;
 }</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BlockingWrite is the trait that OpenDAL returns to callers.</p>
-</div></details><h2 id="required-methods" class="small-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.write" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#142">source</a><h4 class="code-header">fn <a href="#tymethod.write" class="fn">write</a>(&amp;mut self, bs: Bytes) -&gt; <a class="type" href=".. [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.append" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#145">source</a><h4 class="code-header">fn <a href="#tymethod.append" class="fn">append</a>(&amp;mut self, bs: Bytes) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.uni [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.close" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#148">source</a><h4 class="code-header">fn <a href="#tymethod.close" class="fn">close</a>(&amp;mut self) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a> [...]
-</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-BlockingWrite-for-()" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#151-173">source</a><a href="#impl-BlockingWrite-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Blocki [...]
+</div></details><h2 id="required-methods" class="small-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.write" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#142">source</a><h4 class="code-header">fn <a href="#tymethod.write" class="fn">write</a>(&amp;mut self, bs: Bytes) -&gt; <a class="type" href=".. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.append" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#145">source</a><h4 class="code-header">fn <a href="#tymethod.append" class="fn">append</a>(&amp;mut self, bs: Bytes) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.uni [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.close" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#148">source</a><h4 class="code-header">fn <a href="#tymethod.close" class="fn">close</a>(&amp;mut self) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.unit.html">()</a> [...]
+</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-BlockingWrite-for-()" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#151-173">source</a><a href="#impl-BlockingWrite-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Blocki [...]
 To make BlockingWriter work as expected, we must add this impl.</p>
-</div><div class="impl-items"><section id="method.write-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#178-180">source</a><a href="#method.write-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.write" class="fn">write</a>(&amp;mut self, bs: Bytes) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68 [...]
\ No newline at end of file
+</div><div class="impl-items"><section id="method.write-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#178-180">source</a><a href="#method.write-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.write" class="fn">write</a>(&amp;mut self, bs: Bytes) -&gt; <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68 [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/trait.Page.html b/docs/rust/opendal/raw/oio/trait.Page.html
index de6f35df..2cb1424c 100644
--- a/docs/rust/opendal/raw/oio/trait.Page.html
+++ b/docs/rust/opendal/raw/oio/trait.Page.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="Page trait is used by [`crate::raw::Accessor`] to implement `list` or `scan` operation."><meta name="keywords" content="rust, rustlang, rust-lang, Page"><title>Page in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/ [...]
-    fn <a href="#tymethod.next" class="fn">next</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.o [...]
+<!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="Page trait is used by [`crate::raw::Accessor`] to implement `list` or `scan` operation."><meta name="keywords" content="rust, rustlang, rust-lang, Page"><title>Page in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/ [...]
+    fn <a href="#tymethod.next" class="fn">next</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.o [...]
 }</code></pre></div><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="crate::raw::Accessor"><code>crate::raw::Accessor</code></a> to implement <code>list</code>
 or <code>scan</code> operation.</p>
-</div></details><h2 id="required-methods" class="small-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 has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#68">source</a><h4 class="code-header">fn <a href="#tymethod.next" class="fn">next</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp; [...]
+</div></details><h2 id="required-methods" class="small-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 has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#68">source</a><h4 class="code-header">fn <a href="#tymethod.next" class="fn">next</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp; [...]
 <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="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Page-for-()" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#82-86">source</a><a href="#impl-Page-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Page.html" title="trait ope [...]
\ No newline at end of file
+</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Page-for-()" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#82-86">source</a><a href="#impl-Page-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Page.html" title="trait ope [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/trait.Read.html b/docs/rust/opendal/raw/oio/trait.Read.html
index 63458776..f470acac 100644
--- a/docs/rust/opendal/raw/oio/trait.Read.html
+++ b/docs/rust/opendal/raw/oio/trait.Read.html
@@ -1,7 +1,7 @@
-<!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="Read is the trait that OpenDAL returns to callers."><meta name="keywords" content="rust, rustlang, rust-lang, Read"><title>Read in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72 [...]
-    fn <a href="#tymethod.poll_read" class="fn">poll_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8 [...]
-<span class="item-spacer"></span>    fn <a href="#tymethod.poll_seek" class="fn">poll_seek</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos: <a class="enum" href="https://doc.rust-lang.org/1.68. [...]
-<span class="item-spacer"></span>    fn <a href="#tymethod.poll_next" class="fn">poll_next</a>(&amp;mut self, cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum. [...]
+<!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="Read is the trait that OpenDAL returns to callers."><meta name="keywords" content="rust, rustlang, rust-lang, Read"><title>Read in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72 [...]
+    fn <a href="#tymethod.poll_read" class="fn">poll_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u8 [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.poll_seek" class="fn">poll_seek</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos: <a class="enum" href="https://doc.rust-lang.org/1.68. [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.poll_next" class="fn">poll_next</a>(&amp;mut self, cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum. [...]
 }</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Read is the trait that OpenDAL returns to callers.</p>
 <p>Read is compose of the following trait</p>
 <ul>
@@ -11,17 +11,17 @@
 </ul>
 <p><code>AsyncRead</code> is required to be implemented, <code>AsyncSeek</code> and <code>Stream</code>
 is optional. We use <code>Read</code> to make users life easier.</p>
-</div></details><h2 id="required-methods" class="small-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.poll_read" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#93">source</a><h4 class="code-header">fn <a href="#tymethod.poll_read" class="fn">poll_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br> [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.poll_seek" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#98">source</a><h4 class="code-header">fn <a href="#tymethod.poll_seek" class="fn">poll_seek</a>(&amp;mut self, cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;, pos: < [...]
+</div></details><h2 id="required-methods" class="small-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.poll_read" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#93">source</a><h4 class="code-header">fn <a href="#tymethod.poll_read" class="fn">poll_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br> [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.poll_seek" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#98">source</a><h4 class="code-header">fn <a href="#tymethod.poll_seek" class="fn">poll_seek</a>(&amp;mut self, cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;, pos: < [...]
 <p>Returns <code>Unsupported</code> error if underlying reader doesn’t support seek.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.poll_next" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#107">source</a><h4 class="code-header">fn <a href="#tymethod.poll_next" class="fn">poll_next</a>(&amp;mut self, cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;) -&gt; [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.poll_next" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#107">source</a><h4 class="code-header">fn <a href="#tymethod.poll_next" class="fn">poll_next</a>(&amp;mut self, cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;) -&gt; [...]
 <p>Returns <code>Unsupported</code> error if underlying reader doesn’t support stream.</p>
 <p>This API exists for avoiding bytes copying inside async runtime.
 Users can poll bytes from underlying reader and decide when to
 read/consume them.</p>
-</div></details></div><h2 id="trait-implementations" class="small-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-AsyncRead-for-dyn%20Read" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#152-162">source</a><a href="#impl-AsyncRead-for-dyn%20Read" class="anchor">§</a><h3 class= [...]
-IO operations. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-AsyncSeek-for-dyn%20Read" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#164-174">source</a><a href="#impl-AsyncSeek-for-dyn%20Read" class="anchor">§</a><h3 class="code-header">impl AsyncSeek for dyn <a class="trait" href="trait.Read.html" title="trait opendal::raw::oio::Read">Read</a></h3></secti [...]
+</div></details></div><h2 id="trait-implementations" class="small-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-AsyncRead-for-dyn%20Read" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#152-162">source</a><a href="#impl-AsyncRead-for-dyn%20Read" class="anchor">§</a><h3 class= [...]
+IO operations. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-AsyncSeek-for-dyn%20Read" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#164-174">source</a><a href="#impl-AsyncSeek-for-dyn%20Read" class="anchor">§</a><h3 class="code-header">impl AsyncSeek for dyn <a class="trait" href="trait.Read.html" title="trait opendal::raw::oio::Read">Read</a></h3></secti [...]
 current task for wakeup if the value is not yet available, and returning
-<code>None</code> if the stream is exhausted. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.size_hint" class="method trait-impl has-srclink"><a href="#method.size_hint" class="anchor">§</a><h4 class="code-header">fn <a class="fn">size_hint</a>(&amp;self) -&gt; (<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Opt [...]
+<code>None</code> if the stream is exhausted. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.size_hint" class="method trait-impl has-srclink"><a href="#method.size_hint" class="anchor">§</a><h4 class="code-header">fn <a class="fn">size_hint</a>(&amp;self) -&gt; (<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Opt [...]
 work as expected, we must add this impl.</p>
-</div><div class="impl-items"><section id="method.poll_read-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#139-141">source</a><a href="#method.poll_read-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_read" class="fn">poll_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/task/wake/struct.C [...]
\ No newline at end of file
+</div><div class="impl-items"><section id="method.poll_read-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#139-141">source</a><a href="#method.poll_read-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_read" class="fn">poll_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/task/wake/struct.C [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/trait.ReadExt.html b/docs/rust/opendal/raw/oio/trait.ReadExt.html
index 209e825d..fcc56b5a 100644
--- a/docs/rust/opendal/raw/oio/trait.ReadExt.html
+++ b/docs/rust/opendal/raw/oio/trait.ReadExt.html
@@ -1,10 +1,10 @@
 <!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="Extension of [`Read`] to make it easier for use."><meta name="keywords" content="rust, rustlang, rust-lang, ReadExt"><title>ReadExt in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f [...]
-    fn <a href="#method.read" class="fn">read</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8.html">u8</a>]) -&gt; ReadFuture&lt;'a, Self&gt; { ... }
-<span class="item-spacer"></span>    fn <a href="#method.seek" class="fn">seek</a>(&amp;mut self, pos: <a class="enum" href="https://doc.rust-lang.org/1.68.0/std/io/enum.SeekFrom.html" title="enum std::io::SeekFrom">SeekFrom</a>) -&gt; SeekFuture&lt;'_, Self&gt; { ... }
+    fn <a href="#method.read" class="fn">read</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u8.html">u8</a>]) -&gt; ReadFuture&lt;'a, Self&gt; { ... }
+<span class="item-spacer"></span>    fn <a href="#method.seek" class="fn">seek</a>(&amp;mut self, pos: <a class="enum" href="https://doc.rust-lang.org/1.68.1/std/io/enum.SeekFrom.html" title="enum std::io::SeekFrom">SeekFrom</a>) -&gt; SeekFuture&lt;'_, Self&gt; { ... }
 <span class="item-spacer"></span>    fn <a href="#method.next" class="fn">next</a>(&amp;mut self) -&gt; NextFuture&lt;'_, Self&gt; { ... }
 }</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Extension of <a href="trait.Read.html" title="Read"><code>Read</code></a> to make it easier for use.</p>
-</div></details><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.read" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#191-197">source</a><h4 class="code-header">fn <a href="#method.read" class="fn">read</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a mut [<a class="prim [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.seek" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#200-206">source</a><h4 class="code-header">fn <a href="#method.seek" class="fn">seek</a>(&amp;mut self, pos: <a class="enum" href="https://doc.rust-lang.org/1.68.0/std/io/enum.SeekFrom.html" title="enum std::io::SeekFrom">SeekFrom</a>) -&gt; SeekFuture&lt;'_, Self&gt;</h4></section></summary>< [...]
+</div></details><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.read" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#191-197">source</a><h4 class="code-header">fn <a href="#method.read" class="fn">read</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a mut [<a class="prim [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.seek" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#200-206">source</a><h4 class="code-header">fn <a href="#method.seek" class="fn">seek</a>(&amp;mut self, pos: <a class="enum" href="https://doc.rust-lang.org/1.68.1/std/io/enum.SeekFrom.html" title="enum std::io::SeekFrom">SeekFrom</a>) -&gt; SeekFuture&lt;'_, Self&gt;</h4></section></summary>< [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.next" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#209-214">source</a><h4 class="code-header">fn <a href="#method.next" class="fn">next</a>(&amp;mut self) -&gt; NextFuture&lt;'_, Self&gt;</h4></section></summary><div class="docblock"><p>Build a future for <code>poll_next</code></p>
 </div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-ReadExt-for-T" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read.rs.html#186">source</a><a href="#impl-ReadExt-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T:&nbsp;<a class="trait" href="trait.Read.html" title="trait opendal::raw::oio::Read">Read</a>&gt; [...]
-</div></div><script src="../../../implementors/opendal/raw/oio/read/trait.ReadExt.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div>< [...]
\ No newline at end of file
+</div></div><script src="../../../implementors/opendal/raw/oio/read/trait.ReadExt.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div>< [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/trait.Write.html b/docs/rust/opendal/raw/oio/trait.Write.html
index b69e954a..a46fe935 100644
--- a/docs/rust/opendal/raw/oio/trait.Write.html
+++ b/docs/rust/opendal/raw/oio/trait.Write.html
@@ -1,15 +1,15 @@
-<!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="Write is the trait that OpenDAL returns to callers."><meta name="keywords" content="rust, rustlang, rust-lang, Write"><title>Write in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0 [...]
-    fn <a href="#tymethod.write" class="fn">write</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bs: Bytes<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Bo [...]
-<span class="item-spacer"></span>    fn <a href="#tymethod.append" class="fn">append</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bs: Bytes<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/boxed/struct.Box.h [...]
-<span class="item-spacer"></span>    fn <a href="#tymethod.close" class="fn">close</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="t [...]
+<!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="Write is the trait that OpenDAL returns to callers."><meta name="keywords" content="rust, rustlang, rust-lang, Write"><title>Write in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0 [...]
+    fn <a href="#tymethod.write" class="fn">write</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bs: Bytes<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Bo [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.append" class="fn">append</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bs: Bytes<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/boxed/struct.Box.h [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.close" class="fn">close</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="t [...]
 }</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Write is the trait that OpenDAL returns to callers.</p>
-</div></details><h2 id="required-methods" class="small-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.write" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#81">source</a><h4 class="code-header">fn <a href="#tymethod.write" class="fn">write</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;& [...]
+</div></details><h2 id="required-methods" class="small-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.write" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#81">source</a><h4 class="code-header">fn <a href="#tymethod.write" class="fn">write</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;& [...]
 <p>To append multiple bytes together, use <code>append</code> instead.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.append" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#88">source</a><h4 class="code-header">fn <a href="#tymethod.append" class="fn">append</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;bs: Bytes<br>) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/pin/struct. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.append" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#88">source</a><h4 class="code-header">fn <a href="#tymethod.append" class="fn">append</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;bs: Bytes<br>) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/pin/struct. [...]
 <p>It is highly recommended to align the length of the input bytes
 into blocks of 4MiB (except the last block) for better performance
 and compatibility.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.close" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#91">source</a><h4 class="code-header">fn <a href="#tymethod.close" class="fn">close</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self<br>) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">P [...]
-</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Write-for-()" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#95-117">source</a><a href="#impl-Write-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Write.html" title="trai [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.close" class="method has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#91">source</a><h4 class="code-header">fn <a href="#tymethod.close" class="fn">close</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self<br>) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">P [...]
+</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Write-for-()" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#95-117">source</a><a href="#impl-Write-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Write.html" title="trai [...]
 work as expected, we must add this impl.</p>
-</div><div class="impl-items"><section id="method.write-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#123-125">source</a><a href="#method.write-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.write" class="fn">write</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;bs: Bytes<br>) -&gt; <a class="struct" href="https://doc.rust-lang.org/1. [...]
\ No newline at end of file
+</div><div class="impl-items"><section id="method.write-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/write.rs.html#123-125">source</a><a href="#method.write-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.write" class="fn">write</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;bs: Bytes<br>) -&gt; <a class="struct" href="https://doc.rust-lang.org/1. [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/type.BlockingPager.html b/docs/rust/opendal/raw/oio/type.BlockingPager.html
index a1f891f9..a73ca425 100644
--- a/docs/rust/opendal/raw/oio/type.BlockingPager.html
+++ b/docs/rust/opendal/raw/oio/type.BlockingPager.html
@@ -1,2 +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="BlockingPager is a boxed [`BlockingPage`]"><meta name="keywords" content="rust, rustlang, rust-lang, BlockingPager"><title>BlockingPager in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512 [...]
-</div></details><h2 id="trait-implementations" class="small-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-BlockingPage-for-BlockingPager" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#110-114">source</a><a href="#impl-BlockingPage-for-BlockingPager" class="anchor">§</a><h3  [...]
\ 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="BlockingPager is a boxed [`BlockingPage`]"><meta name="keywords" content="rust, rustlang, rust-lang, BlockingPager"><title>BlockingPager in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512 [...]
+</div></details><h2 id="trait-implementations" class="small-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-BlockingPage-for-BlockingPager" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#110-114">source</a><a href="#impl-BlockingPage-for-BlockingPager" class="anchor">§</a><h3  [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/type.BlockingReader.html b/docs/rust/opendal/raw/oio/type.BlockingReader.html
index ea60c957..28388aca 100644
--- a/docs/rust/opendal/raw/oio/type.BlockingReader.html
+++ b/docs/rust/opendal/raw/oio/type.BlockingReader.html
@@ -1,2 +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="BlockingReader is a boxed dyn `BlockingRead`."><meta name="keywords" content="rust, rustlang, rust-lang, BlockingReader"><title>BlockingReader in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1 [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="BlockingReader is a boxed dyn `BlockingRead`."><meta name="keywords" content="rust, rustlang, rust-lang, BlockingReader"><title>BlockingReader in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1 [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/type.BlockingWriter.html b/docs/rust/opendal/raw/oio/type.BlockingWriter.html
index 488f9dfd..1c3f44e8 100644
--- a/docs/rust/opendal/raw/oio/type.BlockingWriter.html
+++ b/docs/rust/opendal/raw/oio/type.BlockingWriter.html
@@ -1,2 +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="BlockingWriter is a type erased [`BlockingWrite`]"><meta name="keywords" content="rust, rustlang, rust-lang, BlockingWriter"><title>BlockingWriter in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regul [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="BlockingWriter is a type erased [`BlockingWrite`]"><meta name="keywords" content="rust, rustlang, rust-lang, BlockingWriter"><title>BlockingWriter in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regul [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/type.Pager.html b/docs/rust/opendal/raw/oio/type.Pager.html
index b2e5ea44..bd9d6f45 100644
--- a/docs/rust/opendal/raw/oio/type.Pager.html
+++ b/docs/rust/opendal/raw/oio/type.Pager.html
@@ -1,2 +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="The boxed version of [`Page`]"><meta name="keywords" content="rust, rustlang, rust-lang, Pager"><title>Pager in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
-</div></details><h2 id="trait-implementations" class="small-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-Page-for-Pager" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#75-79">source</a><a href="#impl-Page-for-Pager" class="anchor">§</a><h3 class="code-header">impl <a class= [...]
\ 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="The boxed version of [`Page`]"><meta name="keywords" content="rust, rustlang, rust-lang, Pager"><title>Pager in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
+</div></details><h2 id="trait-implementations" class="small-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-Page-for-Pager" class="impl has-srclink"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page.rs.html#75-79">source</a><a href="#impl-Page-for-Pager" class="anchor">§</a><h3 class="code-header">impl <a class= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/type.Reader.html b/docs/rust/opendal/raw/oio/type.Reader.html
index 933b0dbe..9c50bf76 100644
--- a/docs/rust/opendal/raw/oio/type.Reader.html
+++ b/docs/rust/opendal/raw/oio/type.Reader.html
@@ -1,2 +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="Reader is a type erased [`Read`]."><meta name="keywords" content="rust, rustlang, rust-lang, Reader"><title>Reader in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Reader is a type erased [`Read`]."><meta name="keywords" content="rust, rustlang, rust-lang, Reader"><title>Reader in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/type.Writer.html b/docs/rust/opendal/raw/oio/type.Writer.html
index 47a74dac..5ce9aabb 100644
--- a/docs/rust/opendal/raw/oio/type.Writer.html
+++ b/docs/rust/opendal/raw/oio/type.Writer.html
@@ -1,2 +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="Writer is a type erased [`Write`]"><meta name="keywords" content="rust, rustlang, rust-lang, Writer"><title>Writer in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Writer is a type erased [`Write`]"><meta name="keywords" content="rust, rustlang, rust-lang, Writer"><title>Writer in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.AccessorInfo.html b/docs/rust/opendal/raw/struct.AccessorInfo.html
index 56500fa2..524986a9 100644
--- a/docs/rust/opendal/raw/struct.AccessorInfo.html
+++ b/docs/rust/opendal/raw/struct.AccessorInfo.html
@@ -1,26 +1,26 @@
 <!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="Metadata for accessor, users can use this metadata to get information of underlying backend."><meta name="keywords" content="rust, rustlang, rust-lang, AccessorInfo"><title>AccessorInfo in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../ [...]
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#442-522">source</a><a href="#impl-AccessorInfo" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Accesso [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_scheme" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#449-452">source</a><h4 class="code-header">pub fn <a href="#method.set_scheme" class="fn">set_scheme</a>(&amp;mut self, scheme: <a class="enum" href="../enum.Scheme.html" title="enum opendal::Scheme">Scheme</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#455-457">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Root of backend, will be in format like < [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#462-465">source</a><h4 class="code-header">pub fn <a href="#method.set_root" class="fn">set_root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/pri [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_scheme" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#449-452">source</a><h4 class="code-header">pub fn <a href="#method.set_scheme" class="fn">set_scheme</a>(&amp;mut self, scheme: <a class="enum" href="../enum.Scheme.html" title="enum opendal::Scheme">Scheme</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#455-457">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Root of backend, will be in format like < [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#462-465">source</a><h4 class="code-header">pub fn <a href="#method.set_root" class="fn">set_root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/pri [...]
 <p>Note: input root must be normalized.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#473-475">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Name of backend, could be empty if underl [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#473-475">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Name of backend, could be empty if underl [...]
 <p>For example:</p>
 <ul>
 <li>name for <code>s3</code> =&gt; bucket name</li>
 <li>name for <code>azblob</code> =&gt; container name</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_name" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#478-481">source</a><h4 class="code-header">pub fn <a href="#method.set_name" class="fn">set_name</a>(&amp;mut self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/pri [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_name" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#478-481">source</a><h4 class="code-header">pub fn <a href="#method.set_name" class="fn">set_name</a>(&amp;mut self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/pri [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.capabilities" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#499-501">source</a><h4 class="code-header">pub fn <a href="#method.capabilities" class="fn">capabilities</a>(&amp;self) -&gt; FlagSet&lt;<a class="enum" href="enum.AccessorCapability.html" title="enum opendal::raw::AccessorCapability">AccessorCapability</a>&gt;</h4></section></summary><di [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_capabilities" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#504-510">source</a><h4 class="code-header">pub fn <a href="#method.set_capabilities" class="fn">set_capabilities</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;capabilities: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.Into [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_capabilities" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#504-510">source</a><h4 class="code-header">pub fn <a href="#method.set_capabilities" class="fn">set_capabilities</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;capabilities: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/convert/trait.Into [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.hints" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#513-515">source</a><h4 class="code-header">pub fn <a href="#method.hints" class="fn">hints</a>(&amp;self) -&gt; FlagSet&lt;<a class="enum" href="enum.AccessorHint.html" title="enum opendal::raw::AccessorHint">AccessorHint</a>&gt;</h4></section></summary><div class="docblock"><p>Get backend’s hints.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_hints" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#518-521">source</a><h4 class="code-header">pub fn <a href="#method.set_hints" class="fn">set_hints</a>(&amp;mut self, hints: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;FlagSet&lt;<a class="enum" hre [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#430">source</a><a href="#impl-Clone-for-AccessorInfo" class="anchor">§</a><h3 c [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_hints" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#518-521">source</a><h4 class="code-header">pub fn <a href="#method.set_hints" class="fn">set_hints</a>(&amp;mut self, hints: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;FlagSet&lt;<a class="enum" hre [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#430">source</a><a href="#impl-Clone-for-AccessorInfo" class="anchor">§</a><h3 c [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-AccessorInfo" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AccessorInfo" class="anchor">§</a><h3  [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AccessorInfo" class="anchor">§</a><h3  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-AccessorInfo" class="impl has-srclink"><a href="#impl-Pointable-for-AccessorInfo" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-AccessorInfo" class="impl has-srclink"><a href="#impl-Pointable-for-AccessorInfo" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.BytesContentRange.html b/docs/rust/opendal/raw/struct.BytesContentRange.html
index cb0a2587..a0c556da 100644
--- a/docs/rust/opendal/raw/struct.BytesContentRange.html
+++ b/docs/rust/opendal/raw/struct.BytesContentRange.html
@@ -12,24 +12,24 @@ Please make sure their comes up with <code>with_range</code> or <code>with_size<
 <li>When BytesContentRange’s range is known, it must be non-empty.</li>
 <li>When BytesContentRange’s range is no known, we don’t know whether it’s empty.</li>
 </ul>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#62-135">source</a><a href="#impl-BytesContentRange" class="anchor">§</a><h3 class="code-header">impl <a class [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#62-135">source</a><a href="#impl-BytesContentRange" class="anchor">§</a><h3 class="code-header">impl <a class [...]
 <p>The range is inclusive: <code>[start..=end]</code> as described in <code>content-range</code>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_size" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#73-76">source</a><h4 class="code-header">pub fn <a href="#method.with_size" class="fn">with_size</a>(self, size: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u64.html">u64</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Updat [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#79-85">source</a><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#88-90">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https:// [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.range" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#93-99">source</a><h4 class="code-header">pub fn <a href="#method.range" class="fn">range</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https:// [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.range_inclusive" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#102-108">source</a><h4 class="code-header">pub fn <a href="#method.range_inclusive" class="fn">range_inclusive</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt; [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.to_header" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#111-113">source</a><h4 class="code-header">pub fn <a href="#method.to_header" class="fn">to_header</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.from_bytes_range" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#116-125">source</a><h4 class="code-header">pub fn <a href="#method.from_bytes_range" class="fn">from_bytes_range</a>(total_size: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u64.html">u64</a>, range: <a class="struct" href="struct.Byte [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.to_bytes_range" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#128-134">source</a><h4 class="code-header">pub fn <a href="#method.to_bytes_range" class="fn">to_bytes_range</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#52">source</a><a href="#impl-Clone-for-BytesContentRa [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#52">source</a><a href="#impl-Serialize-for-BytesContentRange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.158/s [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_size" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#73-76">source</a><h4 class="code-header">pub fn <a href="#method.with_size" class="fn">with_size</a>(self, size: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u64.html">u64</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Updat [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#79-85">source</a><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#88-90">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https:// [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.range" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#93-99">source</a><h4 class="code-header">pub fn <a href="#method.range" class="fn">range</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https:// [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.range_inclusive" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#102-108">source</a><h4 class="code-header">pub fn <a href="#method.range_inclusive" class="fn">range_inclusive</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt; [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.to_header" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#111-113">source</a><h4 class="code-header">pub fn <a href="#method.to_header" class="fn">to_header</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.from_bytes_range" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#116-125">source</a><h4 class="code-header">pub fn <a href="#method.from_bytes_range" class="fn">from_bytes_range</a>(total_size: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u64.html">u64</a>, range: <a class="struct" href="struct.Byte [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.to_bytes_range" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#128-134">source</a><h4 class="code-header">pub fn <a href="#method.to_bytes_range" class="fn">to_bytes_range</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#52">source</a><a href="#impl-Clone-for-BytesContentRa [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#52">source</a><a href="#impl-Serialize-for-BytesContentRange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.158/s [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-BytesContentRange" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tr [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BytesContentRange" class="anchor" [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BytesContentRange" class="anchor" [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-BytesContentRange" class="impl has-srclink"><a href="#impl-Pointable-for-BytesContentRange" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-BytesContentRange" class="impl has-srclink"><a href="#impl-Pointable-for-BytesContentRange" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details><section id="impl-DeserializeOwned-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.158/src/serde/de/mod.rs.html#604">source< [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details><section id="impl-DeserializeOwned-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.158/src/serde/de/mod.rs.html#604">source< [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.BytesRange.html b/docs/rust/opendal/raw/struct.BytesRange.html
index 03f0fef5..67b48d61 100644
--- a/docs/rust/opendal/raw/struct.BytesRange.html
+++ b/docs/rust/opendal/raw/struct.BytesRange.html
@@ -13,7 +13,7 @@ tailing part of content, a.k.a, the last <code>&lt;end&gt;</code> bytes of conte
 <li><code>0..1024</code> will be converted to header <code>range: bytes=0-1024</code></li>
 <li><code>..1024</code> will be converted to header <code>range: bytes=-1024</code></li>
 </ul>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BytesRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#60-136">source</a><a href="#impl-BytesRange" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BytesRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#60-136">source</a><a href="#impl-BytesRange" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct [...]
 <p>It better to use <code>BytesRange::from(1024..2048)</code> to construct.</p>
 <h5 id="note"><a href="#note">Note</a></h5>
 <p>The behavior for <code>None</code> and <code>Some(0)</code> is different.</p>
@@ -21,26 +21,26 @@ tailing part of content, a.k.a, the last <code>&lt;end&gt;</code> bytes of conte
 <li>offset=None =&gt; <code>bytes=-&lt;size&gt;</code>, read <code>&lt;size&gt;</code> bytes from end.</li>
 <li>offset=Some(0) =&gt; <code>bytes=0-&lt;size&gt;</code>, read <code>&lt;size&gt;</code> bytes from start.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.offset" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#76-78">source</a><h4 class="code-header">pub fn <a href="#method.offset" class="fn">offset</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://do [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#81-83">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.is_full" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#88-90">source</a><h4 class="code-header">pub fn <a href="#method.is_full" class="fn">is_full</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if this range is f [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.offset" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#76-78">source</a><h4 class="code-header">pub fn <a href="#method.offset" class="fn">offset</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://do [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#81-83">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.is_full" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#88-90">source</a><h4 class="code-header">pub fn <a href="#method.is_full" class="fn">is_full</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if this range is f [...]
 <p>If this range is full, we don’t need to specify it in http request.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.to_header" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#98-100">source</a><h4 class="code-header">pub fn <a href="#method.to_header" class="fn">to_header</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summar [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.to_header" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#98-100">source</a><h4 class="code-header">pub fn <a href="#method.to_header" class="fn">to_header</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summar [...]
 <h5 id="note-1"><a href="#note-1">NOTE</a></h5>
 <ul>
 <li><code>bytes=-1023</code> means get the suffix of the file.</li>
 <li><code>bytes=0-1023</code> means get the first 1024 bytes, we must set the end to 1023.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.to_range" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#103-114">source</a><h4 class="code-header">pub fn <a href="#method.to_range" class="fn">to_range</a>(&amp;self) -&gt; impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/range/trait.RangeBounds.html" title="trait core::ops::range::RangeBounds">RangeBounds</a>&lt [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.to_range" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#103-114">source</a><h4 class="code-header">pub fn <a href="#method.to_range" class="fn">to_range</a>(&amp;self) -&gt; impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/range/trait.RangeBounds.html" title="trait core::ops::range::RangeBounds">RangeBounds</a>&lt [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.apply_on_bytes" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#117-135">source</a><h4 class="code-header">pub fn <a href="#method.apply_on_bytes" class="fn">apply_on_bytes</a>(&amp;self, bs: Bytes) -&gt; Bytes</h4></section></summary><div class="docblock"><p>apply_on_bytes will apply range on bytes.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-BytesRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#52">source</a><a href="#impl-Clone-for-BytesRange" class="anchor">§< [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-BytesRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#52">source</a><a href="#impl-Copy-for-BytesRange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="str [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-BytesRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#52">source</a><a href="#impl-Clone-for-BytesRange" class="anchor">§< [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-BytesRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_range.rs.html#52">source</a><a href="#impl-Copy-for-BytesRange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="str [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-BytesRange" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-BytesRange" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrum [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BytesRange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BytesRange" class="anchor">§</a><h3 clas [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BytesRange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BytesRange" class="anchor">§</a><h3 clas [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-BytesRange" class="impl has-srclink"><a href="#impl-Pointable-for-BytesRange" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-BytesRange" class="impl has-srclink"><a href="#impl-Pointable-for-BytesRange" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.ErrorResponse.html b/docs/rust/opendal/raw/struct.ErrorResponse.html
index c0417d8c..2c22ff83 100644
--- a/docs/rust/opendal/raw/struct.ErrorResponse.html
+++ b/docs/rust/opendal/raw/struct.ErrorResponse.html
@@ -2,13 +2,13 @@
 <p>This struct should only be used to parse error response which is small.</p>
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ErrorResponse" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/error.rs.html#41-56">source</a><a href="#impl-ErrorResponse" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.headers" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/error.rs.html#48-50">source</a><h4 class="code-header">pub fn <a href="#method.headers" class="fn">headers</a>(&amp;self) -&gt; &amp;<a class="struct" href="https://docs.rs/http/0.2.9/http/header/map/struct.HeaderMap.html" title="struct http::header::map::HeaderMap">HeaderMap</a>&lt;<a class="struct" [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.body" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/error.rs.html#53-55">source</a><h4 class="code-header">pub fn <a href="#method.body" class="fn">body</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8.html">u8</a>] <a href="#" class="notable-traits" data-ty="&amp;[u8]">ⓘ</a></h4></section></summary> [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Display-for-ErrorResponse" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/error.rs.html#58-68">source</a><a href="#impl-Display-for-ErrorResponse" class="anc [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.body" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/error.rs.html#53-55">source</a><h4 class="code-header">pub fn <a href="#method.body" class="fn">body</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u8.html">u8</a>] <a href="#" class="notable-traits" data-ty="&amp;[u8]">ⓘ</a></h4></section></summary> [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Display-for-ErrorResponse" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/error.rs.html#58-68">source</a><a href="#impl-Display-for-ErrorResponse" class="anc [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-ErrorResponse" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-ErrorResponse" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::i [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ErrorResponse" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ErrorResponse" class="anchor">§</a><h [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ErrorResponse" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ErrorResponse" class="anchor">§</a><h [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ErrorResponse" class="impl has-srclink"><a href="#impl-Pointable-for-ErrorResponse" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class= [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ErrorResponse" class="impl has-srclink"><a href="#impl-Pointable-for-ErrorResponse" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class= [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div><script type="text/json" id="notable-traits-data">{"&[u8]":"<h3>Notable traits for <code>&amp;[<a class=\"primitive\" href=\"https://doc.rust-lang.org/1.68.0/std/primitive.u8.html [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div><script type="text/json" id="notable-traits-data">{"&[u8]":"<h3>Notable traits for <code>&amp;[<a class=\"primitive\" href=\"https://doc.rust-lang.org/1.68.1/std/primitive.u8.html [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.HttpClient.html b/docs/rust/opendal/raw/struct.HttpClient.html
index c7fe4368..76365e1e 100644
--- a/docs/rust/opendal/raw/struct.HttpClient.html
+++ b/docs/rust/opendal/raw/struct.HttpClient.html
@@ -21,13 +21,13 @@ Auto redirect may cause OpenDAL to fail.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.sync_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#149-151">source</a><h4 class="code-header">pub fn <a href="#method.sync_client" class="fn">sync_client</a>(&amp;self) -&gt; Agent</h4></section></summary><div class="docblock"><p>Get the sync client from http client.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.send" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#154-200">source</a><h4 class="code-header">pub fn <a href="#method.send" class="fn">send</a>(&amp;self, req: <a class="struct" href="https://docs.rs/http/0.2.9/http/request/struct.Request.html" title="struct http::request::Request">Request</a>&lt;<a class="enum" href="enum.Body.html" titl [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.send_async" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#203-278">source</a><h4 class="code-header">pub async fn <a href="#method.send_async" class="fn">send_async</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;req: <a class="struct" href="https://docs.rs/http/0.2.9/http/request/struct.Request.html" title="struct ht [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-HttpClient" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#42">source</a><a href="#impl-Clone-for-HttpClient" class="anchor">§</a><h [...]
-</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#50-52">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68. [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-HttpClient" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#42">source</a><a href="#impl-Clone-for-HttpClient" class="anchor">§</a><h [...]
+</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#50-52">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68. [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-HttpClient" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-HttpClient" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrum [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-HttpClient" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-HttpClient" class="anchor">§</a><h3 clas [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-HttpClient" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-HttpClient" class="anchor">§</a><h3 clas [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-HttpClient" class="impl has-srclink"><a href="#impl-Pointable-for-HttpClient" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-HttpClient" class="impl has-srclink"><a href="#impl-Pointable-for-HttpClient" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.IncomingAsyncBody.html b/docs/rust/opendal/raw/struct.IncomingAsyncBody.html
index 1979c722..5c6b2578 100644
--- a/docs/rust/opendal/raw/struct.IncomingAsyncBody.html
+++ b/docs/rust/opendal/raw/struct.IncomingAsyncBody.html
@@ -1,16 +1,16 @@
 <!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="IncomingAsyncBody carries the content returned by remote servers."><meta name="keywords" content="rust, rustlang, rust-lang, IncomingAsyncBody"><title>IncomingAsyncBody in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/Sour [...]
 <h2 id="notes"><a href="#notes">Notes</a></h2>
 <p>Client SHOULD NEVER construct this body.</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-IncomingAsyncBody" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#138-210">source</a><a href="#impl-IncomingAsyncBody" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.consume" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#150-162">source</a><h4 class="code-header">pub async fn <a href="#method.consume" class="fn">consume</a>(self) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html"> [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-IncomingAsyncBody" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#138-210">source</a><a href="#impl-IncomingAsyncBody" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.consume" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#150-162">source</a><h4 class="code-header">pub async fn <a href="#method.consume" class="fn">consume</a>(self) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.unit.html"> [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.bytes" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#167-194">source</a><h4 class="code-header">pub async fn <a href="#method.bytes" class="fn">bytes</a>(self) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;Bytes&gt;</h4></section></summary><div class="docblock"><p>Consume the response to bytes.</p>
 <p>Borrowed from hyper’s <a href="https://docs.rs/hyper/latest/hyper/body/fn.to_bytes.html"><code>to_bytes</code></a>.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Read-for-IncomingAsyncBody" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#212-269">source</a><a href="#impl-Read-for-IncomingAsyncBody" class=" [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Read-for-IncomingAsyncBody" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#212-269">source</a><a href="#impl-Read-for-IncomingAsyncBody" class=" [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-IncomingAsyncBody" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-IncomingAsyncBody" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tr [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-IncomingAsyncBody" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-IncomingAsyncBody" class="anchor" [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-IncomingAsyncBody" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-IncomingAsyncBody" class="anchor" [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-IncomingAsyncBody" class="impl has-srclink"><a href="#impl-Pointable-for-IncomingAsyncBody" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-IncomingAsyncBody" class="impl has-srclink"><a href="#impl-Pointable-for-IncomingAsyncBody" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.PresignedRequest.html b/docs/rust/opendal/raw/struct.PresignedRequest.html
index a00f5688..20b58229 100644
--- a/docs/rust/opendal/raw/struct.PresignedRequest.html
+++ b/docs/rust/opendal/raw/struct.PresignedRequest.html
@@ -3,12 +3,12 @@
 </div></details><details class="toggle method-toggle" open><summary><section id="method.method" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#75-77">source</a><h4 class="code-header">pub fn <a href="#method.method" class="fn">method</a>(&amp;self) -&gt; &amp;<a class="struct" href="https://docs.rs/http/0.2.9/http/method/struct.Method.html" title="struct http::method::Method">Method</a></h4></section></summary><div class="docblock"><p>Retu [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.uri" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#80-82">source</a><h4 class="code-header">pub fn <a href="#method.uri" class="fn">uri</a>(&amp;self) -&gt; &amp;<a class="struct" href="https://docs.rs/http/0.2.9/http/uri/struct.Uri.html" title="struct http::uri::Uri">Uri</a></h4></section></summary><div class="docblock"><p>Return request’s uri.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.header" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#85-87">source</a><h4 class="code-header">pub fn <a href="#method.header" class="fn">header</a>(&amp;self) -&gt; &amp;<a class="struct" href="https://docs.rs/http/0.2.9/http/header/map/struct.HeaderMap.html" title="struct http::header::map::HeaderMap">HeaderMap</a></h4></section></summary><div class= [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-PresignedRequest" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#57">source</a><a href="#impl-Clone-for-PresignedRequest" class="anchor">§</a><h3 [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-PresignedRequest" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#57">source</a><a href="#impl-Clone-for-PresignedRequest" class="anchor">§</a><h3 [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-PresignedRequest" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-PresignedRequest" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait trac [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PresignedRequest" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PresignedRequest" class="anchor">§ [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PresignedRequest" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PresignedRequest" class="anchor">§ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-PresignedRequest" class="impl has-srclink"><a href="#impl-Pointable-for-PresignedRequest" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN"  [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-PresignedRequest" class="impl has-srclink"><a href="#impl-Pointable-for-PresignedRequest" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN"  [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.RpBatch.html b/docs/rust/opendal/raw/struct.RpBatch.html
index d08fceac..0cf76888 100644
--- a/docs/rust/opendal/raw/struct.RpBatch.html
+++ b/docs/rust/opendal/raw/struct.RpBatch.html
@@ -2,12 +2,12 @@
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RpBatch" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#138-153">source</a><a href="#impl-RpBatch" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RpBatch.html" title="s [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.results" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#145-147">source</a><h4 class="code-header">pub fn <a href="#method.results" class="fn">results</a>(&amp;self) -&gt; &amp;<a class="enum" href="enum.BatchedResults.html" title="enum opendal::raw::BatchedResults">BatchedResults</a></h4></section></summary><div class="docblock"><p>Get the results from [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.into_results" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#150-152">source</a><h4 class="code-header">pub fn <a href="#method.into_results" class="fn">into_results</a>(self) -&gt; <a class="enum" href="enum.BatchedResults.html" title="enum opendal::raw::BatchedResults">BatchedResults</a></h4></section></summary><div class="docblock"><p>Consume RpBatch [...]
-</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-RpBatch" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-RpBatch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/panic/unwind_safe/trait.RefUnwindSafe.h [...]
+</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-RpBatch" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-RpBatch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/panic/unwind_safe/trait.RefUnwindSafe.h [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-RpBatch" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-RpBatch" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::I [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpBatch" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpBatch" class="anchor">§</a><h3 class="cod [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpBatch" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpBatch" class="anchor">§</a><h3 class="cod [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpBatch" class="impl has-srclink"><a href="#impl-Pointable-for-RpBatch" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</ [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpBatch" class="impl has-srclink"><a href="#impl-Pointable-for-RpBatch" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</ [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.RpCreate.html b/docs/rust/opendal/raw/struct.RpCreate.html
index fad46f8f..60e913a7 100644
--- a/docs/rust/opendal/raw/struct.RpCreate.html
+++ b/docs/rust/opendal/raw/struct.RpCreate.html
@@ -1,10 +1,10 @@
 <!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="Reply for `create` operation"><meta name="keywords" content="rust, rustlang, rust-lang, RpCreate"><title>RpCreate in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel= [...]
-</div></details><h2 id="trait-implementations" class="small-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-RpCreate" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#23">source</a><a href="#impl-Clone-for-RpCreate" class="anchor">§</a><h3 class="code-header">impl <a class="tr [...]
+</div></details><h2 id="trait-implementations" class="small-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-RpCreate" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#23">source</a><a href="#impl-Clone-for-RpCreate" class="anchor">§</a><h3 class="code-header">impl <a class="tr [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-RpCreate" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-RpCreate" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpCreate" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpCreate" class="anchor">§</a><h3 class="c [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpCreate" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpCreate" class="anchor">§</a><h3 class="c [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpCreate" class="impl has-srclink"><a href="#impl-Pointable-for-RpCreate" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpCreate" class="impl has-srclink"><a href="#impl-Pointable-for-RpCreate" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.RpDelete.html b/docs/rust/opendal/raw/struct.RpDelete.html
index e6e1b90b..9ca03a69 100644
--- a/docs/rust/opendal/raw/struct.RpDelete.html
+++ b/docs/rust/opendal/raw/struct.RpDelete.html
@@ -1,10 +1,10 @@
 <!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="Reply for `delete` operation"><meta name="keywords" content="rust, rustlang, rust-lang, RpDelete"><title>RpDelete in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel= [...]
-</div></details><h2 id="trait-implementations" class="small-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-RpDelete" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#27">source</a><a href="#impl-Clone-for-RpDelete" class="anchor">§</a><h3 class="code-header">impl <a class="tr [...]
+</div></details><h2 id="trait-implementations" class="small-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-RpDelete" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#27">source</a><a href="#impl-Clone-for-RpDelete" class="anchor">§</a><h3 class="code-header">impl <a class="tr [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-RpDelete" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-RpDelete" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpDelete" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpDelete" class="anchor">§</a><h3 class="c [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpDelete" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpDelete" class="anchor">§</a><h3 class="c [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpDelete" class="impl has-srclink"><a href="#impl-Pointable-for-RpDelete" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpDelete" class="impl has-srclink"><a href="#impl-Pointable-for-RpDelete" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.RpList.html b/docs/rust/opendal/raw/struct.RpList.html
index 218ce74f..442b5d77 100644
--- a/docs/rust/opendal/raw/struct.RpList.html
+++ b/docs/rust/opendal/raw/struct.RpList.html
@@ -1,10 +1,10 @@
 <!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="Reply for `list` operation."><meta name="keywords" content="rust, rustlang, rust-lang, RpList"><title>RpList in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="prel [...]
-</div></details><h2 id="trait-implementations" class="small-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-RpList" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#31">source</a><a href="#impl-Clone-for-RpList" class="anchor">§</a><h3 class="code-header">impl <a class="trait" [...]
+</div></details><h2 id="trait-implementations" class="small-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-RpList" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#31">source</a><a href="#impl-Clone-for-RpList" class="anchor">§</a><h3 class="code-header">impl <a class="trait" [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-RpList" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-RpList" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpList" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpList" class="anchor">§</a><h3 class="code- [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpList" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpList" class="anchor">§</a><h3 class="code- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpList" class="impl has-srclink"><a href="#impl-Pointable-for-RpList" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpList" class="impl has-srclink"><a href="#impl-Pointable-for-RpList" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.RpPresign.html b/docs/rust/opendal/raw/struct.RpPresign.html
index 2fc81e6d..ce0eb0c2 100644
--- a/docs/rust/opendal/raw/struct.RpPresign.html
+++ b/docs/rust/opendal/raw/struct.RpPresign.html
@@ -1,12 +1,12 @@
 <!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="Reply for `presign` operation."><meta name="keywords" content="rust, rustlang, rust-lang, RpPresign"><title>RpPresign in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link  [...]
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RpPresign" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#44-54">source</a><a href="#impl-RpPresign" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RpPresign.html" titl [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.into_presigned_request" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#51-53">source</a><h4 class="code-header">pub fn <a href="#method.into_presigned_request" class="fn">into_presigned_request</a>(self) -&gt; <a class="struct" href="struct.PresignedRequest.html" title="struct opendal::raw::PresignedRequest">PresignedRequest</a></h4></section></summary> [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-RpPresign" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#39">source</a><a href="#impl-Clone-for-RpPresign" class="anchor">§</a><h3 class="code-h [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-RpPresign" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#39">source</a><a href="#impl-Clone-for-RpPresign" class="anchor">§</a><h3 class="code-h [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-RpPresign" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-RpPresign" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrumen [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpPresign" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpPresign" class="anchor">§</a><h3 class= [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpPresign" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpPresign" class="anchor">§</a><h3 class= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpPresign" class="impl has-srclink"><a href="#impl-Pointable-for-RpPresign" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpPresign" class="impl has-srclink"><a href="#impl-Pointable-for-RpPresign" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.RpRead.html b/docs/rust/opendal/raw/struct.RpRead.html
index f79dd62b..526a4a77 100644
--- a/docs/rust/opendal/raw/struct.RpRead.html
+++ b/docs/rust/opendal/raw/struct.RpRead.html
@@ -1,14 +1,14 @@
 <!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="Reply for `read` operation."><meta name="keywords" content="rust, rustlang, rust-lang, RpRead"><title>RpRead in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="prel [...]
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RpRead" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#109-131">source</a><a href="#impl-RpRead" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RpRead.html" title="stru [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RpRead" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#109-131">source</a><a href="#impl-RpRead" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RpRead.html" title="stru [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.with_metadata" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#118-120">source</a><h4 class="code-header">pub fn <a href="#method.with_metadata" class="fn">with_metadata</a>(meta: <a class="struct" href="../struct.Metadata.html" title="struct opendal::Metadata">Metadata</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Create reply read wi [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.metadata" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#123-125">source</a><h4 class="code-header">pub fn <a href="#method.metadata" class="fn">metadata</a>(&amp;self) -&gt; &amp;<a class="struct" href="../struct.Metadata.html" title="struct opendal::Metadata">Metadata</a></h4></section></summary><div class="docblock"><p>Get a ref of metadata.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.into_metadata" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#128-130">source</a><h4 class="code-header">pub fn <a href="#method.into_metadata" class="fn">into_metadata</a>(self) -&gt; <a class="struct" href="../struct.Metadata.html" title="struct opendal::Metadata">Metadata</a></h4></section></summary><div class="docblock"><p>Consume reply to get the m [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-RpRead" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#104">source</a><a href="#impl-Clone-for-RpRead" class="anchor">§</a><h3 class="code-header [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-RpRead" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#104">source</a><a href="#impl-Clone-for-RpRead" class="anchor">§</a><h3 class="code-header [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-RpRead" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-RpRead" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpRead" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpRead" class="anchor">§</a><h3 class="code- [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpRead" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpRead" class="anchor">§</a><h3 class="code- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpRead" class="impl has-srclink"><a href="#impl-Pointable-for-RpRead" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpRead" class="impl has-srclink"><a href="#impl-Pointable-for-RpRead" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.RpScan.html b/docs/rust/opendal/raw/struct.RpScan.html
index 24aa95ec..24643930 100644
--- a/docs/rust/opendal/raw/struct.RpScan.html
+++ b/docs/rust/opendal/raw/struct.RpScan.html
@@ -1,10 +1,10 @@
 <!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="Reply for `scan` operation."><meta name="keywords" content="rust, rustlang, rust-lang, RpScan"><title>RpScan in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="prel [...]
-</div></details><h2 id="trait-implementations" class="small-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-RpScan" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#35">source</a><a href="#impl-Clone-for-RpScan" class="anchor">§</a><h3 class="code-header">impl <a class="trait" [...]
+</div></details><h2 id="trait-implementations" class="small-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-RpScan" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#35">source</a><a href="#impl-Clone-for-RpScan" class="anchor">§</a><h3 class="code-header">impl <a class="trait" [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-RpScan" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-RpScan" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpScan" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpScan" class="anchor">§</a><h3 class="code- [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpScan" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpScan" class="anchor">§</a><h3 class="code- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpScan" class="impl has-srclink"><a href="#impl-Pointable-for-RpScan" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpScan" class="impl has-srclink"><a href="#impl-Pointable-for-RpScan" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.RpStat.html b/docs/rust/opendal/raw/struct.RpStat.html
index b8f92fb4..70242316 100644
--- a/docs/rust/opendal/raw/struct.RpStat.html
+++ b/docs/rust/opendal/raw/struct.RpStat.html
@@ -1,13 +1,13 @@
 <!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="Reply for `stat` operation."><meta name="keywords" content="rust, rustlang, rust-lang, RpStat"><title>RpStat in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="prel [...]
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RpStat" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#201-217">source</a><a href="#impl-RpStat" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RpStat.html" title="stru [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.map_metadata" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#208-211">source</a><h4 class="code-header">pub fn <a href="#method.map_metadata" class="fn">map_metadata</a>(self, f: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="struct" href=". [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.map_metadata" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#208-211">source</a><h4 class="code-header">pub fn <a href="#method.map_metadata" class="fn">map_metadata</a>(self, f: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="struct" href=". [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.into_metadata" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#214-216">source</a><h4 class="code-header">pub fn <a href="#method.into_metadata" class="fn">into_metadata</a>(self) -&gt; <a class="struct" href="../struct.Metadata.html" title="struct opendal::Metadata">Metadata</a></h4></section></summary><div class="docblock"><p>Consume RpStat to get the  [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-RpStat" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#196">source</a><a href="#impl-Clone-for-RpStat" class="anchor">§</a><h3 class="code-header [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-RpStat" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#196">source</a><a href="#impl-Clone-for-RpStat" class="anchor">§</a><h3 class="code-header [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-RpStat" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-RpStat" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpStat" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpStat" class="anchor">§</a><h3 class="code- [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpStat" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpStat" class="anchor">§</a><h3 class="code- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpStat" class="impl has-srclink"><a href="#impl-Pointable-for-RpStat" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpStat" class="impl has-srclink"><a href="#impl-Pointable-for-RpStat" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.RpWrite.html b/docs/rust/opendal/raw/struct.RpWrite.html
index d5f2e65a..7b70852e 100644
--- a/docs/rust/opendal/raw/struct.RpWrite.html
+++ b/docs/rust/opendal/raw/struct.RpWrite.html
@@ -1,11 +1,11 @@
 <!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="Reply for `write` operation."><meta name="keywords" content="rust, rustlang, rust-lang, RpWrite"><title>RpWrite in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="p [...]
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RpWrite" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#223-228">source</a><a href="#impl-RpWrite" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RpWrite.html" title="s [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-RpWrite" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#220">source</a><a href="#impl-Clone-for-RpWrite" class="anchor">§</a><h3 class="code-head [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-RpWrite" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#220">source</a><a href="#impl-Clone-for-RpWrite" class="anchor">§</a><h3 class="code-head [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-RpWrite" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-RpWrite" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::I [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpWrite" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpWrite" class="anchor">§</a><h3 class="cod [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RpWrite" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpWrite" class="anchor">§</a><h3 class="cod [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpWrite" class="impl has-srclink"><a href="#impl-Pointable-for-RpWrite" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</ [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RpWrite" class="impl has-srclink"><a href="#impl-Pointable-for-RpWrite" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</ [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/trait.Accessor.html b/docs/rust/opendal/raw/trait.Accessor.html
index 2d9248fe..e7579348 100644
--- a/docs/rust/opendal/raw/trait.Accessor.html
+++ b/docs/rust/opendal/raw/trait.Accessor.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 implementors."><meta name="keywords" content="rust, rustlang, rust-lang, Accessor"><title>Accessor in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72 [...]
+<!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 implementors."><meta name="keywords" content="rust, rustlang, rust-lang, Accessor"><title>Accessor in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72 [...]
     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,30 +8,30 @@
 
 <details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 17 methods</span></summary>    fn <a href="#tymethod.info" class="fn">info</a>(&amp;self) -&gt; <a class="struct" href="struct.AccessorInfo.html" title="struct opendal::raw::AccessorInfo">AccessorInfo</a>;
 
-    fn <a href="#method.create" class="fn">create</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpCreate.html" title="struct opendal::ops::OpCreate">OpCreate</a><br>&nbsp; [...]
+    fn <a href="#method.create" class="fn">create</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpCreate.html" title="struct opendal::ops::OpCreate">OpCreate</a><br>&nbsp; [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.read" class="fn">read</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpRead.html" title="struct opendal::ops::OpRea [...]
+<span class="item-spacer"></span>    fn <a href="#method.read" class="fn">read</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpRead.html" title="struct opendal::ops::OpRea [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.write" class="fn">write</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpWrite.html" title="struct opendal::ops::Op [...]
+<span class="item-spacer"></span>    fn <a href="#method.write" class="fn">write</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpWrite.html" title="struct opendal::ops::Op [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.stat" class="fn">stat</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpStat.html" title="struct opendal::ops::OpSta [...]
+<span class="item-spacer"></span>    fn <a href="#method.stat" class="fn">stat</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpStat.html" title="struct opendal::ops::OpSta [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.delete" class="fn">delete</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpDelete.html" title="struct opendal::ops: [...]
+<span class="item-spacer"></span>    fn <a href="#method.delete" class="fn">delete</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpDelete.html" title="struct opendal::ops: [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.list" class="fn">list</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpList.html" title="struct opendal::ops::OpLis [...]
+<span class="item-spacer"></span>    fn <a href="#method.list" class="fn">list</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpList.html" title="struct opendal::ops::OpLis [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.scan" class="fn">scan</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpScan.html" title="struct opendal::ops::OpSca [...]
+<span class="item-spacer"></span>    fn <a href="#method.scan" class="fn">scan</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpScan.html" title="struct opendal::ops::OpSca [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.presign" class="fn">presign</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpPresign.html" title="struct opendal::ops::OpPresign">OpPresign</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpPresign.html" title="struct opendal::raw::RpPresi [...]
-<span class="item-spacer"></span>    fn <a href="#method.batch" class="fn">batch</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpBatch.html" title="struct opendal::ops::OpBatch">OpBatch</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin [...]
+<span class="item-spacer"></span>    fn <a href="#method.presign" class="fn">presign</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpPresign.html" title="struct opendal::ops::OpPresign">OpPresign</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpPresign.html" title="struct opendal::raw::RpPresi [...]
+<span class="item-spacer"></span>    fn <a href="#method.batch" class="fn">batch</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpBatch.html" title="struct opendal::ops::OpBatch">OpBatch</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.blocking_create" class="fn">blocking_create</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpCreate.html" title="struct opendal::ops::OpCreate">OpCreate</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpCreate.html" title="struct opendal:: [...]
-<span class="item-spacer"></span>    fn <a href="#method.blocking_read" class="fn">blocking_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpRead.html" title="struct opendal::ops::OpRead">OpRead</a><br>&nbsp;&nbsp;&nb [...]
-<span class="item-spacer"></span>    fn <a href="#method.blocking_write" class="fn">blocking_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpWrite.html" title="struct opendal::ops::OpWrite">OpWrite</a><br>&nbsp;&nbs [...]
-<span class="item-spacer"></span>    fn <a href="#method.blocking_stat" class="fn">blocking_stat</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpStat.html" title="struct opendal::ops::OpStat">OpStat</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpStat.html" title="struct opendal::raw::RpStat" [...]
-<span class="item-spacer"></span>    fn <a href="#method.blocking_delete" class="fn">blocking_delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpDelete.html" title="struct opendal::ops::OpDelete">OpDelete</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpDelete.html" title="struct opendal:: [...]
-<span class="item-spacer"></span>    fn <a href="#method.blocking_list" class="fn">blocking_list</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpList.html" title="struct opendal::ops::OpList">OpList</a><br>&nbsp;&nbsp;&nb [...]
-<span class="item-spacer"></span>    fn <a href="#method.blocking_scan" class="fn">blocking_scan</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpScan.html" title="struct opendal::ops::OpScan">OpScan</a><br>&nbsp;&nbsp;&nb [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_create" class="fn">blocking_create</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpCreate.html" title="struct opendal::ops::OpCreate">OpCreate</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpCreate.html" title="struct opendal:: [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_read" class="fn">blocking_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpRead.html" title="struct opendal::ops::OpRead">OpRead</a><br>&nbsp;&nbsp;&nb [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_write" class="fn">blocking_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpWrite.html" title="struct opendal::ops::OpWrite">OpWrite</a><br>&nbsp;&nbs [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_stat" class="fn">blocking_stat</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpStat.html" title="struct opendal::ops::OpStat">OpStat</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpStat.html" title="struct opendal::raw::RpStat" [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_delete" class="fn">blocking_delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpDelete.html" title="struct opendal::ops::OpDelete">OpDelete</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpDelete.html" title="struct opendal:: [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_list" class="fn">blocking_list</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpList.html" title="struct opendal::ops::OpList">OpList</a><br>&nbsp;&nbsp;&nb [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_scan" class="fn">blocking_scan</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpScan.html" title="struct opendal::ops::OpScan">OpScan</a><br>&nbsp;&nbsp;&nb [...]
 </details>}</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Underlying trait of all backends for implementors.</p>
 <h2 id="note"><a href="#note">Note</a></h2>
 <p>Visit <a href="../docs/internals/index.html" title="crate::docs::internals"><code>internals</code></a> for more tutorials.</p>
@@ -78,7 +78,7 @@ some useful information about it self.</p>
 <li>capabilities: declare the capabilities of current backend.</li>
 <li>hints: declare the hints of current backend</li>
 </ul>
-</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.create" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#90-97">source</a><h4 class="code-header">fn <a href="#method.create" class="fn">create</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;& [...]
+</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.create" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#90-97">source</a><h4 class="code-header">fn <a href="#method.create" class="fn">create</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;& [...]
 <p>Require <a href="enum.AccessorCapability.html#variant.Write" title="AccessorCapability::Write"><code>AccessorCapability::Write</code></a></p>
 <h5 id="behavior"><a href="#behavior">Behavior</a></h5>
 <ul>
@@ -86,7 +86,7 @@ some useful information about it self.</p>
 <li>Create on existing dir SHOULD succeed.</li>
 <li>Create on existing file SHOULD overwrite and truncate.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.read" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#108-115">source</a><h4 class="code-header">fn <a href="#method.read" class="fn">read</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.htm [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.read" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#108-115">source</a><h4 class="code-header">fn <a href="#method.read" class="fn">read</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.htm [...]
 <a href="../struct.Reader.html" title="crate::Reader"><code>Reader</code></a> if operate successful.</p>
 <p>Require <a href="enum.AccessorCapability.html#variant.Read" title="AccessorCapability::Read"><code>AccessorCapability::Read</code></a></p>
 <h5 id="behavior-1"><a href="#behavior-1">Behavior</a></h5>
@@ -94,14 +94,14 @@ some useful information about it self.</p>
 <li>Input path MUST be file path, DON’T NEED to check mode.</li>
 <li>The returning content length may be smaller than the range specified.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.write" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#125-132">source</a><h4 class="code-header">fn <a href="#method.write" class="fn">write</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.write" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#125-132">source</a><h4 class="code-header">fn <a href="#method.write" class="fn">write</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str. [...]
 written size if operate successful.</p>
 <p>Require <a href="enum.AccessorCapability.html#variant.Write" title="AccessorCapability::Write"><code>AccessorCapability::Write</code></a></p>
 <h5 id="behavior-2"><a href="#behavior-2">Behavior</a></h5>
 <ul>
 <li>Input path MUST be file path, DON’T NEED to check mode.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.stat" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#143-150">source</a><h4 class="code-header">fn <a href="#method.stat" class="fn">stat</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.htm [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.stat" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#143-150">source</a><h4 class="code-header">fn <a href="#method.stat" class="fn">stat</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.htm [...]
 <p>Require <a href="enum.AccessorCapability.html#variant.Read" title="AccessorCapability::Read"><code>AccessorCapability::Read</code></a></p>
 <h5 id="behavior-3"><a href="#behavior-3">Behavior</a></h5>
 <ul>
@@ -109,54 +109,54 @@ written size if operate successful.</p>
 <li><code>stat</code> a path endswith “/” means stating a dir.</li>
 <li><code>mode</code> and <code>content_length</code> must be set.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.delete" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#160-167">source</a><h4 class="code-header">fn <a href="#method.delete" class="fn">delete</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.s [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.delete" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#160-167">source</a><h4 class="code-header">fn <a href="#method.delete" class="fn">delete</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.s [...]
 <p>Require <a href="enum.AccessorCapability.html#variant.Write" title="AccessorCapability::Write"><code>AccessorCapability::Write</code></a></p>
 <h5 id="behavior-4"><a href="#behavior-4">Behavior</a></h5>
 <ul>
 <li><code>delete</code> is an idempotent operation, it’s safe to call <code>Delete</code> on the same path multiple times.</li>
 <li><code>delete</code> SHOULD return <code>Ok(())</code> if the path is deleted successfully or not exist.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.list" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#177-184">source</a><h4 class="code-header">fn <a href="#method.list" class="fn">list</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.htm [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.list" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#177-184">source</a><h4 class="code-header">fn <a href="#method.list" class="fn">list</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.htm [...]
 <p>Require <a href="enum.AccessorCapability.html#variant.List" title="AccessorCapability::List"><code>AccessorCapability::List</code></a></p>
 <h5 id="behavior-5"><a href="#behavior-5">Behavior</a></h5>
 <ul>
 <li>Input path MUST be dir path, DON’T NEED to check mode.</li>
 <li>List non-exist dir should return Empty.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#189-196">source</a><h4 class="code-header">fn <a href="#method.scan" class="fn">scan</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.htm [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#189-196">source</a><h4 class="code-header">fn <a href="#method.scan" class="fn">scan</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.htm [...]
 <p>Require <a href="enum.AccessorCapability.html#variant.Scan" title="AccessorCapability::Scan"><code>AccessorCapability::Scan</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.presign" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#205-212">source</a><h4 class="code-header">fn <a href="#method.presign" class="fn">presign</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpPresign.html" title="struct opendal::o [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.presign" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#205-212">source</a><h4 class="code-header">fn <a href="#method.presign" class="fn">presign</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpPresign.html" title="struct opendal::o [...]
 <p>Require <a href="enum.AccessorCapability.html#variant.Presign" title="AccessorCapability::Presign"><code>AccessorCapability::Presign</code></a></p>
 <h5 id="behavior-6"><a href="#behavior-6">Behavior</a></h5>
 <ul>
-<li>This API is optional, return <a href="https://doc.rust-lang.org/1.68.0/std/io/error/enum.ErrorKind.html#variant.Unsupported" title="std::io::ErrorKind::Unsupported"><code>std::io::ErrorKind::Unsupported</code></a> if not supported.</li>
+<li>This API is optional, return <a href="https://doc.rust-lang.org/1.68.1/std/io/error/enum.ErrorKind.html#variant.Unsupported" title="std::io::ErrorKind::Unsupported"><code>std::io::ErrorKind::Unsupported</code></a> if not supported.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.batch" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#215-222">source</a><h4 class="code-header">fn <a href="#method.batch" class="fn">batch</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpBatch.html" title="struct opendal::ops::OpBatch">OpBatch</ [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_create" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#229-236">source</a><h4 class="code-header">fn <a href="#method.blocking_create" class="fn">blocking_create</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpCreate.html" t [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.batch" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#215-222">source</a><h4 class="code-header">fn <a href="#method.batch" class="fn">batch</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpBatch.html" title="struct opendal::ops::OpBatch">OpBatch</ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_create" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#229-236">source</a><h4 class="code-header">fn <a href="#method.blocking_create" class="fn">blocking_create</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpCreate.html" t [...]
 <p>This operation is the blocking version of <a href="trait.Accessor.html#method.create" title="Accessor::create"><code>Accessor::create</code></a></p>
 <p>Require <a href="enum.AccessorCapability.html#variant.Write" title="AccessorCapability::Write"><code>AccessorCapability::Write</code></a> and <a href="enum.AccessorCapability.html#variant.Blocking" title="AccessorCapability::Blocking"><code>AccessorCapability::Blocking</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_read" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#243-250">source</a><h4 class="code-header">fn <a href="#method.blocking_read" class="fn">blocking_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&n [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_read" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#243-250">source</a><h4 class="code-header">fn <a href="#method.blocking_read" class="fn">blocking_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&n [...]
 <p>This operation is the blocking version of <a href="trait.Accessor.html#method.read" title="Accessor::read"><code>Accessor::read</code></a></p>
 <p>Require <a href="enum.AccessorCapability.html#variant.Read" title="AccessorCapability::Read"><code>AccessorCapability::Read</code></a> and <a href="enum.AccessorCapability.html#variant.Blocking" title="AccessorCapability::Blocking"><code>AccessorCapability::Blocking</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_write" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#257-264">source</a><h4 class="code-header">fn <a href="#method.blocking_write" class="fn">blocking_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_write" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#257-264">source</a><h4 class="code-header">fn <a href="#method.blocking_write" class="fn">blocking_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp [...]
 <p>This operation is the blocking version of <a href="trait.Accessor.html#method.write" title="Accessor::write"><code>Accessor::write</code></a></p>
 <p>Require <a href="enum.AccessorCapability.html#variant.Write" title="AccessorCapability::Write"><code>AccessorCapability::Write</code></a> and <a href="enum.AccessorCapability.html#variant.Blocking" title="AccessorCapability::Blocking"><code>AccessorCapability::Blocking</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_stat" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#271-278">source</a><h4 class="code-header">fn <a href="#method.blocking_stat" class="fn">blocking_stat</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpStat.html" title="st [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_stat" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#271-278">source</a><h4 class="code-header">fn <a href="#method.blocking_stat" class="fn">blocking_stat</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpStat.html" title="st [...]
 <p>This operation is the blocking version of <a href="trait.Accessor.html#method.stat" title="Accessor::stat"><code>Accessor::stat</code></a></p>
 <p>Require <a href="enum.AccessorCapability.html#variant.Read" title="AccessorCapability::Read"><code>AccessorCapability::Read</code></a> and <a href="enum.AccessorCapability.html#variant.Blocking" title="AccessorCapability::Blocking"><code>AccessorCapability::Blocking</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_delete" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#285-292">source</a><h4 class="code-header">fn <a href="#method.blocking_delete" class="fn">blocking_delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpDelete.html" t [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_delete" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#285-292">source</a><h4 class="code-header">fn <a href="#method.blocking_delete" class="fn">blocking_delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpDelete.html" t [...]
 <p>This operation is the blocking version of <a href="trait.Accessor.html#method.delete" title="Accessor::delete"><code>Accessor::delete</code></a></p>
 <p>Require <a href="enum.AccessorCapability.html#variant.Write" title="AccessorCapability::Write"><code>AccessorCapability::Write</code></a> and <a href="enum.AccessorCapability.html#variant.Blocking" title="AccessorCapability::Blocking"><code>AccessorCapability::Blocking</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_list" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#303-310">source</a><h4 class="code-header">fn <a href="#method.blocking_list" class="fn">blocking_list</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&n [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_list" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#303-310">source</a><h4 class="code-header">fn <a href="#method.blocking_list" class="fn">blocking_list</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&n [...]
 <p>This operation is the blocking version of <a href="trait.Accessor.html#method.list" title="Accessor::list"><code>Accessor::list</code></a></p>
 <p>Require <a href="enum.AccessorCapability.html#variant.List" title="AccessorCapability::List"><code>AccessorCapability::List</code></a> and <a href="enum.AccessorCapability.html#variant.Blocking" title="AccessorCapability::Blocking"><code>AccessorCapability::Blocking</code></a></p>
 <h5 id="behavior-7"><a href="#behavior-7">Behavior</a></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_scan" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#315-322">source</a><h4 class="code-header">fn <a href="#method.blocking_scan" class="fn">blocking_scan</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&n [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.blocking_scan" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#315-322">source</a><h4 class="code-header">fn <a href="#method.blocking_scan" class="fn">blocking_scan</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&n [...]
 <p>Require <a href="enum.AccessorCapability.html#variant.Scan" title="AccessorCapability::Scan"><code>AccessorCapability::Scan</code></a> and <a href="enum.AccessorCapability.html#variant.Blocking" title="AccessorCapability::Blocking"><code>AccessorCapability::Blocking</code></a></p>
-</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Accessor-for-()" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#327-345">source</a><a href="#impl-Accessor-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Accessor.html" title [...]
-</div><div class="impl-items"><section id="associatedtype.Reader-1" class="associatedtype trait-impl has-srclink"><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/1.68.0/std/primitive.unit.html">()</a></h4></section><section id="associatedtype.BlockingReader-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Bl [...]
+</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Accessor-for-()" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#327-345">source</a><a href="#impl-Accessor-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Accessor.html" title [...]
+</div><div class="impl-items"><section id="associatedtype.Reader-1" class="associatedtype trait-impl has-srclink"><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/1.68.1/std/primitive.unit.html">()</a></h4></section><section id="associatedtype.BlockingReader-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Bl [...]
 <code>Accessor</code> for <code>Arc&lt;dyn Accessor&gt;</code>.</p>
-</div><div class="impl-items"><section id="associatedtype.Reader-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Reader-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = &lt;T as <a class="trait" href="trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a>&gt;::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Reader" title="type opendal::raw::Accessor::Reader [...]
\ No newline at end of file
+</div><div class="impl-items"><section id="associatedtype.Reader-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Reader-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = &lt;T as <a class="trait" href="trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a>&gt;::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Reader" title="type opendal::raw::Accessor::Reader [...]
\ 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 83fd609d..5988a1aa 100644
--- a/docs/rust/opendal/raw/trait.Layer.html
+++ b/docs/rust/opendal/raw/trait.Layer.html
@@ -94,4 +94,4 @@ requires <code>Send</code> and <code>Sync</code>.</p>
 }</code></pre></div>
 </div></details><h2 id="required-associated-types" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/layer.rs.html#129">source</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccessor" class="associatedtype">LayeredAccesso [...]
 </div></details></div><h2 id="required-methods" class="small-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 has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/layer.rs.html#132">source</a><h4 class="code-header">fn <a href="#tymethod.layer" class="fn">layer</a>(&amp;self, inner: A) -&gt; Self::<a class="associatedtype [...]
-</div></details></div><h2 id="implementors" class="small-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-ChaosLayer" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/chaos.rs.html#83-93">source</a><a href="#impl-Layer%3CA%3E-for-ChaosLayer" class="anchor">§</a><h3 class="code-header">impl&lt;A:&nbsp;<a class=" [...]
\ No newline at end of file
+</div></details></div><h2 id="implementors" class="small-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-ChaosLayer" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/chaos.rs.html#83-93">source</a><a href="#impl-Layer%3CA%3E-for-ChaosLayer" class="anchor">§</a><h3 class="code-header">impl&lt;A:&nbsp;<a class=" [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/trait.LayeredAccessor.html b/docs/rust/opendal/raw/trait.LayeredAccessor.html
index c64fd966..232e8e3b 100644
--- a/docs/rust/opendal/raw/trait.LayeredAccessor.html
+++ b/docs/rust/opendal/raw/trait.LayeredAccessor.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="LayeredAccessor is layered accessor that forward all not implemented method to inner."><meta name="keywords" content="rust, rustlang, rust-lang, LayeredAccessor"><title>LayeredAccessor in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../s [...]
+<!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."><meta name="keywords" content="rust, rustlang, rust-lang, LayeredAccessor"><title>LayeredAccessor in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../s [...]
     type <a href="#associatedtype.Inner" class="associatedtype">Inner</a>: <a class="trait" href="trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</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>;
@@ -8,28 +8,28 @@
     type <a href="#associatedtype.BlockingPager" class="associatedtype">BlockingPager</a>: <a class="trait" href="oio/trait.BlockingPage.html" title="trait opendal::raw::oio::BlockingPage">BlockingPage</a>;
 
 <details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 18 methods</span></summary>    fn <a href="#tymethod.inner" class="fn">inner</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.LayeredAccessor.html#associatedtype.Inner" title="type opendal::raw::LayeredAccessor::Inner">Inner</a>;
-<span class="item-spacer"></span>    fn <a href="#tymethod.read" class="fn">read</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpRead.html" title="struct opendal::ops::OpR [...]
-<span class="item-spacer"></span>    fn <a href="#tymethod.write" class="fn">write</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpWrite.html" title="struct opendal::ops:: [...]
-<span class="item-spacer"></span>    fn <a href="#tymethod.list" class="fn">list</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpList.html" title="struct opendal::ops::OpL [...]
-<span class="item-spacer"></span>    fn <a href="#tymethod.scan" class="fn">scan</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpScan.html" title="struct opendal::ops::OpS [...]
-<span class="item-spacer"></span>    fn <a href="#tymethod.blocking_read" class="fn">blocking_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpRead.html" title="struct opendal::ops::OpRead">OpRead</a><br>&nbsp;&nbsp;& [...]
-<span class="item-spacer"></span>    fn <a href="#tymethod.blocking_write" class="fn">blocking_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpWrite.html" title="struct opendal::ops::OpWrite">OpWrite</a><br>&nbsp;&n [...]
-<span class="item-spacer"></span>    fn <a href="#tymethod.blocking_list" class="fn">blocking_list</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpList.html" title="struct opendal::ops::OpList">OpList</a><br>&nbsp;&nbsp;& [...]
-<span class="item-spacer"></span>    fn <a href="#tymethod.blocking_scan" class="fn">blocking_scan</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpScan.html" title="struct opendal::ops::OpScan">OpScan</a><br>&nbsp;&nbsp;& [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.read" class="fn">read</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpRead.html" title="struct opendal::ops::OpR [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.write" class="fn">write</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpWrite.html" title="struct opendal::ops:: [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.list" class="fn">list</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpList.html" title="struct opendal::ops::OpL [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.scan" class="fn">scan</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpScan.html" title="struct opendal::ops::OpS [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.blocking_read" class="fn">blocking_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpRead.html" title="struct opendal::ops::OpRead">OpRead</a><br>&nbsp;&nbsp;& [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.blocking_write" class="fn">blocking_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpWrite.html" title="struct opendal::ops::OpWrite">OpWrite</a><br>&nbsp;&n [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.blocking_list" class="fn">blocking_list</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpList.html" title="struct opendal::ops::OpList">OpList</a><br>&nbsp;&nbsp;& [...]
+<span class="item-spacer"></span>    fn <a href="#tymethod.blocking_scan" class="fn">blocking_scan</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpScan.html" title="struct opendal::ops::OpScan">OpScan</a><br>&nbsp;&nbsp;& [...]
 
     fn <a href="#method.metadata" class="fn">metadata</a>(&amp;self) -&gt; <a class="struct" href="struct.AccessorInfo.html" title="struct opendal::raw::AccessorInfo">AccessorInfo</a> { ... }
-<span class="item-spacer"></span>    fn <a href="#method.create" class="fn">create</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpCreate.html" title="struct opendal::ops: [...]
+<span class="item-spacer"></span>    fn <a href="#method.create" class="fn">create</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpCreate.html" title="struct opendal::ops: [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.stat" class="fn">stat</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpStat.html" title="struct opendal::ops::OpSta [...]
+<span class="item-spacer"></span>    fn <a href="#method.stat" class="fn">stat</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpStat.html" title="struct opendal::ops::OpSta [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.delete" class="fn">delete</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpDelete.html" title="struct opendal::ops: [...]
+<span class="item-spacer"></span>    fn <a href="#method.delete" class="fn">delete</a>&lt;'life0, 'life1, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpDelete.html" title="struct opendal::ops: [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.batch" class="fn">batch</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpBatch.html" title="struct opendal::ops::OpBatch">OpBatch</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin [...]
+<span class="item-spacer"></span>    fn <a href="#method.batch" class="fn">batch</a>&lt;'life0, 'async_trait&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;'life0 self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args: <a class="struct" href="../ops/struct.OpBatch.html" title="struct opendal::ops::OpBatch">OpBatch</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.presign" class="fn">presign</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpPresign.html" title="struct opendal::ops::OpPresign">OpPresign</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpPresign.html" title="struct opendal::raw::RpPresi [...]
-<span class="item-spacer"></span>    fn <a href="#method.blocking_create" class="fn">blocking_create</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpCreate.html" title="struct opendal::ops::OpCreate">OpCreate</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpCreate.html" title="struct opendal:: [...]
-<span class="item-spacer"></span>    fn <a href="#method.blocking_stat" class="fn">blocking_stat</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpStat.html" title="struct opendal::ops::OpStat">OpStat</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpStat.html" title="struct opendal::raw::RpStat" [...]
-<span class="item-spacer"></span>    fn <a href="#method.blocking_delete" class="fn">blocking_delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpDelete.html" title="struct opendal::ops::OpDelete">OpDelete</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpDelete.html" title="struct opendal:: [...]
+<span class="item-spacer"></span>    fn <a href="#method.presign" class="fn">presign</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpPresign.html" title="struct opendal::ops::OpPresign">OpPresign</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpPresign.html" title="struct opendal::raw::RpPresi [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_create" class="fn">blocking_create</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpCreate.html" title="struct opendal::ops::OpCreate">OpCreate</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpCreate.html" title="struct opendal:: [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_stat" class="fn">blocking_stat</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpStat.html" title="struct opendal::ops::OpStat">OpStat</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpStat.html" title="struct opendal::raw::RpStat" [...]
+<span class="item-spacer"></span>    fn <a href="#method.blocking_delete" class="fn">blocking_delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpDelete.html" title="struct opendal::ops::OpDelete">OpDelete</a>) -&gt; <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="struct" href="struct.RpDelete.html" title="struct opendal:: [...]
 </details>}</code></pre></div><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
 method to inner.</p>
-</div></details><h2 id="required-associated-types" class="small-section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><section id="associatedtype.Inner" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/layer.rs.html#140">source</a><h4 class="code-header">type <a href="#associatedtype.Inner" class="associatedtype">Inner</a>: <a class="trait" href="trait.Accessor.html" title="trait open [...]
\ No newline at end of file
+</div></details><h2 id="required-associated-types" class="small-section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><section id="associatedtype.Inner" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/layer.rs.html#140">source</a><h4 class="code-header">type <a href="#associatedtype.Inner" class="associatedtype">Inner</a>: <a class="trait" href="trait.Accessor.html" title="trait open [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/type.FusedAccessor.html b/docs/rust/opendal/raw/type.FusedAccessor.html
index 35b05367..9f83ffed 100644
--- a/docs/rust/opendal/raw/type.FusedAccessor.html
+++ b/docs/rust/opendal/raw/type.FusedAccessor.html
@@ -1,2 +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="FusedAccessor is the type erased accessor with `Box&lt;dyn Read&gt;`."><meta name="keywords" content="rust, rustlang, rust-lang, FusedAccessor"><title>FusedAccessor in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSe [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="FusedAccessor is the type erased accessor with `Box&lt;dyn Read&gt;`."><meta name="keywords" content="rust, rustlang, rust-lang, FusedAccessor"><title>FusedAccessor in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSe [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/services/index.html b/docs/rust/opendal/services/index.html
index bf2c87e8..55eea8e6 100644
--- a/docs/rust/opendal/services/index.html
+++ b/docs/rust/opendal/services/index.html
@@ -1,3 +1,3 @@
 <!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="Services will provide builders to build underlying backends."><meta name="keywords" content="rust, rustlang, rust-lang, services"><title>opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0 [...]
 <p>More ongoing services support is tracked at <a href="https://github.com/apache/incubator-opendal/issues/5">opendal#5</a>. Please feel free to submit issues if there are services not covered.</p>
-</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Azblob.html" title="opendal::services::Azblob struct">Azblob</a></div><div class="item-right docblock-short">Azure Storage Blob services support.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Azdfs.html" title="opendal::services:: [...]
\ No newline at end of file
+</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Azblob.html" title="opendal::services::Azblob struct">Azblob</a></div><div class="item-right docblock-short">Azure Storage Blob services support.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Azdfs.html" title="opendal::services:: [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Azblob.html b/docs/rust/opendal/services/struct.Azblob.html
index c59b121d..bedd0b5d 100644
--- a/docs/rust/opendal/services/struct.Azblob.html
+++ b/docs/rust/opendal/services/struct.Azblob.html
@@ -64,37 +64,37 @@ az storage container create --name test --connection-string &quot;DefaultEndpoin
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AzblobBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#168-335">source</a><a href="#impl-AzblobBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="s [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AzblobBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#168-335">source</a><a href="#impl-AzblobBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="s [...]
 <p>All operations will happen under this root.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.container" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#181-185">source</a><h4 class="code-header">pub fn <a href="#method.container" class="fn">container</a>(&amp;mut self, container: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#193-200">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.container" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#181-185">source</a><h4 class="code-header">pub fn <a href="#method.container" class="fn">container</a>(&amp;mut self, container: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#193-200">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org [...]
 <p>Endpoint must be full uri, e.g.</p>
 <ul>
 <li>Azblob: <code>https://accountname.blob.core.windows.net</code></li>
 <li>Azurite: <code>http://127.0.0.1:10000/devstoreaccount1</code></li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.account_name" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#206-212">source</a><h4 class="code-header">pub fn <a href="#method.account_name" class="fn">account_name</a>(&amp;mut self, account_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://d [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.account_name" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#206-212">source</a><h4 class="code-header">pub fn <a href="#method.account_name" class="fn">account_name</a>(&amp;mut self, account_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://d [...]
 <ul>
 <li>If account_name is set, we will take user’s input first.</li>
 <li>If not, we will try to load it from environment.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.account_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#218-224">source</a><h4 class="code-header">pub fn <a href="#method.account_key" class="fn">account_key</a>(&amp;mut self, account_key: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.r [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.account_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#218-224">source</a><h4 class="code-header">pub fn <a href="#method.account_key" class="fn">account_key</a>(&amp;mut self, account_key: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.r [...]
 <ul>
 <li>If account_key is set, we will take user’s input first.</li>
 <li>If not, we will try to load it from environment.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.sas_token" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#233-239">source</a><h4 class="code-header">pub fn <a href="#method.sas_token" class="fn">sas_token</a>(&amp;mut self, sas_token: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.sas_token" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#233-239">source</a><h4 class="code-header">pub fn <a href="#method.sas_token" class="fn">sas_token</a>(&amp;mut self, sas_token: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang [...]
 <ul>
 <li>If sas_token is set, we will take user’s input first.</li>
 <li>If not, we will try to load it from environment.</li>
 </ul>
 <p>See <a href="https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview">Grant limited access to Azure Storage resources using shared access signatures (SAS)</a>
 for more info.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#247-250">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#247-250">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>This API is part of OpenDAL’s Raw API. <code>HttpClient</code> could be changed
 during minor updates.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.from_connection_string" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#279-334">source</a><h4 class="code-header">pub fn <a href="#method.from_connection_string" class="fn">from_connection_string</a>(conn: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../type [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.from_connection_string" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#279-334">source</a><h4 class="code-header">pub fn <a href="#method.from_connection_string" class="fn">from_connection_string</a>(conn: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../type [...]
 <p>connection string looks like:</p>
 <div class="example-wrap"><pre class="language-txt"><code>DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
 AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
@@ -112,12 +112,12 @@ EndpointSuffix=core.chinacloudapi.cn;
 <h5 id="note"><a href="#note">Note</a></h5>
 <p>connection string only configures the endpoint, account name and account key.
 User still needs to configure bucket names.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-AzblobBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#337-435">source</a><a href="#impl-Builder-for-AzblobBuilder" clas [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-AzblobBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#337-435">source</a><a href="#impl-Builder-for-AzblobBuilder" clas [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-AzblobBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-AzblobBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::i [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AzblobBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AzblobBuilder" class="anchor">§</a><h [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AzblobBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AzblobBuilder" class="anchor">§</a><h [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-AzblobBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-AzblobBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class= [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-AzblobBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-AzblobBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class= [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Azdfs.html b/docs/rust/opendal/services/struct.Azdfs.html
index 0805447a..48078593 100644
--- a/docs/rust/opendal/services/struct.Azdfs.html
+++ b/docs/rust/opendal/services/struct.Azdfs.html
@@ -61,35 +61,35 @@ blocking</li>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AzdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#149-217">source</a><a href="#impl-AzdfsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="stru [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AzdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#149-217">source</a><a href="#impl-AzdfsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="stru [...]
 <p>All operations will happen under this root.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.filesystem" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#162-166">source</a><h4 class="code-header">pub fn <a href="#method.filesystem" class="fn">filesystem</a>(&amp;mut self, filesystem: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-l [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#174-181">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.filesystem" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#162-166">source</a><h4 class="code-header">pub fn <a href="#method.filesystem" class="fn">filesystem</a>(&amp;mut self, filesystem: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-l [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#174-181">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/ [...]
 <p>Endpoint must be full uri, e.g.</p>
 <ul>
 <li>Azblob: <code>https://accountname.blob.core.windows.net</code></li>
 <li>Azurite: <code>http://127.0.0.1:10000/devstoreaccount1</code></li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.account_name" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#187-193">source</a><h4 class="code-header">pub fn <a href="#method.account_name" class="fn">account_name</a>(&amp;mut self, account_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://do [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.account_name" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#187-193">source</a><h4 class="code-header">pub fn <a href="#method.account_name" class="fn">account_name</a>(&amp;mut self, account_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://do [...]
 <ul>
 <li>If account_name is set, we will take user’s input first.</li>
 <li>If not, we will try to load it from environment.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.account_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#199-205">source</a><h4 class="code-header">pub fn <a href="#method.account_key" class="fn">account_key</a>(&amp;mut self, account_key: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.ru [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.account_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#199-205">source</a><h4 class="code-header">pub fn <a href="#method.account_key" class="fn">account_key</a>(&amp;mut self, account_key: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.ru [...]
 <ul>
 <li>If account_key is set, we will take user’s input first.</li>
 <li>If not, we will try to load it from environment.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#213-216">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https: [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#213-216">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https: [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>This API is part of OpenDAL’s Raw API. <code>HttpClient</code> could be changed
 during minor updates.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-AzdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#219-298">source</a><a href="#impl-Builder-for-AzdfsBuilder" class=" [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-AzdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azdfs/backend.rs.html#219-298">source</a><a href="#impl-Builder-for-AzdfsBuilder" class=" [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-AzdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-AzdfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AzdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AzdfsBuilder" class="anchor">§</a><h3  [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AzdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AzdfsBuilder" class="anchor">§</a><h3  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-AzdfsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-AzdfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-AzdfsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-AzdfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Dashmap.html b/docs/rust/opendal/services/struct.Dashmap.html
index 233e1cba..9553cd5f 100644
--- a/docs/rust/opendal/services/struct.Dashmap.html
+++ b/docs/rust/opendal/services/struct.Dashmap.html
@@ -15,12 +15,12 @@ scan</li>
 <li><input disabled="" type="checkbox" checked=""/>
 blocking</li>
 </ul>
-</div></details><h2 id="trait-implementations" class="small-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-Builder-for-DashmapBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/dashmap/backend.rs.html#43-56">source</a><a href="#impl-Builder-for-DashmapBuilder" class="anchor">§</a><h3 c [...]
+</div></details><h2 id="trait-implementations" class="small-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-Builder-for-DashmapBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/dashmap/backend.rs.html#43-56">source</a><a href="#impl-Builder-for-DashmapBuilder" class="anchor">§</a><h3 c [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-DashmapBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-DashmapBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-DashmapBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-DashmapBuilder" class="anchor">§</a> [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-DashmapBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-DashmapBuilder" class="anchor">§</a> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-DashmapBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-DashmapBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-DashmapBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-DashmapBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Fs.html b/docs/rust/opendal/services/struct.Fs.html
index 61f96109..1f542c9f 100644
--- a/docs/rust/opendal/services/struct.Fs.html
+++ b/docs/rust/opendal/services/struct.Fs.html
@@ -41,19 +41,19 @@ blocking</li>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/fs/backend.rs.html#91-125">source</a><a href="#impl-FsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Fs.html [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.atomic_write_dir" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/fs/backend.rs.html#104-112">source</a><h4 class="code-header">pub fn <a href="#method.atomic_write_dir" class="fn">atomic_write_dir</a>(&amp;mut self, dir: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://do [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.enable_path_check" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/fs/backend.rs.html#120-124">source</a><h4 class="code-header">pub fn <a href="#method.enable_path_check" class="fn">enable_path_check</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div  [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/fs/backend.rs.html#91-125">source</a><a href="#impl-FsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Fs.html [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.atomic_write_dir" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/fs/backend.rs.html#104-112">source</a><h4 class="code-header">pub fn <a href="#method.atomic_write_dir" class="fn">atomic_write_dir</a>(&amp;mut self, dir: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://do [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.enable_path_check" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/fs/backend.rs.html#120-124">source</a><h4 class="code-header">pub fn <a href="#method.enable_path_check" class="fn">enable_path_check</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div  [...]
 behavior is consistent. By enable path check, we can make sure
 fs will behave the same as other services.</p>
 <p>Enabling this feature will lead to extra metadata call in all
 operations.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-FsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/fs/backend.rs.html#127-216">source</a><a href="#impl-Builder-for-FsBuilder" class="anchor">§ [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-FsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/fs/backend.rs.html#127-216">source</a><a href="#impl-Builder-for-FsBuilder" class="anchor">§ [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-FsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-FsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrumen [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-FsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FsBuilder" class="anchor">§</a><h3 class= [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-FsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FsBuilder" class="anchor">§</a><h3 class= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-FsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-FsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-FsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-FsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Ftp.html b/docs/rust/opendal/services/struct.Ftp.html
index abe615e5..b665a742 100644
--- a/docs/rust/opendal/services/struct.Ftp.html
+++ b/docs/rust/opendal/services/struct.Ftp.html
@@ -40,16 +40,16 @@ blocking</li>
     <span class="kw">let </span>_obj: Object = op.object(<span class="string">&quot;test_file&quot;</span>);
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FtpBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ftp/backend.rs.html#110-154">source</a><a href="#impl-FtpBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Ftp [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ftp/backend.rs.html#123-131">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primiti [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.user" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ftp/backend.rs.html#134-142">source</a><h4 class="code-header">pub fn <a href="#method.user" class="fn">user</a>(&amp;mut self, user: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primiti [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.password" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ftp/backend.rs.html#145-153">source</a><h4 class="code-header">pub fn <a href="#method.password" class="fn">password</a>(&amp;mut self, password: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1. [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-FtpBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ftp/backend.rs.html#156-230">source</a><a href="#impl-Builder-for-FtpBuilder" class="anchor [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FtpBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ftp/backend.rs.html#110-154">source</a><a href="#impl-FtpBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Ftp [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ftp/backend.rs.html#123-131">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primiti [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.user" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ftp/backend.rs.html#134-142">source</a><h4 class="code-header">pub fn <a href="#method.user" class="fn">user</a>(&amp;mut self, user: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primiti [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.password" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ftp/backend.rs.html#145-153">source</a><h4 class="code-header">pub fn <a href="#method.password" class="fn">password</a>(&amp;mut self, password: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1. [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-FtpBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ftp/backend.rs.html#156-230">source</a><a href="#impl-Builder-for-FtpBuilder" class="anchor [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-FtpBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-FtpBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrum [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-FtpBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FtpBuilder" class="anchor">§</a><h3 clas [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-FtpBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FtpBuilder" class="anchor">§</a><h3 clas [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-FtpBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-FtpBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-FtpBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-FtpBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Gcs.html b/docs/rust/opendal/services/struct.Gcs.html
index 59efeaaf..052587fa 100644
--- a/docs/rust/opendal/services/struct.Gcs.html
+++ b/docs/rust/opendal/services/struct.Gcs.html
@@ -44,9 +44,9 @@ blocking</li>
     <span class="kw">let </span>op: Operator = Operator::new(builder)<span class="question-mark">?</span>.finish();
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-GcsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#119-214">source</a><a href="#impl-GcsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Gcs [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.bucket" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#130-133">source</a><h4 class="code-header">pub fn <a href="#method.bucket" class="fn">bucket</a>(&amp;mut self, bucket: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.scope" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#146-151">source</a><h4 class="code-header">pub fn <a href="#method.scope" class="fn">scope</a>(&amp;mut self, scope: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/pri [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-GcsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#119-214">source</a><a href="#impl-GcsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Gcs [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.bucket" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#130-133">source</a><h4 class="code-header">pub fn <a href="#method.bucket" class="fn">bucket</a>(&amp;mut self, bucket: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.scope" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#146-151">source</a><h4 class="code-header">pub fn <a href="#method.scope" class="fn">scope</a>(&amp;mut self, scope: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/pri [...]
 <p>If not set, we will use <code>https://www.googleapis.com/auth/devstorage.read_write</code>.</p>
 <h5 id="valid-scope-examples"><a href="#valid-scope-examples">Valid scope examples</a></h5>
 <ul>
@@ -55,17 +55,17 @@ blocking</li>
 <li>full-control: <code>https://www.googleapis.com/auth/devstorage.full_control</code></li>
 </ul>
 <p>Reference: <a href="https://cloud.google.com/storage/docs/authentication">Cloud Storage authentication</a></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.service_account" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#157-162">source</a><h4 class="code-header">pub fn <a href="#method.service_account" class="fn">service_account</a>(&amp;mut self, service_account: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href=" [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.service_account" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#157-162">source</a><h4 class="code-header">pub fn <a href="#method.service_account" class="fn">service_account</a>(&amp;mut self, service_account: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href=" [...]
 <p>service account will be used for fetch token from vm metadata.
 If not set, we will try to fetch with <code>default</code> service account.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#165-170">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1. [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.credential" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#173-178">source</a><h4 class="code-header">pub fn <a href="#method.credential" class="fn">credential</a>(&amp;mut self, credential: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lan [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.credential_path" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#181-186">source</a><h4 class="code-header">pub fn <a href="#method.credential_path" class="fn">credential_path</a>(&amp;mut self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#194-197">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https:// [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#165-170">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.credential" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#173-178">source</a><h4 class="code-header">pub fn <a href="#method.credential" class="fn">credential</a>(&amp;mut self, credential: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lan [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.credential_path" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#181-186">source</a><h4 class="code-header">pub fn <a href="#method.credential_path" class="fn">credential_path</a>(&amp;mut self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#194-197">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https:// [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>This API is part of OpenDAL’s Raw API. <code>HttpClient</code> could be changed
 during minor updates.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.signer" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#210-213">source</a><h4 class="code-header">pub fn <a href="#method.signer" class="fn">signer</a>(&amp;mut self, signer: GoogleSigner) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div class="doc [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.signer" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#210-213">source</a><h4 class="code-header">pub fn <a href="#method.signer" class="fn">signer</a>(&amp;mut self, signer: GoogleSigner) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div class="doc [...]
 <p>If signer is specified, the following settings will not be used
 any more:</p>
 <ul>
@@ -75,12 +75,12 @@ any more:</p>
 <li><code>credential_path</code></li>
 </ul>
 <p>PLEASE USE THIS API CAREFULLY.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-GcsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#230-320">source</a><a href="#impl-Builder-for-GcsBuilder" class="anchor [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-GcsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/gcs/backend.rs.html#230-320">source</a><a href="#impl-Builder-for-GcsBuilder" class="anchor [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-GcsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-GcsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrum [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-GcsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-GcsBuilder" class="anchor">§</a><h3 clas [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-GcsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-GcsBuilder" class="anchor">§</a><h3 clas [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-GcsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-GcsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-GcsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-GcsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Ghac.html b/docs/rust/opendal/services/struct.Ghac.html
index 630a9317..ded7f5db 100644
--- a/docs/rust/opendal/services/struct.Ghac.html
+++ b/docs/rust/opendal/services/struct.Ghac.html
@@ -65,26 +65,26 @@ be automatically evicted at any time.</p>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-GhacBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ghac/backend.rs.html#155-201">source</a><a href="#impl-GhacBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.version" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ghac/backend.rs.html#171-177">source</a><h4 class="code-header">pub fn <a href="#method.version" class="fn">version</a>(&amp;mut self, version: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68. [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-GhacBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ghac/backend.rs.html#155-201">source</a><a href="#impl-GhacBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.version" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ghac/backend.rs.html#171-177">source</a><h4 class="code-header">pub fn <a href="#method.version" class="fn">version</a>(&amp;mut self, version: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68. [...]
 <p>The version is the unique value that provides namespacing.
 It’s better to make sure this value is only used by this backend.</p>
 <p>If not set, we will use <code>opendal</code> as default.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.enable_create_simulation" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ghac/backend.rs.html#186-189">source</a><h4 class="code-header">pub fn <a href="#method.enable_create_simulation" class="fn">enable_create_simulation</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;mut </a>Self</h4></ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.enable_create_simulation" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ghac/backend.rs.html#186-189">source</a><h4 class="code-header">pub fn <a href="#method.enable_create_simulation" class="fn">enable_create_simulation</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;mut </a>Self</h4></ [...]
 <p>ghac service doesn’t support create empty files. By enabling
 create simulation, we will create a 1 byte file to represent
 empty file.</p>
 <p>As a side effect, we can’t create file with only 1 byte anymore.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ghac/backend.rs.html#197-200">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https:/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ghac/backend.rs.html#197-200">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https:/ [...]
 <h5 id="notes-1"><a href="#notes-1">Notes</a></h5>
 <p>This API is part of OpenDAL’s Raw API. <code>HttpClient</code> could be changed
 during minor updates.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-GhacBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ghac/backend.rs.html#203-269">source</a><a href="#impl-Builder-for-GhacBuilder" class="anc [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-GhacBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ghac/backend.rs.html#203-269">source</a><a href="#impl-Builder-for-GhacBuilder" class="anc [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-GhacBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-GhacBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instr [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-GhacBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-GhacBuilder" class="anchor">§</a><h3 cl [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-GhacBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-GhacBuilder" class="anchor">§</a><h3 cl [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-GhacBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-GhacBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anc [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-GhacBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-GhacBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anc [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Hdfs.html b/docs/rust/opendal/services/struct.Hdfs.html
index d0c718bf..6d6ee3e0 100644
--- a/docs/rust/opendal/services/struct.Hdfs.html
+++ b/docs/rust/opendal/services/struct.Hdfs.html
@@ -75,20 +75,20 @@ blocking</li>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-HdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/hdfs/backend.rs.html#136-164">source</a><a href="#impl-HdfsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-HdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/hdfs/backend.rs.html#136-164">source</a><a href="#impl-HdfsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
 <p>All operations will happen under this root.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.name_node" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/hdfs/backend.rs.html#156-163">source</a><h4 class="code-header">pub fn <a href="#method.name_node" class="fn">name_node</a>(&amp;mut self, name_node: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.o [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.name_node" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/hdfs/backend.rs.html#156-163">source</a><h4 class="code-header">pub fn <a href="#method.name_node" class="fn">name_node</a>(&amp;mut self, name_node: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.o [...]
 <p>Valid format including:</p>
 <ul>
 <li><code>default</code>: using the default setting based on hadoop config.</li>
 <li><code>hdfs://127.0.0.1:9000</code>: connect to hdfs cluster.</li>
 </ul>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-HdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/hdfs/backend.rs.html#166-210">source</a><a href="#impl-Builder-for-HdfsBuilder" class="anc [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-HdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/hdfs/backend.rs.html#166-210">source</a><a href="#impl-Builder-for-HdfsBuilder" class="anc [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-HdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-HdfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instr [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-HdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-HdfsBuilder" class="anchor">§</a><h3 cl [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-HdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-HdfsBuilder" class="anchor">§</a><h3 cl [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-HdfsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-HdfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anc [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-HdfsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-HdfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anc [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Http.html b/docs/rust/opendal/services/struct.Http.html
index b131a04a..57fcda9e 100644
--- a/docs/rust/opendal/services/struct.Http.html
+++ b/docs/rust/opendal/services/struct.Http.html
@@ -39,25 +39,25 @@ HTTP Server like nginx, caddy.</p>
     <span class="kw">let </span>op: Operator = Operator::new(builder)<span class="question-mark">?</span>.finish();
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-HttpBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#99-164">source</a><a href="#impl-HttpBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.H [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-HttpBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#99-164">source</a><a href="#impl-HttpBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.H [...]
 <p>For example: <code>https://example.com</code></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.username" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#116-121">source</a><h4 class="code-header">pub fn <a href="#method.username" class="fn">username</a>(&amp;mut self, username: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1 [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.username" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#116-121">source</a><h4 class="code-header">pub fn <a href="#method.username" class="fn">username</a>(&amp;mut self, username: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1 [...]
 <p>default: no password</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.password" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#126-131">source</a><h4 class="code-header">pub fn <a href="#method.password" class="fn">password</a>(&amp;mut self, password: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1 [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.password" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#126-131">source</a><h4 class="code-header">pub fn <a href="#method.password" class="fn">password</a>(&amp;mut self, password: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1 [...]
 <p>default: no password</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.token" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#136-141">source</a><h4 class="code-header">pub fn <a href="#method.token" class="fn">token</a>(&amp;mut self, token: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/pr [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.token" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#136-141">source</a><h4 class="code-header">pub fn <a href="#method.token" class="fn">token</a>(&amp;mut self, token: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/pr [...]
 <p>default: no access token</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#144-152">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primit [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#160-163">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https:/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#144-152">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primit [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#160-163">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https:/ [...]
 <h5 id="notes-1"><a href="#notes-1">Notes</a></h5>
 <p>This API is part of OpenDAL’s Raw API. <code>HttpClient</code> could be changed
 during minor updates.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-HttpBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#166-224">source</a><a href="#impl-Builder-for-HttpBuilder" class="anc [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-HttpBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/http/backend.rs.html#166-224">source</a><a href="#impl-Builder-for-HttpBuilder" class="anc [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-HttpBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-HttpBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instr [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-HttpBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-HttpBuilder" class="anchor">§</a><h3 cl [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-HttpBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-HttpBuilder" class="anchor">§</a><h3 cl [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-HttpBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-HttpBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anc [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-HttpBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-HttpBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anc [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Ipfs.html b/docs/rust/opendal/services/struct.Ipfs.html
index 1d915f75..da65ec6b 100644
--- a/docs/rust/opendal/services/struct.Ipfs.html
+++ b/docs/rust/opendal/services/struct.Ipfs.html
@@ -44,14 +44,14 @@ blocking</li>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-IpfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipfs/backend.rs.html#91-137">source</a><a href="#impl-IpfsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.I [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-IpfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipfs/backend.rs.html#91-137">source</a><a href="#impl-IpfsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.I [...]
 <p>Root must be a valid ipfs address like the following:</p>
 <ul>
 <li><code>/ipfs/QmPpCt1aYGb9JWJRmXRUnmJtVgeFFTJGzWFYEEX7bo9zGJ/</code> (IPFS with CID v0)</li>
 <li><code>/ipfs/bafybeibozpulxtpv5nhfa2ue3dcjx23ndh3gwr5vwllk7ptoyfwnfjjr4q/</code> (IPFS with  CID v1)</li>
 <li><code>/ipns/opendal.apache.org/</code> (IPNS)</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipfs/backend.rs.html#118-125">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1 [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipfs/backend.rs.html#118-125">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1 [...]
 <p>Endpoint must be a valid ipfs gateway which passed the <a href="https://ipfs.github.io/public-gateway-checker/">IPFS Gateway Checker</a></p>
 <p>Popular choices including:</p>
 <ul>
@@ -61,16 +61,16 @@ blocking</li>
 <li><code>https://cloudflare-ipfs.com</code></li>
 <li><code>http://127.0.0.1:8080</code> (ipfs daemon in local)</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipfs/backend.rs.html#133-136">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https:/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipfs/backend.rs.html#133-136">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https:/ [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>This API is part of OpenDAL’s Raw API. <code>HttpClient</code> could be changed
 during minor updates.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-IpfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipfs/backend.rs.html#139-189">source</a><a href="#impl-Builder-for-IpfsBuilder" class="anc [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-IpfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipfs/backend.rs.html#139-189">source</a><a href="#impl-Builder-for-IpfsBuilder" class="anc [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-IpfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-IpfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instr [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-IpfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-IpfsBuilder" class="anchor">§</a><h3 cl [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-IpfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-IpfsBuilder" class="anchor">§</a><h3 cl [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-IpfsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-IpfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anc [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-IpfsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-IpfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anc [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Ipmfs.html b/docs/rust/opendal/services/struct.Ipmfs.html
index 91dea4e6..5128cd81 100644
--- a/docs/rust/opendal/services/struct.Ipmfs.html
+++ b/docs/rust/opendal/services/struct.Ipmfs.html
@@ -38,19 +38,19 @@ blocking</li>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-IpmfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipmfs/builder.rs.html#75-109">source</a><a href="#impl-IpmfsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struc [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipmfs/builder.rs.html#90-97">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1. [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-IpmfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipmfs/builder.rs.html#75-109">source</a><a href="#impl-IpmfsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struc [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipmfs/builder.rs.html#90-97">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1. [...]
 <p>Default: http://localhost:5001</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipmfs/builder.rs.html#105-108">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https: [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipmfs/builder.rs.html#105-108">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https: [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>This API is part of OpenDAL’s Raw API. <code>HttpClient</code> could be changed
 during minor updates.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-IpmfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipmfs/builder.rs.html#111-145">source</a><a href="#impl-Builder-for-IpmfsBuilder" class=" [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-IpmfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/ipmfs/builder.rs.html#111-145">source</a><a href="#impl-Builder-for-IpmfsBuilder" class=" [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-IpmfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-IpmfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-IpmfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-IpmfsBuilder" class="anchor">§</a><h3  [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-IpmfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-IpmfsBuilder" class="anchor">§</a><h3  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-IpmfsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-IpmfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-IpmfsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-IpmfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Memcached.html b/docs/rust/opendal/services/struct.Memcached.html
index b1fbcc36..3a262434 100644
--- a/docs/rust/opendal/services/struct.Memcached.html
+++ b/docs/rust/opendal/services/struct.Memcached.html
@@ -38,17 +38,17 @@ blocking</li>
     <span class="kw">let _</span>: Object = op.object(<span class="string">&quot;test_file&quot;</span>);
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-MemcachedBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/memcached/backend.rs.html#88-114">source</a><a href="#impl-MemcachedBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-MemcachedBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/memcached/backend.rs.html#88-114">source</a><a href="#impl-MemcachedBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" [...]
 <p>For example: “tcp://localhost:11211”</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/memcached/backend.rs.html#102-107">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/p [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/memcached/backend.rs.html#102-107">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/p [...]
 <p>default: “/”</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.default_ttl" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/memcached/backend.rs.html#110-113">source</a><h4 class="code-header">pub fn <a href="#method.default_ttl" class="fn">default_ttl</a>(&amp;mut self, ttl: <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; <a c [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-MemcachedBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/memcached/backend.rs.html#116-193">source</a><a href="#impl-Builder-for-MemcachedBuil [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.default_ttl" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/memcached/backend.rs.html#110-113">source</a><h4 class="code-header">pub fn <a href="#method.default_ttl" class="fn">default_ttl</a>(&amp;mut self, ttl: <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; <a c [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-MemcachedBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/memcached/backend.rs.html#116-193">source</a><a href="#impl-Builder-for-MemcachedBuil [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-MemcachedBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-MemcachedBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait trac [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-MemcachedBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MemcachedBuilder" class="anchor">§ [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-MemcachedBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MemcachedBuilder" class="anchor">§ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-MemcachedBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-MemcachedBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN"  [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-MemcachedBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-MemcachedBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN"  [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Memory.html b/docs/rust/opendal/services/struct.Memory.html
index 73df1425..860a8f16 100644
--- a/docs/rust/opendal/services/struct.Memory.html
+++ b/docs/rust/opendal/services/struct.Memory.html
@@ -15,12 +15,12 @@ scan</li>
 <li><input disabled="" type="checkbox" checked=""/>
 blocking</li>
 </ul>
-</div></details><h2 id="trait-implementations" class="small-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-Builder-for-MemoryBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/memory/backend.rs.html#44-59">source</a><a href="#impl-Builder-for-MemoryBuilder" class="anchor">§</a><h3 clas [...]
+</div></details><h2 id="trait-implementations" class="small-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-Builder-for-MemoryBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/memory/backend.rs.html#44-59">source</a><a href="#impl-Builder-for-MemoryBuilder" class="anchor">§</a><h3 clas [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-MemoryBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-MemoryBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::i [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-MemoryBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MemoryBuilder" class="anchor">§</a><h [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-MemoryBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MemoryBuilder" class="anchor">§</a><h [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-MemoryBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-MemoryBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class= [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-MemoryBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-MemoryBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class= [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Moka.html b/docs/rust/opendal/services/struct.Moka.html
index 9fb37a08..b4ada106 100644
--- a/docs/rust/opendal/services/struct.Moka.html
+++ b/docs/rust/opendal/services/struct.Moka.html
@@ -15,23 +15,23 @@ write</li>
 <li><input disabled="" type="checkbox" checked=""/>
 blocking</li>
 </ul>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-MokaBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#69-124">source</a><a href="#impl-MokaBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.M [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.max_capacity" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#81-86">source</a><h4 class="code-header">pub fn <a href="#method.max_capacity" class="fn">max_capacity</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u64.html">u64</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.6 [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-MokaBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#69-124">source</a><a href="#impl-MokaBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.M [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.max_capacity" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#81-86">source</a><h4 class="code-header">pub fn <a href="#method.max_capacity" class="fn">max_capacity</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u64.html">u64</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.6 [...]
 <p>Refer to <a href="https://docs.rs/moka/latest/moka/sync/struct.CacheBuilder.html#method.max_capacity"><code>moka::sync::CacheBuilder::max_capacity</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.time_to_live" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#91-96">source</a><h4 class="code-header">pub fn <a href="#method.time_to_live" class="fn">time_to_live</a>(&amp;mut self, v: <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; <a class=" [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.time_to_live" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#91-96">source</a><h4 class="code-header">pub fn <a href="#method.time_to_live" class="fn">time_to_live</a>(&amp;mut self, v: <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; <a class=" [...]
 <p>Refer to <a href="https://docs.rs/moka/latest/moka/sync/struct.CacheBuilder.html#method.time_to_live"><code>moka::sync::CacheBuilder::time_to_live</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.time_to_idle" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#101-106">source</a><h4 class="code-header">pub fn <a href="#method.time_to_idle" class="fn">time_to_idle</a>(&amp;mut self, v: <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; <a class [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.time_to_idle" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#101-106">source</a><h4 class="code-header">pub fn <a href="#method.time_to_idle" class="fn">time_to_idle</a>(&amp;mut self, v: <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; <a class [...]
 <p>Refer to <a href="https://docs.rs/moka/latest/moka/sync/struct.CacheBuilder.html#method.time_to_idle"><code>moka::sync::CacheBuilder::time_to_idle</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.segments" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#111-115">source</a><h4 class="code-header">pub fn <a href="#method.segments" class="fn">segments</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/st [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.segments" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#111-115">source</a><h4 class="code-header">pub fn <a href="#method.segments" class="fn">segments</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/st [...]
 <p>Refer to <a href="https://docs.rs/moka/latest/moka/sync/struct.CacheBuilder.html#method.segments"><code>moka::sync::CacheBuilder::segments</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.thread_pool_enabled" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#120-123">source</a><h4 class="code-header">pub fn <a href="#method.thread_pool_enabled" class="fn">thread_pool_enabled</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a>) -&gt; <a class="primitive" href="http [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.thread_pool_enabled" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#120-123">source</a><h4 class="code-header">pub fn <a href="#method.thread_pool_enabled" class="fn">thread_pool_enabled</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a>) -&gt; <a class="primitive" href="http [...]
 <p>Refer to <a href="https://docs.rs/moka/latest/moka/sync/struct.CacheBuilder.html#method.thread_pool_enabled"><code>moka::sync::CacheBuilder::thread_pool_enabled</code></a></p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-MokaBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#126-178">source</a><a href="#impl-Builder-for-MokaBuilder" class="anc [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-MokaBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/moka/backend.rs.html#126-178">source</a><a href="#impl-Builder-for-MokaBuilder" class="anc [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-MokaBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-MokaBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instr [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-MokaBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MokaBuilder" class="anchor">§</a><h3 cl [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-MokaBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MokaBuilder" class="anchor">§</a><h3 cl [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-MokaBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-MokaBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anc [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-MokaBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-MokaBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anc [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Obs.html b/docs/rust/opendal/services/struct.Obs.html
index cc19ede8..37563c9d 100644
--- a/docs/rust/opendal/services/struct.Obs.html
+++ b/docs/rust/opendal/services/struct.Obs.html
@@ -48,9 +48,9 @@ blocking</li>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ObsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#113-183">source</a><a href="#impl-ObsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Obs [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ObsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#113-183">source</a><a href="#impl-ObsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Obs [...]
 <p>All operations will happen under this root.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#133-139">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#133-139">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1. [...]
 <p>Both huaweicloud default domain and user domain endpoints are allowed.
 Please DO NOT add the bucket name to the endpoint.</p>
 <ul>
@@ -58,28 +58,28 @@ Please DO NOT add the bucket name to the endpoint.</p>
 <li><code>obs.cn-north-4.myhuaweicloud.com</code> (https by default)</li>
 <li><code>https://custom.obs.com</code> (port should not be set)</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.access_key_id" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#144-150">source</a><h4 class="code-header">pub fn <a href="#method.access_key_id" class="fn">access_key_id</a>(&amp;mut self, access_key_id: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https:// [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.access_key_id" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#144-150">source</a><h4 class="code-header">pub fn <a href="#method.access_key_id" class="fn">access_key_id</a>(&amp;mut self, access_key_id: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https:// [...]
 <ul>
 <li>If it is set, we will take user’s input first.</li>
 <li>If not, we will try to load it from environment.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.secret_access_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#155-161">source</a><h4 class="code-header">pub fn <a href="#method.secret_access_key" class="fn">secret_access_key</a>(&amp;mut self, secret_access_key: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.secret_access_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#155-161">source</a><h4 class="code-header">pub fn <a href="#method.secret_access_key" class="fn">secret_access_key</a>(&amp;mut self, secret_access_key: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive [...]
 <ul>
 <li>If it is set, we will take user’s input first.</li>
 <li>If not, we will try to load it from environment.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.bucket" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#165-171">source</a><h4 class="code-header">pub fn <a href="#method.bucket" class="fn">bucket</a>(&amp;mut self, bucket: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.bucket" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#165-171">source</a><h4 class="code-header">pub fn <a href="#method.bucket" class="fn">bucket</a>(&amp;mut self, bucket: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std [...]
 The param is required.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#179-182">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https:// [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#179-182">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https:// [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>This API is part of OpenDAL’s Raw API. <code>HttpClient</code> could be changed
 during minor updates.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-ObsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#185-288">source</a><a href="#impl-Builder-for-ObsBuilder" class="anchor [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-ObsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/obs/backend.rs.html#185-288">source</a><a href="#impl-Builder-for-ObsBuilder" class="anchor [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-ObsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-ObsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrum [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ObsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ObsBuilder" class="anchor">§</a><h3 clas [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ObsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ObsBuilder" class="anchor">§</a><h3 clas [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ObsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-ObsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-ObsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-ObsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Oss.html b/docs/rust/opendal/services/struct.Oss.html
index 64b37535..826e3f13 100644
--- a/docs/rust/opendal/services/struct.Oss.html
+++ b/docs/rust/opendal/services/struct.Oss.html
@@ -63,11 +63,11 @@ blocking</li>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OssBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#153-280">source</a><a href="#impl-OssBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Oss [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OssBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#153-280">source</a><a href="#impl-OssBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Oss [...]
 <p>All operations will happen under this root.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.bucket" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#168-172">source</a><h4 class="code-header">pub fn <a href="#method.bucket" class="fn">bucket</a>(&amp;mut self, bucket: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#175-182">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1. [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.presign_endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#192-199">source</a><h4 class="code-header">pub fn <a href="#method.presign_endpoint" class="fn">presign_endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="http [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.bucket" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#168-172">source</a><h4 class="code-header">pub fn <a href="#method.bucket" class="fn">bucket</a>(&amp;mut self, bucket: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#175-182">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.presign_endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#192-199">source</a><h4 class="code-header">pub fn <a href="#method.presign_endpoint" class="fn">presign_endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="http [...]
 <p>You can offer a public endpoint like <a href="https://oss-cn-beijing.aliyuncs.com">https://oss-cn-beijing.aliyuncs.com</a> to return a presinged url for
 public accessors, along with an internal endpoint like <a href="https://oss-cn-beijing-internal.aliyuncs.com">https://oss-cn-beijing-internal.aliyuncs.com</a>
 to access objects in a faster path.</p>
@@ -75,27 +75,27 @@ to access objects in a faster path.</p>
 <li>If presign_endpoint is set, we will use presign_endpoint on generating presigned urls.</li>
 <li>if not, we will use endpoint as default.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.access_key_id" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#205-211">source</a><h4 class="code-header">pub fn <a href="#method.access_key_id" class="fn">access_key_id</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lan [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.access_key_id" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#205-211">source</a><h4 class="code-header">pub fn <a href="#method.access_key_id" class="fn">access_key_id</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lan [...]
 <ul>
 <li>If access_key_id is set, we will take user’s input first.</li>
 <li>If not, we will try to load it from environment.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.access_key_secret" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#217-223">source</a><h4 class="code-header">pub fn <a href="#method.access_key_secret" class="fn">access_key_secret</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https:// [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.access_key_secret" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#217-223">source</a><h4 class="code-header">pub fn <a href="#method.access_key_secret" class="fn">access_key_secret</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https:// [...]
 <ul>
 <li>If access_key_secret is set, we will take user’s input first.</li>
 <li>If not, we will try to load it from environment.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.allow_anonymous" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#226-229">source</a><h4 class="code-header">pub fn <a href="#method.allow_anonymous" class="fn">allow_anonymous</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div class [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#237-240">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https:// [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.allow_anonymous" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#226-229">source</a><h4 class="code-header">pub fn <a href="#method.allow_anonymous" class="fn">allow_anonymous</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div class [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#237-240">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https:// [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>This API is part of OpenDAL’s Raw API. <code>HttpClient</code> could be changed
 during minor updates.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-OssBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#282-373">source</a><a href="#impl-Builder-for-OssBuilder" class="anchor [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-OssBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/oss/backend.rs.html#282-373">source</a><a href="#impl-Builder-for-OssBuilder" class="anchor [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-OssBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-OssBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrum [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OssBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OssBuilder" class="anchor">§</a><h3 clas [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OssBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OssBuilder" class="anchor">§</a><h3 clas [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OssBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-OssBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OssBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-OssBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="ancho [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Redis.html b/docs/rust/opendal/services/struct.Redis.html
index 8d8814f3..a97f3b90 100644
--- a/docs/rust/opendal/services/struct.Redis.html
+++ b/docs/rust/opendal/services/struct.Redis.html
@@ -39,29 +39,29 @@ blocking</li>
     <span class="kw">let _</span>: Object = op.object(<span class="string">&quot;test_file&quot;</span>);
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RedisBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#129-188">source</a><a href="#impl-RedisBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="stru [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RedisBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#129-188">source</a><a href="#impl-RedisBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="stru [...]
 <p>currently supported schemes:</p>
 <ul>
 <li>no scheme: will be seen as “tcp”</li>
 <li>“tcp” or “redis”: unsecured redis connections</li>
 <li>“unix” or “redis+unix”: unix socket connection</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.username" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#146-151">source</a><h4 class="code-header">pub fn <a href="#method.username" class="fn">username</a>(&amp;mut self, username: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.username" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#146-151">source</a><h4 class="code-header">pub fn <a href="#method.username" class="fn">username</a>(&amp;mut self, username: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/ [...]
 <p>default: no username</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.password" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#156-161">source</a><h4 class="code-header">pub fn <a href="#method.password" class="fn">password</a>(&amp;mut self, password: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.password" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#156-161">source</a><h4 class="code-header">pub fn <a href="#method.password" class="fn">password</a>(&amp;mut self, password: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/ [...]
 <p>default: no password</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.db" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#166-169">source</a><h4 class="code-header">pub fn <a href="#method.db" class="fn">db</a>(&amp;mut self, db: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.i64.html">i64</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.referenc [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.db" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#166-169">source</a><h4 class="code-header">pub fn <a href="#method.db" class="fn">db</a>(&amp;mut self, db: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.i64.html">i64</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.referenc [...]
 <p>default: 0</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.default_ttl" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#174-177">source</a><h4 class="code-header">pub fn <a href="#method.default_ttl" class="fn">default_ttl</a>(&amp;mut self, ttl: <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; <a class [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.default_ttl" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#174-177">source</a><h4 class="code-header">pub fn <a href="#method.default_ttl" class="fn">default_ttl</a>(&amp;mut self, ttl: <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; <a class [...]
 <p>If set, we will specify <code>EX</code> for write operations.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#182-187">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primi [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#182-187">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primi [...]
 <p>default: “/”</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-RedisBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#190-277">source</a><a href="#impl-Builder-for-RedisBuilder" class=" [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-RedisBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#190-277">source</a><a href="#impl-Builder-for-RedisBuilder" class=" [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-RedisBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-RedisBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RedisBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RedisBuilder" class="anchor">§</a><h3  [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RedisBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RedisBuilder" class="anchor">§</a><h3  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RedisBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-RedisBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RedisBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-RedisBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Rocksdb.html b/docs/rust/opendal/services/struct.Rocksdb.html
index d17cd9a4..c94a2062 100644
--- a/docs/rust/opendal/services/struct.Rocksdb.html
+++ b/docs/rust/opendal/services/struct.Rocksdb.html
@@ -47,15 +47,15 @@ may be outdated and incompatible.</p>
     <span class="kw">let _</span>: Object = op.object(<span class="string">&quot;test_file&quot;</span>);
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RocksdbBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/rocksdb/backend.rs.html#95-111">source</a><a href="#impl-RocksdbBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href= [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/rocksdb/backend.rs.html#105-110">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/pri [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RocksdbBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/rocksdb/backend.rs.html#95-111">source</a><a href="#impl-RocksdbBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href= [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/rocksdb/backend.rs.html#105-110">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/pri [...]
 <p>default: “/”</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-RocksdbBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/rocksdb/backend.rs.html#113-139">source</a><a href="#impl-Builder-for-RocksdbBuilder" c [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-RocksdbBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/rocksdb/backend.rs.html#113-139">source</a><a href="#impl-Builder-for-RocksdbBuilder" c [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-RocksdbBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-RocksdbBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RocksdbBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RocksdbBuilder" class="anchor">§</a> [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-RocksdbBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RocksdbBuilder" class="anchor">§</a> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RocksdbBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-RocksdbBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-RocksdbBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-RocksdbBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.S3.html b/docs/rust/opendal/services/struct.S3.html
index a903d383..00ae55bd 100644
--- a/docs/rust/opendal/services/struct.S3.html
+++ b/docs/rust/opendal/services/struct.S3.html
@@ -279,10 +279,10 @@ builder.bucket(<span class="string">&quot;&lt;bucket_name&gt;&quot;</span>);</co
 <blockquote>
 <p>Refer to <a href="https://wasabi-support.zendesk.com/hc/en-us/articles/360015106031">What are the service URLs for Wasabi’s different storage regions?</a> for more details.</p>
 </blockquote>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-S3Builder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#371-808">source</a><a href="#impl-S3Builder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.S3.htm [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-S3Builder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#371-808">source</a><a href="#impl-S3Builder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.S3.htm [...]
 <p>All operations will happen under this root.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.bucket" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#386-390">source</a><h4 class="code-header">pub fn <a href="#method.bucket" class="fn">bucket</a>(&amp;mut self, bucket: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/ [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#403-410">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.6 [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.bucket" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#386-390">source</a><h4 class="code-header">pub fn <a href="#method.bucket" class="fn">bucket</a>(&amp;mut self, bucket: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#403-410">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.6 [...]
 <p>Endpoint must be full uri, e.g.</p>
 <ul>
 <li>AWS S3: <code>https://s3.amazonaws.com</code> or <code>https://s3.{region}.amazonaws.com</code></li>
@@ -292,31 +292,31 @@ builder.bucket(<span class="string">&quot;&lt;bucket_name&gt;&quot;</span>);</co
 </ul>
 <p>If user inputs endpoint without scheme like “s3.amazonaws.com”, we
 will prepend “https://” before it.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.region" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#418-424">source</a><h4 class="code-header">pub fn <a href="#method.region" class="fn">region</a>(&amp;mut self, region: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.region" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#418-424">source</a><h4 class="code-header">pub fn <a href="#method.region" class="fn">region</a>(&amp;mut self, region: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/ [...]
 <ul>
 <li>If region is set, we will take user’s input first.</li>
 <li>If not, We will try to detect region via <a href="https://github.com/apache/incubator-opendal/blob/main/docs/rfcs/0057-auto-region.md">RFC-0057: Auto Region</a>.</li>
 </ul>
 <p>Most of time, region is not need to be set, especially for AWS S3 and minio.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.access_key_id" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#430-436">source</a><h4 class="code-header">pub fn <a href="#method.access_key_id" class="fn">access_key_id</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.access_key_id" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#430-436">source</a><h4 class="code-header">pub fn <a href="#method.access_key_id" class="fn">access_key_id</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang [...]
 <ul>
 <li>If access_key_id is set, we will take user’s input first.</li>
 <li>If not, we will try to load it from environment.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.secret_access_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#442-448">source</a><h4 class="code-header">pub fn <a href="#method.secret_access_key" class="fn">secret_access_key</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://d [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.secret_access_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#442-448">source</a><h4 class="code-header">pub fn <a href="#method.secret_access_key" class="fn">secret_access_key</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://d [...]
 <ul>
 <li>If secret_access_key is set, we will take user’s input first.</li>
 <li>If not, we will try to load it from environment.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.role_arn" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#451-457">source</a><h4 class="code-header">pub fn <a href="#method.role_arn" class="fn">role_arn</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.external_id" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#460-466">source</a><h4 class="code-header">pub fn <a href="#method.external_id" class="fn">external_id</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1 [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#478-484">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption" class="fn">server_side_encryption</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive"  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.role_arn" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#451-457">source</a><h4 class="code-header">pub fn <a href="#method.role_arn" class="fn">role_arn</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.external_id" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#460-466">source</a><h4 class="code-header">pub fn <a href="#method.external_id" class="fn">external_id</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1 [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#478-484">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption" class="fn">server_side_encryption</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive"  [...]
 <p>Available values: <code>AES256</code>, <code>aws:kms</code>.</p>
 <h5 id="note"><a href="#note">Note</a></h5>
 <p>This function is the low-level setting for SSE related features.</p>
 <p>SSE related options should be set carefully to make them works.
 Please use <code>server_side_encryption_with_*</code> helpers if even possible.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_aws_kms_key_id" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#503-509">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_aws_kms_key_id" class="fn">server_side_encryption_aws_kms_key_id</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.s [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_aws_kms_key_id" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#503-509">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_aws_kms_key_id" class="fn">server_side_encryption_aws_kms_key_id</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.s [...]
 <ul>
 <li>If <code>server_side_encryption</code> set to <code>aws:kms</code>, and <code>server_side_encryption_aws_kms_key_id</code>
 is not set, S3 will use aws managed kms key to encrypt data.</li>
@@ -331,13 +331,13 @@ is a noop.</li>
 <p>This function is the low-level setting for SSE related features.</p>
 <p>SSE related options should be set carefully to make them works.
 Please use <code>server_side_encryption_with_*</code> helpers if even possible.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_customer_algorithm" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#521-527">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_customer_algorithm" class="fn">server_side_encryption_customer_algorithm</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_customer_algorithm" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#521-527">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_customer_algorithm" class="fn">server_side_encryption_customer_algorithm</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std [...]
 <p>Available values: <code>AES256</code>.</p>
 <h5 id="note-2"><a href="#note-2">Note</a></h5>
 <p>This function is the low-level setting for SSE related features.</p>
 <p>SSE related options should be set carefully to make them works.
 Please use <code>server_side_encryption_with_*</code> helpers if even possible.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_customer_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#542-548">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_customer_key" class="fn">server_side_encryption_customer_key</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.htm [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_customer_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#542-548">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_customer_key" class="fn">server_side_encryption_customer_key</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.htm [...]
 <h5 id="args"><a href="#args">Args</a></h5>
 <p><code>v</code>: base64 encoded key that matches algorithm specified in
 <code>server_side_encryption_customer_algorithm</code>.</p>
@@ -345,52 +345,52 @@ Please use <code>server_side_encryption_with_*</code> helpers if even possible.<
 <p>This function is the low-level setting for SSE related features.</p>
 <p>SSE related options should be set carefully to make them works.
 Please use <code>server_side_encryption_with_*</code> helpers if even possible.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_customer_key_md5" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#562-568">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_customer_key_md5" class="fn">server_side_encryption_customer_key_md5</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primi [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_customer_key_md5" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#562-568">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_customer_key_md5" class="fn">server_side_encryption_customer_key_md5</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primi [...]
 <h5 id="args-1"><a href="#args-1">Args</a></h5>
 <p><code>v</code>: MD5 digest of key specified in <code>server_side_encryption_customer_key</code>.</p>
 <h5 id="note-4"><a href="#note-4">Note</a></h5>
 <p>This function is the low-level setting for SSE related features.</p>
 <p>SSE related options should be set carefully to make them works.
 Please use <code>server_side_encryption_with_*</code> helpers if even possible.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_with_aws_managed_kms_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#575-578">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_with_aws_managed_kms_key" class="fn">server_side_encryption_with_aws_managed_kms_key</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lan [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_with_aws_managed_kms_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#575-578">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_with_aws_managed_kms_key" class="fn">server_side_encryption_with_aws_managed_kms_key</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lan [...]
 <p>As known as: SSE-KMS</p>
 <p>NOTE: This function should not be used along with other <code>server_side_encryption_with_</code> functions.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_with_customer_managed_kms_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#585-592">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_with_customer_managed_kms_key" class="fn">server_side_encryption_with_customer_managed_kms_key</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;& [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_with_customer_managed_kms_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#585-592">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_with_customer_managed_kms_key" class="fn">server_side_encryption_with_customer_managed_kms_key</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;& [...]
 <p>As known as: SSE-KMS</p>
 <p>NOTE: This function should not be used along with other <code>server_side_encryption_with_</code> functions.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_with_s3_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#599-602">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_with_s3_key" class="fn">server_side_encryption_with_s3_key</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.ht [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_with_s3_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#599-602">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_with_s3_key" class="fn">server_side_encryption_with_s3_key</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.ht [...]
 <p>As known as: SSE-S3</p>
 <p>NOTE: This function should not be used along with other <code>server_side_encryption_with_</code> functions.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_with_customer_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#609-619">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_with_customer_key" class="fn">server_side_encryption_with_customer_key</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;algorithm: &amp;<a  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.server_side_encryption_with_customer_key" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#609-619">source</a><h4 class="code-header">pub fn <a href="#method.server_side_encryption_with_customer_key" class="fn">server_side_encryption_with_customer_key</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;algorithm: &amp;<a  [...]
 <p>As known as: SSE-C</p>
 <p>NOTE: This function should not be used along with other <code>server_side_encryption_with_</code> functions.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.security_token" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#626-631">source</a><h4 class="code-header">pub fn <a href="#method.security_token" class="fn">security_token</a>(&amp;mut self, token: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.ru [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.security_token" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#626-631">source</a><h4 class="code-header">pub fn <a href="#method.security_token" class="fn">security_token</a>(&amp;mut self, token: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.ru [...]
 <h5 id="warning"><a href="#warning">Warning</a></h5>
 <p>security token’s lifetime is short and requires users to refresh in time.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.disable_config_load" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#640-643">source</a><h4 class="code-header">pub fn <a href="#method.disable_config_load" class="fn">disable_config_load</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.disable_config_load" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#640-643">source</a><h4 class="code-header">pub fn <a href="#method.disable_config_load" class="fn">disable_config_load</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary [...]
 environment.</p>
 <p>For examples:</p>
 <ul>
 <li>envs like <code>AWS_ACCESS_KEY_ID</code></li>
 <li>files like <code>~/.aws/config</code></li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.enable_virtual_host_style" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#650-653">source</a><h4 class="code-header">pub fn <a href="#method.enable_virtual_host_style" class="fn">enable_virtual_host_style</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;mut </a>Self</h4>< [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.enable_virtual_host_style" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#650-653">source</a><h4 class="code-header">pub fn <a href="#method.enable_virtual_host_style" class="fn">enable_virtual_host_style</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;mut </a>Self</h4>< [...]
 in virtual host style instead of path style.</p>
 <ul>
 <li>By default, opendal will send API to <code>https://s3.us-east-1.amazonaws.com/bucket_name</code></li>
 <li>Enabled, opendal will send API to <code>https://bucket_name.s3.us-east-1.amazonaws.com</code></li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.customed_credential_load" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#656-659">source</a><h4 class="code-header">pub fn <a href="#method.customed_credential_load" class="fn">customed_credential_load</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;cred: impl AwsCredentialLoad<br>) -&gt; <a class="primitive" href=" [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#667-670">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https://d [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.customed_credential_load" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#656-659">source</a><h4 class="code-header">pub fn <a href="#method.customed_credential_load" class="fn">customed_credential_load</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;cred: impl AwsCredentialLoad<br>) -&gt; <a class="primitive" href=" [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#667-670">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https://d [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>This API is part of OpenDAL’s Raw API. <code>HttpClient</code> could be changed
 during minor updates.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-S3Builder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#810-1028">source</a><a href="#impl-Builder-for-S3Builder" class="anchor"> [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-S3Builder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#810-1028">source</a><a href="#impl-Builder-for-S3Builder" class="anchor"> [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-S3Builder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-S3Builder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrumen [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-S3Builder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-S3Builder" class="anchor">§</a><h3 class= [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-S3Builder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-S3Builder" class="anchor">§</a><h3 class= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-S3Builder" class="impl has-srclink"><a href="#impl-Pointable-for-S3Builder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-S3Builder" class="impl has-srclink"><a href="#impl-Pointable-for-S3Builder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor" [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Sled.html b/docs/rust/opendal/services/struct.Sled.html
index 21c8e1f9..30460cfc 100644
--- a/docs/rust/opendal/services/struct.Sled.html
+++ b/docs/rust/opendal/services/struct.Sled.html
@@ -35,13 +35,13 @@ blocking</li>
     <span class="kw">let _</span>: Object = op.object(<span class="string">&quot;test_file&quot;</span>);
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-SledBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/sled/backend.rs.html#77-83">source</a><a href="#impl-SledBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Sl [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-SledBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/sled/backend.rs.html#85-115">source</a><a href="#impl-Builder-for-SledBuilder" class="anch [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-SledBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/sled/backend.rs.html#77-83">source</a><a href="#impl-SledBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Sl [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-SledBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/sled/backend.rs.html#85-115">source</a><a href="#impl-Builder-for-SledBuilder" class="anch [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-SledBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-SledBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instr [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SledBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SledBuilder" class="anchor">§</a><h3 cl [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SledBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SledBuilder" class="anchor">§</a><h3 cl [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-SledBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-SledBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anc [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-SledBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-SledBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anc [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Webdav.html b/docs/rust/opendal/services/struct.Webdav.html
index 2d3e8ca9..1ad5d62f 100644
--- a/docs/rust/opendal/services/struct.Webdav.html
+++ b/docs/rust/opendal/services/struct.Webdav.html
@@ -42,25 +42,25 @@ Users can use <code>webdav</code> to connect those services.</p>
     <span class="kw">let </span>op: Operator = Operator::new(builder)<span class="question-mark">?</span>.finish();
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-WebdavBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#106-171">source</a><a href="#impl-WebdavBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="s [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-WebdavBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#106-171">source</a><a href="#impl-WebdavBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="s [...]
 <p>For example: <code>https://example.com</code></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.username" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#123-128">source</a><h4 class="code-header">pub fn <a href="#method.username" class="fn">username</a>(&amp;mut self, username: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.username" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#123-128">source</a><h4 class="code-header">pub fn <a href="#method.username" class="fn">username</a>(&amp;mut self, username: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org [...]
 <p>default: no password</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.password" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#133-138">source</a><h4 class="code-header">pub fn <a href="#method.password" class="fn">password</a>(&amp;mut self, password: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.password" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#133-138">source</a><h4 class="code-header">pub fn <a href="#method.password" class="fn">password</a>(&amp;mut self, password: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org [...]
 <p>default: no password</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.token" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#143-148">source</a><h4 class="code-header">pub fn <a href="#method.token" class="fn">token</a>(&amp;mut self, token: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.token" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#143-148">source</a><h4 class="code-header">pub fn <a href="#method.token" class="fn">token</a>(&amp;mut self, token: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/ [...]
 <p>default: no access token</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#151-159">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/prim [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#167-170">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#151-159">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/prim [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.http_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#167-170">source</a><h4 class="code-header">pub fn <a href="#method.http_client" class="fn">http_client</a>(&amp;mut self, client: <a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>) -&gt; <a class="primitive" href="https [...]
 <h5 id="notes-1"><a href="#notes-1">Notes</a></h5>
 <p>This API is part of OpenDAL’s Raw API. <code>HttpClient</code> could be changed
 during minor updates.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-WebdavBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#173-231">source</a><a href="#impl-Builder-for-WebdavBuilder" clas [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Builder-for-WebdavBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webdav/backend.rs.html#173-231">source</a><a href="#impl-Builder-for-WebdavBuilder" clas [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-WebdavBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-WebdavBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::i [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-WebdavBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-WebdavBuilder" class="anchor">§</a><h [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-WebdavBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-WebdavBuilder" class="anchor">§</a><h [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-WebdavBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-WebdavBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class= [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-WebdavBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-WebdavBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class= [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/services/struct.Webhdfs.html b/docs/rust/opendal/services/struct.Webhdfs.html
index b134bc12..4e85a8cc 100644
--- a/docs/rust/opendal/services/struct.Webhdfs.html
+++ b/docs/rust/opendal/services/struct.Webhdfs.html
@@ -57,12 +57,12 @@ blocking</li>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-WebhdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webhdfs/backend.rs.html#127-173">source</a><a href="#impl-WebhdfsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-WebhdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webhdfs/backend.rs.html#127-173">source</a><a href="#impl-WebhdfsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href [...]
 <p>All operations will happen under this root</p>
 <h5 id="note"><a href="#note">Note</a></h5>
 <p>The root will be automatically created if not exists.
 If the root is occupied by a file, building of directory will fail</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webhdfs/backend.rs.html#154-160">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.or [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.endpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webhdfs/backend.rs.html#154-160">source</a><h4 class="code-header">pub fn <a href="#method.endpoint" class="fn">endpoint</a>(&amp;mut self, endpoint: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.or [...]
 default to <code>http://127.0.0.1:9870</code></p>
 <p>Endpoints should be full uri, e.g.</p>
 <ul>
@@ -71,7 +71,7 @@ default to <code>http://127.0.0.1:9870</code></p>
 </ul>
 <p>If user inputs endpoint without scheme, we will
 prepend <code>http://</code> to it.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.delegation" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webhdfs/backend.rs.html#167-172">source</a><h4 class="code-header">pub fn <a href="#method.delegation" class="fn">delegation</a>(&amp;mut self, delegation: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.delegation" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webhdfs/backend.rs.html#167-172">source</a><h4 class="code-header">pub fn <a href="#method.delegation" class="fn">delegation</a>(&amp;mut self, delegation: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust [...]
 used for authentication</p>
 <h5 id="note-1"><a href="#note-1">Note</a></h5>
 <p>The builder prefers using delegation token over username.
@@ -82,12 +82,12 @@ If both are set, delegation token will be used.</p>
 exits.
 if the directory does not exits, the directory will be automatically created
 if the root path is occupied by a file, a failure will be returned</p>
-</div></details><details class="toggle" open><summary><section id="associatedconstant.SCHEME" class="associatedconstant trait-impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webhdfs/backend.rs.html#185">source</a><a href="#associatedconstant.SCHEME" class="anchor">§</a><h4 class="code-header">const <a href="../trait.Builder.html#associatedconstant.SCHEME" class="constant">SCHEME</a>: <a class="enum" href="../enum.Scheme.html" title="enum opendal::Scheme">S [...]
+</div></details><details class="toggle" open><summary><section id="associatedconstant.SCHEME" class="associatedconstant trait-impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webhdfs/backend.rs.html#185">source</a><a href="#associatedconstant.SCHEME" class="anchor">§</a><h4 class="code-header">const <a href="../trait.Builder.html#associatedconstant.SCHEME" class="constant">SCHEME</a>: <a class="enum" href="../enum.Scheme.html" title="enum opendal::Scheme">S [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-WebhdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-WebhdfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-WebhdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-WebhdfsBuilder" class="anchor">§</a> [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-WebhdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-WebhdfsBuilder" class="anchor">§</a> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-WebhdfsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-WebhdfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-WebhdfsBuilder" class="impl has-srclink"><a href="#impl-Pointable-for-WebhdfsBuilder" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.BlockingLister.html b/docs/rust/opendal/struct.BlockingLister.html
index 8eab0c32..03c9dff1 100644
--- a/docs/rust/opendal/struct.BlockingLister.html
+++ b/docs/rust/opendal/struct.BlockingLister.html
@@ -1,47 +1,47 @@
 <!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="BlockingLister is designed to list entries at given path in a blocking manner."><meta name="keywords" content="rust, rustlang, rust-lang, BlockingLister"><title>BlockingLister in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/Sourc [...]
 manner.</p>
 <p>Users can construct Lister by <code>blocking_list</code> or <code>blocking_scan</code>.</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingLister" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/list.rs.html#139-164">source</a><a href="#impl-BlockingLister" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Blocking [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Iterator-for-BlockingLister" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/list.rs.html#167-186">source</a><a href="#impl-Iterator-for-BlockingLister" class="anchor">§ [...]
-</div><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Item" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Item" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" class="associatedtype">Item</a> = <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title="enum core::result::Result">Re [...]
-the given amount at each iteration. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.step_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.chain" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#505-508">so [...]
-between adjacent items of the original iterator. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.intersperse_with">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator [...]
-element. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.map">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#827-830">source</a></span><a href="#m [...]
-should be yielded. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.filter">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.filter_map" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#947-950">source</a></spa [...]
-the next value. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.enumerate">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.peekable" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#1064-1066">source</a></spa [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingLister" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/list.rs.html#139-164">source</a><a href="#impl-BlockingLister" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Blocking [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Iterator-for-BlockingLister" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/list.rs.html#167-186">source</a><a href="#impl-Iterator-for-BlockingLister" class="anchor">§ [...]
+</div><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Item" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Item" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" class="associatedtype">Item</a> = <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Result.html" title="enum core::result::Result">Re [...]
+the given amount at each iteration. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.step_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.chain" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#505-508">so [...]
+between adjacent items of the original iterator. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.intersperse_with">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator [...]
+element. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.map">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#827-830">source</a></span><a href="#m [...]
+should be yielded. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.filter">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.filter_map" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#947-950">source</a></spa [...]
+the next value. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.enumerate">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.peekable" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#1064-1066">source</a></spa [...]
 to look at the next element of the iterator without consuming it. See
-their documentation for more information. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.peekable">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_while" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html [...]
-if the underlying iterator ends sooner. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.take">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#1431-1434"> [...]
-unlike <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.fold"><code>fold</code></a>, produces a new iterator. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.scan">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.flat_map" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1. [...]
-such that all those that return <code>true</code> precede all those that return <code>false</code>. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.is_partitioned">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_fold" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span> · <a class="srclink" href="https: [...]
-successfully, producing a single, final value. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.try_fold">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterato [...]
-iterator, stopping at the first error and returning that error. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.try_for_each">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.fold" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/tra [...]
-returning the final result. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.fold">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.reduce" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.51.0">1.51.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#2468-2471">source</ [...]
-operation. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.reduce">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_reduce" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#2539-2544">source</a><a href="#method.try_reduce" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rus [...]
-closure returns a failure, the failure is propagated back to the caller immediately. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.try_reduce">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.all" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0 [...]
-the first non-none result. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.find_map">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_find" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#2799-2804">source</a><a href="#method.try_find" class="anchor">§</a><h4 class="code-header">fn <a href="h [...]
-the first true result or the first error. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.try_find">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.position" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#2 [...]
-specified function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.max_by_key">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.15.0">1.15.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3082-3085">source</a> [...]
-specified comparison function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.max_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by_key" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.6.0">1.6.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3109-3112">s [...]
-specified function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.min_by_key">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.15.0">1.15.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3142-3145">source</a> [...]
-specified comparison function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.min_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.unzip" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3217-3221">source [...]
-of another with respect to the specified comparison function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.cmp_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/trai [...]
-of another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.partial_cmp">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.partial_cmp_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3558-3562">source</a><a href="#method.partial_cmp_by" class="anchor">§</a><h4 class="code-header">fn <a href="h [...]
-of another with respect to the specified comparison function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.partial_cmp_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/trait [...]
-another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.eq">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.eq_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3616-3620">source</a><a href="#method.eq_by" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68. [...]
-another with respect to the specified equality function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.eq_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs. [...]
-another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.ne">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3669-3673">source</a></span><a href="#method.l [...]
-less than those of another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.lt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3690-3694">source</a></span [...]
-less or equal to those of another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3711-3715">source</a [...]
-greater than those of another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.gt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3732-3736">source</a></s [...]
-greater than or equal to those of another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.ge">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.is_sorted_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3791-3794">source</a><a href="#method.is_sorted_by" class="anchor">§</a><h4 class="code-hea [...]
-function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.is_sorted_by_key">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BlockingLister" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BlockingLister" [...]
+their documentation for more information. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.peekable">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_while" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html [...]
+if the underlying iterator ends sooner. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.take">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#1431-1434"> [...]
+unlike <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.fold"><code>fold</code></a>, produces a new iterator. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.scan">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.flat_map" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1. [...]
+such that all those that return <code>true</code> precede all those that return <code>false</code>. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.is_partitioned">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_fold" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span> · <a class="srclink" href="https: [...]
+successfully, producing a single, final value. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.try_fold">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterato [...]
+iterator, stopping at the first error and returning that error. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.try_for_each">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.fold" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/tra [...]
+returning the final result. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.fold">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.reduce" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.51.0">1.51.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#2468-2471">source</ [...]
+operation. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.reduce">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_reduce" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#2539-2544">source</a><a href="#method.try_reduce" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rus [...]
+closure returns a failure, the failure is propagated back to the caller immediately. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.try_reduce">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.all" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1 [...]
+the first non-none result. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.find_map">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_find" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#2799-2804">source</a><a href="#method.try_find" class="anchor">§</a><h4 class="code-header">fn <a href="h [...]
+the first true result or the first error. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.try_find">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.position" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#2 [...]
+specified function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.max_by_key">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.15.0">1.15.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3082-3085">source</a> [...]
+specified comparison function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.max_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by_key" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.6.0">1.6.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3109-3112">s [...]
+specified function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.min_by_key">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.15.0">1.15.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3142-3145">source</a> [...]
+specified comparison function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.min_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.unzip" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3217-3221">source [...]
+of another with respect to the specified comparison function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.cmp_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/trai [...]
+of another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.partial_cmp">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.partial_cmp_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3558-3562">source</a><a href="#method.partial_cmp_by" class="anchor">§</a><h4 class="code-header">fn <a href="h [...]
+of another with respect to the specified comparison function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.partial_cmp_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/trait [...]
+another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.eq">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.eq_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3616-3620">source</a><a href="#method.eq_by" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68. [...]
+another with respect to the specified equality function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.eq_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs. [...]
+another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.ne">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3669-3673">source</a></span><a href="#method.l [...]
+less than those of another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.lt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3690-3694">source</a></span [...]
+less or equal to those of another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3711-3715">source</a [...]
+greater than those of another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.gt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3732-3736">source</a></s [...]
+greater than or equal to those of another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.ge">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.is_sorted_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3791-3794">source</a><a href="#method.is_sorted_by" class="anchor">§</a><h4 class="code-hea [...]
+function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.is_sorted_by_key">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BlockingLister" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BlockingLister" [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-BlockingLister" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-BlockingLister" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BlockingLister" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BlockingLister" class="anchor">§</a> [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BlockingLister" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BlockingLister" class="anchor">§</a> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-IntoIterator-for-BlockingLister" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/collect.rs.html#267">source</a><a href="#impl-IntoIterator-for-BlockingLister" class="anchor">§</a><h3 class="code-header">impl&lt;I&gt; <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/iter/traits/collect/trait.IntoIterator.html" [...]
-until that buffer is filled. <a href="https://rust-random.github.io/rand/rand/seq/trait.IteratorRandom.html#method.choose_multiple_fill">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.choose_multiple" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://rust-random.github.io/rand/src/rand/seq/mod.rs.html#466-467">source</a><a href="#method.choose_multiple" class="anchor">§</a><h4 class="code-header">fn <a h [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-IntoIterator-for-BlockingLister" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/collect.rs.html#267">source</a><a href="#impl-IntoIterator-for-BlockingLister" class="anchor">§</a><h3 class="code-header">impl&lt;I&gt; <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/iter/traits/collect/trait.IntoIterator.html" [...]
+until that buffer is filled. <a href="https://rust-random.github.io/rand/rand/seq/trait.IteratorRandom.html#method.choose_multiple_fill">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.choose_multiple" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://rust-random.github.io/rand/src/rand/seq/mod.rs.html#466-467">source</a><a href="#method.choose_multiple" class="anchor">§</a><h4 class="code-header">fn <a h [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div><script type="text/json" id="notable-traits-data">{"Vec<Self::Item, Global>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/1.68.0/alloc/vec/st [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div><script type="text/json" id="notable-traits-data">{"Vec<Self::Item, Global>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/1.68.1/alloc/vec/st [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.BlockingOperator.html b/docs/rust/opendal/struct.BlockingOperator.html
index d8010a34..cac01e2b 100644
--- a/docs/rust/opendal/struct.BlockingOperator.html
+++ b/docs/rust/opendal/struct.BlockingOperator.html
@@ -20,15 +20,15 @@
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingOperator" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#63-109">source</a><a href="#impl-BlockingOperator" class="anchor">§</a><h3 class="code-header">impl <a class="stru [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_limit" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#85-89">source</a><h4 class="code-header">pub fn <a href="#method.with_limit" class="fn">with_limit</a>(&amp;self, limit: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock" [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingOperator" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#63-109">source</a><a href="#impl-BlockingOperator" class="anchor">§</a><h3 class="code-header">impl <a class="stru [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_limit" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#85-89">source</a><h4 class="code-header">pub fn <a href="#method.with_limit" class="fn">with_limit</a>(&amp;self, limit: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock" [...]
 <p>Default: 1000</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.info" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#106-108">source</a><h4 class="code-header">pub fn <a href="#method.info" class="fn">info</a>(&amp;self) -&gt; <a class="struct" href="struct.OperatorInfo.html" title="struct opendal::OperatorInfo">OperatorInfo</a></h4></section></summary><div class="docblock"><p>Get information o [...]
 <h5 id="examples-1"><a href="#examples-1">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>opendal::BlockingOperator;
 
 <span class="kw">let </span>info = op.info();</code></pre></div>
-</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingOperator-1" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#112-652">source</a><a href="#impl-BlockingOperator-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.BlockingOperator.html" title="struct opendal::BlockingOperator">BlockingOperator</a></h3></section></summary><div  [...]
+</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingOperator-1" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#112-652">source</a><a href="#impl-BlockingOperator-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.BlockingOperator.html" title="struct opendal::BlockingOperator">BlockingOperator</a></h3></section></summary><div  [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>Use <code>stat</code> if you:</p>
 <ul>
@@ -45,7 +45,7 @@ you want has already been cached.</p>
         <span class="macro">println!</span>(<span class="string">&quot;file not exist&quot;</span>)
     }
 }</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.metadata" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#232-243">source</a><h4 class="code-header">pub fn <a href="#method.metadata" class="fn">metadata</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;entry: &amp;<a class="struct" href="struct.Entry.html" title="struct opendal::Entry">Entry</a>,<br>&nbsp;&nbs [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.metadata" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#232-243">source</a><h4 class="code-header">pub fn <a href="#method.metadata" class="fn">metadata</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;entry: &amp;<a class="struct" href="struct.Entry.html" title="struct opendal::Entry">Entry</a>,<br>&nbsp;&nbs [...]
 <p><code>metadata</code> will check the given query with already cached metadata
 first. And query from storage if not found.</p>
 <h5 id="notes-1"><a href="#notes-1">Notes</a></h5>
@@ -91,7 +91,7 @@ cache. In this way, we can make sure that no API call will send.</p>
 </span><span class="kw">let _ </span>= meta.content_length();
 <span class="comment">// etag MUST be correct.
 </span><span class="kw">let _ </span>= meta.etag();</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.is_exist" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#258-267">source</a><h4 class="code-header">pub fn <a href="#method.is_exist" class="fn">is_exist</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type op [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.is_exist" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#258-267">source</a><h4 class="code-header">pub fn <a href="#method.is_exist" class="fn">is_exist</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type op [...]
 <h5 id="example"><a href="#example">Example</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>anyhow::Result;
 <span class="kw">use </span>opendal::BlockingOperator;
@@ -100,7 +100,7 @@ cache. In this way, we can make sure that no API call will send.</p>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.create_dir" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#293-309">source</a><h4 class="code-header">pub fn <a href="#method.create_dir" class="fn">create_dir</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="t [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.create_dir" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#293-309">source</a><h4 class="code-header">pub fn <a href="#method.create_dir" class="fn">create_dir</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="t [...]
 <h5 id="notes-2"><a href="#notes-2">Notes</a></h5>
 <p>To indicate that a path is a directory, it is compulsory to include
 a trailing / in the path. Failure to do so may result in
@@ -112,23 +112,23 @@ a trailing / in the path. Failure to do so may result in
 </ul>
 <h5 id="examples-4"><a href="#examples-4">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code>op.create_dir(<span class="string">&quot;path/to/dir/&quot;</span>)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#327-329">source</a><h4 class="code-header">pub fn <a href="#method.read" class="fn">read</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Resul [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#327-329">source</a><h4 class="code-header">pub fn <a href="#method.read" class="fn">read</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Resul [...]
 <p>This function will allocate a new bytes internally. For more precise memory control or
 reading data lazily, please use <a href="struct.BlockingOperator.html#method.reader" title="BlockingOperator::reader"><code>BlockingOperator::reader</code></a></p>
 <h5 id="examples-5"><a href="#examples-5">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>bs = op.read(<span class="string">&quot;path/to/file&quot;</span>)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.range_read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#348-376">source</a><h4 class="code-header">pub fn <a href="#method.range_read" class="fn">range_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.range_read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#348-376">source</a><h4 class="code-header">pub fn <a href="#method.range_read" class="fn">range_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, [...]
 <p>This function will allocate a new bytes internally. For more precise memory control or
 reading data lazily, please use <a href="struct.BlockingOperator.html#method.range_reader" title="BlockingOperator::range_reader"><code>BlockingOperator::range_reader</code></a></p>
 <h5 id="examples-6"><a href="#examples-6">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>bs = op.range_read(<span class="string">&quot;path/to/file&quot;</span>, <span class="number">1024</span>..<span class="number">2048</span>)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.reader" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#391-393">source</a><h4 class="code-header">pub fn <a href="#method.reader" class="fn">reader</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal: [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.reader" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#391-393">source</a><h4 class="code-header">pub fn <a href="#method.reader" class="fn">reader</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal: [...]
 <h5 id="examples-7"><a href="#examples-7">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>r = op.reader(<span class="string">&quot;path/to/file&quot;</span>)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.range_reader" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#408-423">source</a><h4 class="code-header">pub fn <a href="#method.range_reader" class="fn">range_reader</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">st [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.range_reader" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#408-423">source</a><h4 class="code-header">pub fn <a href="#method.range_reader" class="fn">range_reader</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">st [...]
 <h5 id="examples-8"><a href="#examples-8">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>r = op.range_reader(<span class="string">&quot;path/to/file&quot;</span>, <span class="number">1024</span>..<span class="number">2048</span>)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.write" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#445-447">source</a><h4 class="code-header">pub fn <a href="#method.write" class="fn">write</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, bs: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.write" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#445-447">source</a><h4 class="code-header">pub fn <a href="#method.write" class="fn">write</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, bs: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core [...]
 <h5 id="notes-3"><a href="#notes-3">Notes</a></h5>
 <ul>
 <li>Write will make sure all bytes has been written, or an error will be returned.</li>
@@ -137,7 +137,7 @@ reading data lazily, please use <a href="struct.BlockingOperator.html#method.ran
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bytes::Bytes;
 
 op.write(<span class="string">&quot;path/to/file&quot;</span>, <span class="macro">vec!</span>[<span class="number">0</span>; <span class="number">4096</span>])<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.write_with" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#470-487">source</a><h4 class="code-header">pub fn <a href="#method.write_with" class="fn">write_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.write_with" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#470-487">source</a><h4 class="code-header">pub fn <a href="#method.write_with" class="fn">write_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, [...]
 <h5 id="notes-4"><a href="#notes-4">Notes</a></h5>
 <ul>
 <li>Write will make sure all bytes has been written, or an error will be returned.</li>
@@ -149,7 +149,7 @@ op.write(<span class="string">&quot;path/to/file&quot;</span>, <span class="macr
 <span class="kw">let </span>bs = <span class="string">b&quot;hello, world!&quot;</span>.to_vec();
 <span class="kw">let </span>ow = OpWrite::new().with_content_type(<span class="string">&quot;text/plain&quot;</span>);
 <span class="kw">let _ </span>= op.write_with(<span class="string">&quot;hello.txt&quot;</span>, ow, bs)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.writer" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#512-526">source</a><h4 class="code-header">pub fn <a href="#method.writer" class="fn">writer</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal: [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.writer" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#512-526">source</a><h4 class="code-header">pub fn <a href="#method.writer" class="fn">writer</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal: [...]
 <h5 id="notes-5"><a href="#notes-5">Notes</a></h5>
 <ul>
 <li>Write will make sure all bytes has been written, or an error will be returned.</li>
@@ -161,14 +161,14 @@ op.write(<span class="string">&quot;path/to/file&quot;</span>, <span class="macr
 w.append(<span class="macro">vec!</span>[<span class="number">0</span>; <span class="number">4096</span>])<span class="question-mark">?</span>;
 w.append(<span class="macro">vec!</span>[<span class="number">1</span>; <span class="number">4096</span>])<span class="question-mark">?</span>;
 w.close()<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.delete" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#545-551">source</a><h4 class="code-header">pub fn <a href="#method.delete" class="fn">delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal: [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.delete" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#545-551">source</a><h4 class="code-header">pub fn <a href="#method.delete" class="fn">delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal: [...]
 <h5 id="notes-6"><a href="#notes-6">Notes</a></h5>
 <ul>
 <li>Delete not existing error won’t return errors.</li>
 </ul>
 <h5 id="examples-12"><a href="#examples-12">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code>op.delete(<span class="string">&quot;path/to/file&quot;</span>)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.list" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#586-601">source</a><h4 class="code-header">pub fn <a href="#method.list" class="fn">list</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Resul [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.list" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#586-601">source</a><h4 class="code-header">pub fn <a href="#method.list" class="fn">list</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Resul [...]
 <p>This function will create a new handle to list entries.</p>
 <p>An error will be returned if path doesn’t end with <code>/</code>.</p>
 <h5 id="examples-13"><a href="#examples-13">Examples</a></h5>
@@ -188,7 +188,7 @@ w.close()<span class="question-mark">?</span>;</code></pre></div>
         EntryMode::Unknown =&gt; <span class="kw">continue</span>,
     }
 }</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#636-651">source</a><h4 class="code-header">pub fn <a href="#method.scan" class="fn">scan</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Resul [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#636-651">source</a><h4 class="code-header">pub fn <a href="#method.scan" class="fn">scan</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Resul [...]
 <p>This function will create a new handle to list entries.</p>
 <p>An error will be returned if given path doesn’t end with <code>/</code>.</p>
 <h5 id="examples-14"><a href="#examples-14">Examples</a></h5>
@@ -208,12 +208,12 @@ w.close()<span class="question-mark">?</span>;</code></pre></div>
         EntryMode::Unknown =&gt; <span class="kw">continue</span>,
     }
 }</code></pre></div>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-BlockingOperator" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#56">source</a><a href="#impl-Clone-for-BlockingOperator" c [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-BlockingOperator" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#56">source</a><a href="#impl-Clone-for-BlockingOperator" c [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-BlockingOperator" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-BlockingOperator" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait trac [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BlockingOperator" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BlockingOperator" class="anchor">§ [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BlockingOperator" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BlockingOperator" class="anchor">§ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-BlockingOperator" class="impl has-srclink"><a href="#impl-Pointable-for-BlockingOperator" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN"  [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-BlockingOperator" class="impl has-srclink"><a href="#impl-Pointable-for-BlockingOperator" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN"  [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.BlockingReader.html b/docs/rust/opendal/struct.BlockingReader.html
index da509a26..60563f58 100644
--- a/docs/rust/opendal/struct.BlockingReader.html
+++ b/docs/rust/opendal/struct.BlockingReader.html
@@ -1,58 +1,58 @@
 <!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="BlockingReader is designed to read data from given path in an blocking manner."><meta name="keywords" content="rust, rustlang, rust-lang, BlockingReader"><title>BlockingReader in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/Sourc [...]
 manner.</p>
-</div></details><h2 id="trait-implementations" class="small-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-BlockingRead-for-BlockingReader" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/reader.rs.html#219-234">source</a><a href="#impl-BlockingRead-for-BlockingReader" class="anchor">§</a><h3 clas [...]
-the given amount at each iteration. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.step_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.chain-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#505-508"> [...]
-between adjacent items of the original iterator. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.intersperse_with">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator [...]
-element. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.map">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#827-830">source</a></span><a href="#m [...]
-should be yielded. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.filter">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.filter_map" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#947-950">source</a></spa [...]
-the next value. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.enumerate">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.peekable" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#1064-1066">source</a></spa [...]
+</div></details><h2 id="trait-implementations" class="small-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-BlockingRead-for-BlockingReader" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/reader.rs.html#219-234">source</a><a href="#impl-BlockingRead-for-BlockingReader" class="anchor">§</a><h3 clas [...]
+the given amount at each iteration. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.step_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.chain-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#505-508"> [...]
+between adjacent items of the original iterator. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.intersperse_with">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator [...]
+element. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.map">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#827-830">source</a></span><a href="#m [...]
+should be yielded. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.filter">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.filter_map" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#947-950">source</a></spa [...]
+the next value. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.enumerate">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.peekable" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#1064-1066">source</a></spa [...]
 to look at the next element of the iterator without consuming it. See
-their documentation for more information. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.peekable">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_while" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html [...]
-if the underlying iterator ends sooner. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.take">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#1431-1434"> [...]
-unlike <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.fold"><code>fold</code></a>, produces a new iterator. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.scan">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.flat_map" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1. [...]
-such that all those that return <code>true</code> precede all those that return <code>false</code>. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.is_partitioned">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_fold" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span> · <a class="srclink" href="https: [...]
-successfully, producing a single, final value. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.try_fold">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterato [...]
-iterator, stopping at the first error and returning that error. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.try_for_each">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.fold" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/tra [...]
-returning the final result. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.fold">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.reduce" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.51.0">1.51.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#2468-2471">source</ [...]
-operation. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.reduce">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_reduce" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#2539-2544">source</a><a href="#method.try_reduce" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rus [...]
-closure returns a failure, the failure is propagated back to the caller immediately. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.try_reduce">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.all" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0 [...]
-the first non-none result. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.find_map">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_find" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#2799-2804">source</a><a href="#method.try_find" class="anchor">§</a><h4 class="code-header">fn <a href="h [...]
-the first true result or the first error. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.try_find">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.position" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#2 [...]
-specified function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.max_by_key">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.15.0">1.15.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3082-3085">source</a> [...]
-specified comparison function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.max_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by_key" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.6.0">1.6.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3109-3112">s [...]
-specified function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.min_by_key">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.15.0">1.15.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3142-3145">source</a> [...]
-specified comparison function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.min_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.unzip" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3217-3221">source [...]
-of another with respect to the specified comparison function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.cmp_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/trai [...]
-of another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.partial_cmp">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.partial_cmp_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3558-3562">source</a><a href="#method.partial_cmp_by" class="anchor">§</a><h4 class="code-header">fn <a href="h [...]
-of another with respect to the specified comparison function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.partial_cmp_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/trait [...]
-another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.eq">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.eq_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3616-3620">source</a><a href="#method.eq_by" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68. [...]
-another with respect to the specified equality function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.eq_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs. [...]
-another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.ne">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3669-3673">source</a></span><a href="#method.l [...]
-less than those of another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.lt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3690-3694">source</a></span [...]
-less or equal to those of another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3711-3715">source</a [...]
-greater than those of another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.gt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3732-3736">source</a></s [...]
-greater than or equal to those of another. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.ge">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.is_sorted_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/iterator.rs.html#3791-3794">source</a><a href="#method.is_sorted_by" class="anchor">§</a><h4 class="code-hea [...]
-function. <a href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html#method.is_sorted_by_key">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Read-for-BlockingReader" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/reader.rs.html#236-241">source</a><a href="#impl-Read-for-BlockingReader" class="anchor">§</a><h3 class="code-header">impl <a class="trait" hr [...]
-how many bytes were read. <a href="https://doc.rust-lang.org/1.68.0/std/io/trait.Read.html#tymethod.read">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_vectored" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.36.0">1.36.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/std/io/mod.rs.html#645">source</a></span><a href="#method.read_vector [...]
-implementation. <a href="https://doc.rust-lang.org/1.68.0/std/io/trait.Read.html#method.is_read_vectored">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/std/io/mod.rs.html#709">source</a></span><a href="#method.read_to_end" cl [...]
+their documentation for more information. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.peekable">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_while" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html [...]
+if the underlying iterator ends sooner. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.take">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#1431-1434"> [...]
+unlike <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.fold"><code>fold</code></a>, produces a new iterator. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.scan">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.flat_map" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1. [...]
+such that all those that return <code>true</code> precede all those that return <code>false</code>. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.is_partitioned">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_fold" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span> · <a class="srclink" href="https: [...]
+successfully, producing a single, final value. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.try_fold">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterato [...]
+iterator, stopping at the first error and returning that error. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.try_for_each">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.fold" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/tra [...]
+returning the final result. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.fold">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.reduce" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.51.0">1.51.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#2468-2471">source</ [...]
+operation. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.reduce">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_reduce" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#2539-2544">source</a><a href="#method.try_reduce" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rus [...]
+closure returns a failure, the failure is propagated back to the caller immediately. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.try_reduce">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.all" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1 [...]
+the first non-none result. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.find_map">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_find" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#2799-2804">source</a><a href="#method.try_find" class="anchor">§</a><h4 class="code-header">fn <a href="h [...]
+the first true result or the first error. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.try_find">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.position" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#2 [...]
+specified function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.max_by_key">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.15.0">1.15.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3082-3085">source</a> [...]
+specified comparison function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.max_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by_key" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.6.0">1.6.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3109-3112">s [...]
+specified function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.min_by_key">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.15.0">1.15.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3142-3145">source</a> [...]
+specified comparison function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.min_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.unzip" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3217-3221">source [...]
+of another with respect to the specified comparison function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.cmp_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/trai [...]
+of another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.partial_cmp">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.partial_cmp_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3558-3562">source</a><a href="#method.partial_cmp_by" class="anchor">§</a><h4 class="code-header">fn <a href="h [...]
+of another with respect to the specified comparison function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.partial_cmp_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/trait [...]
+another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.eq">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.eq_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3616-3620">source</a><a href="#method.eq_by" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68. [...]
+another with respect to the specified equality function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.eq_by">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs. [...]
+another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.ne">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3669-3673">source</a></span><a href="#method.l [...]
+less than those of another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.lt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3690-3694">source</a></span [...]
+less or equal to those of another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3711-3715">source</a [...]
+greater than those of another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.gt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3732-3736">source</a></s [...]
+greater than or equal to those of another. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.ge">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.is_sorted_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/iterator.rs.html#3791-3794">source</a><a href="#method.is_sorted_by" class="anchor">§</a><h4 class="code-hea [...]
+function. <a href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html#method.is_sorted_by_key">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Read-for-BlockingReader" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/reader.rs.html#236-241">source</a><a href="#impl-Read-for-BlockingReader" class="anchor">§</a><h3 class="code-header">impl <a class="trait" hr [...]
+how many bytes were read. <a href="https://doc.rust-lang.org/1.68.1/std/io/trait.Read.html#tymethod.read">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_vectored" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.36.0">1.36.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/std/io/mod.rs.html#645">source</a></span><a href="#method.read_vector [...]
+implementation. <a href="https://doc.rust-lang.org/1.68.1/std/io/trait.Read.html#method.is_read_vectored">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/std/io/mod.rs.html#709">source</a></span><a href="#method.read_to_end" cl [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-BlockingReader" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-BlockingReader" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BlockingReader" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BlockingReader" class="anchor">§</a> [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BlockingReader" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BlockingReader" class="anchor">§</a> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-IntoIterator-for-BlockingReader" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/iter/traits/collect.rs.html#267">source</a><a href="#impl-IntoIterator-for-BlockingReader" class="anchor">§</a><h3 class="code-header">impl&lt;I&gt; <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/iter/traits/collect/trait.IntoIterator.html" [...]
-until that buffer is filled. <a href="https://rust-random.github.io/rand/rand/seq/trait.IteratorRandom.html#method.choose_multiple_fill">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.choose_multiple" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://rust-random.github.io/rand/src/rand/seq/mod.rs.html#466-467">source</a><a href="#method.choose_multiple" class="anchor">§</a><h4 class="code-header">fn <a h [...]
-the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64" class="method trait-impl has-srclink"><a href="#method.read_f64" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f64</a>&lt;T&gt;(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/ [...]
-the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u16_into" class="method trait-impl has-srclink"><a href="#method.read_u16_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u16_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u16.html">u16</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/re [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u32_into" class="method trait-impl has-srclink"><a href="#method.read_u32_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u32_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u32.html">u32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Resul [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u64_into" class="method trait-impl has-srclink"><a href="#method.read_u64_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u64_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u64.html">u64</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Resul [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u128_into" class="method trait-impl has-srclink"><a href="#method.read_u128_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u128_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u128.html">u128</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum. [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i8_into" class="method trait-impl has-srclink"><a href="#method.read_i8_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i8_into</a>(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.i8.html">i8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title= [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i32_into" class="method trait-impl has-srclink"><a href="#method.read_i32_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i32_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.i32.html">i32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Resul [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i64_into" class="method trait-impl has-srclink"><a href="#method.read_i64_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i64_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.i64.html">i64</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Resul [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i128_into" class="method trait-impl has-srclink"><a href="#method.read_i128_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i128_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.i128.html">i128</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum. [...]
-reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32_into" class="method trait-impl has-srclink"><a href="#method.read_f32_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f32_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.f32.html">f32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Resul [...]
-point numbers from the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32_into_unchecked" class="method trait-impl has-srclink"><a href="#method.read_f32_into_unchecked" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f32_into_unchecked</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.f32.html">f32</a>]) -&gt; <a class="enu [...]
-point numbers from the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64_into_unchecked" class="method trait-impl has-srclink"><a href="#method.read_f64_into_unchecked" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f64_into_unchecked</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.f64.html">f64</a>]) -&gt; <a class="enu [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-IntoIterator-for-BlockingReader" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/iter/traits/collect.rs.html#267">source</a><a href="#impl-IntoIterator-for-BlockingReader" class="anchor">§</a><h3 class="code-header">impl&lt;I&gt; <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/iter/traits/collect/trait.IntoIterator.html" [...]
+until that buffer is filled. <a href="https://rust-random.github.io/rand/rand/seq/trait.IteratorRandom.html#method.choose_multiple_fill">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.choose_multiple" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://rust-random.github.io/rand/src/rand/seq/mod.rs.html#466-467">source</a><a href="#method.choose_multiple" class="anchor">§</a><h4 class="code-header">fn <a h [...]
+the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64" class="method trait-impl has-srclink"><a href="#method.read_f64" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f64</a>&lt;T&gt;(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/ [...]
+the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u16_into" class="method trait-impl has-srclink"><a href="#method.read_u16_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u16_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u16.html">u16</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/re [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u32_into" class="method trait-impl has-srclink"><a href="#method.read_u32_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u32_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u32.html">u32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Resul [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u64_into" class="method trait-impl has-srclink"><a href="#method.read_u64_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u64_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u64.html">u64</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Resul [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u128_into" class="method trait-impl has-srclink"><a href="#method.read_u128_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u128_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u128.html">u128</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum. [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i8_into" class="method trait-impl has-srclink"><a href="#method.read_i8_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i8_into</a>(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.i8.html">i8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Result.html" title= [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i32_into" class="method trait-impl has-srclink"><a href="#method.read_i32_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i32_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.i32.html">i32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Resul [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i64_into" class="method trait-impl has-srclink"><a href="#method.read_i64_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i64_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.i64.html">i64</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Resul [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i128_into" class="method trait-impl has-srclink"><a href="#method.read_i128_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i128_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.i128.html">i128</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum. [...]
+reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32_into" class="method trait-impl has-srclink"><a href="#method.read_f32_into" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f32_into</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.f32.html">f32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Resul [...]
+point numbers from the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32_into_unchecked" class="method trait-impl has-srclink"><a href="#method.read_f32_into_unchecked" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f32_into_unchecked</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.f32.html">f32</a>]) -&gt; <a class="enu [...]
+point numbers from the underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64_into_unchecked" class="method trait-impl has-srclink"><a href="#method.read_f64_into_unchecked" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f64_into_unchecked</a>&lt;T&gt;(&amp;mut self, dst: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.f64.html">f64</a>]) -&gt; <a class="enu [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div><script type="text/json" id="notable-traits-data">{"Vec<Self::Item, Global>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/1.68.0/alloc/vec/st [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div><script type="text/json" id="notable-traits-data">{"Vec<Self::Item, Global>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/1.68.1/alloc/vec/st [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.BlockingWriter.html b/docs/rust/opendal/struct.BlockingWriter.html
index 90c01c7e..56e4f524 100644
--- a/docs/rust/opendal/struct.BlockingWriter.html
+++ b/docs/rust/opendal/struct.BlockingWriter.html
@@ -1,21 +1,21 @@
 <!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="BlockingWriter is designed to write data into given path in an blocking manner."><meta name="keywords" content="rust, rustlang, rust-lang, BlockingWriter"><title>BlockingWriter in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/Sour [...]
 manner.</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingWriter" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#180-207">source</a><a href="#impl-BlockingWriter" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Blocki [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingWriter" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#180-207">source</a><a href="#impl-BlockingWriter" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Blocki [...]
 <p>It is highly recommended to align the length of the input bytes
 into blocks of 4MiB (except the last block) for better performance
 and compatibility.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.close" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#204-206">source</a><h4 class="code-header">pub fn <a href="#method.close" class="fn">close</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>&gt;</h4> [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Write-for-BlockingWriter" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#209-220">source</a><a href="#impl-Write-for-BlockingWriter" class="anchor">§</a> [...]
-contents reach their destination. <a href="https://doc.rust-lang.org/1.68.0/std/io/trait.Write.html#tymethod.flush">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.write_vectored" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.36.0">1.36.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/std/io/mod.rs.html#1463">source</a></span><a href="#method [...]
-implementation. <a href="https://doc.rust-lang.org/1.68.0/std/io/trait.Write.html#method.is_write_vectored">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.write_all" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/std/io/mod.rs.html#1540">source</a></span><a href="#method.write_all" cla [...]
-encountered. <a href="https://doc.rust-lang.org/1.68.0/std/io/trait.Write.html#method.write_fmt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.by_ref" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/std/io/mod.rs.html#1717-1719">source</a></span><a href="#method.by_ref" class="anchor"> [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.close" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#204-206">source</a><h4 class="code-header">pub fn <a href="#method.close" class="fn">close</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.unit.html">()</a>&gt;</h4> [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Write-for-BlockingWriter" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#209-220">source</a><a href="#impl-Write-for-BlockingWriter" class="anchor">§</a> [...]
+contents reach their destination. <a href="https://doc.rust-lang.org/1.68.1/std/io/trait.Write.html#tymethod.flush">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.write_vectored" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.36.0">1.36.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/std/io/mod.rs.html#1463">source</a></span><a href="#method [...]
+implementation. <a href="https://doc.rust-lang.org/1.68.1/std/io/trait.Write.html#method.is_write_vectored">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.write_all" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/std/io/mod.rs.html#1540">source</a></span><a href="#method.write_all" cla [...]
+encountered. <a href="https://doc.rust-lang.org/1.68.1/std/io/trait.Write.html#method.write_fmt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.by_ref" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/std/io/mod.rs.html#1717-1719">source</a></span><a href="#method.by_ref" class="anchor"> [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-BlockingWriter" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-BlockingWriter" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BlockingWriter" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BlockingWriter" class="anchor">§</a> [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BlockingWriter" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BlockingWriter" class="anchor">§</a> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-BlockingWriter" class="impl has-srclink"><a href="#impl-Pointable-for-BlockingWriter" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-BlockingWriter" class="impl has-srclink"><a href="#impl-Pointable-for-BlockingWriter" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-WriteBytesExt-for-BlockingWriter" class="impl has-srclink"><a href="#impl-WriteBytesExt-for-BlockingWriter" class= [...]
-the underlying writer. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.write_f64" class="method trait-impl has-srclink"><a href="#method.write_f64" class="anchor">§</a><h4 class="code-header">fn <a class="fn">write_f64</a>&lt;T&gt;(&amp;mut self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.f64.html">f64</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" ti [...]
-the underlying writer. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Writer-for-BlockingWriter" class="impl has-srclink"><a href="#impl-Writer-for-BlockingWriter" class="anchor">§</a><h3 class="code-header">impl&lt;W&gt; Writer for W<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;W: <a class="trait" href="https://doc.rust-lang.org/1.68.0/std/io/trait.Write.html" title="trait std::io::Write">Write</a [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-WriteBytesExt-for-BlockingWriter" class="impl has-srclink"><a href="#impl-WriteBytesExt-for-BlockingWriter" class= [...]
+the underlying writer. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.write_f64" class="method trait-impl has-srclink"><a href="#method.write_f64" class="anchor">§</a><h4 class="code-header">fn <a class="fn">write_f64</a>&lt;T&gt;(&amp;mut self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.f64.html">f64</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/result/enum.Result.html" ti [...]
+the underlying writer. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Writer-for-BlockingWriter" class="impl has-srclink"><a href="#impl-Writer-for-BlockingWriter" class="anchor">§</a><h3 class="code-header">impl&lt;W&gt; Writer for W<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;W: <a class="trait" href="https://doc.rust-lang.org/1.68.1/std/io/trait.Write.html" title="trait std::io::Write">Write</a [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.Entry.html b/docs/rust/opendal/struct.Entry.html
index a7e3b188..18ca2b6b 100644
--- a/docs/rust/opendal/struct.Entry.html
+++ b/docs/rust/opendal/struct.Entry.html
@@ -1,16 +1,16 @@
 <!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="Entry is the file/dir entry returned by `Lister`."><meta name="keywords" content="rust, rustlang, rust-lang, Entry"><title>Entry in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Entry" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/entry.rs.html#31-80">source</a><a href="#impl-Entry" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Entry.html" title="struct o [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.path" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/entry.rs.html#58-60">source</a><h4 class="code-header">pub fn <a href="#method.path" class="fn">path</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Path of entry. Path is relative to operator’s root.
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Entry" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/entry.rs.html#31-80">source</a><a href="#impl-Entry" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Entry.html" title="struct o [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.path" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/entry.rs.html#58-60">source</a><h4 class="code-header">pub fn <a href="#method.path" class="fn">path</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Path of entry. Path is relative to operator’s root.
 Only valid in current operator.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/entry.rs.html#66-68">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Name of entry. Name is the last segment of path.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/entry.rs.html#66-68">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Name of entry. Name is the last segment of path.</p>
 <p>If this entry is a dir, <code>Name</code> MUST endswith <code>/</code>
 Otherwise, <code>Name</code> MUST NOT endswith <code>/</code>.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Entry" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/entry.rs.html#22">source</a><a href="#impl-Clone-for-Entry" class="anchor">§</a><h3 class="code-header"> [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Entry" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/entry.rs.html#22">source</a><a href="#impl-Clone-for-Entry" class="anchor">§</a><h3 class="code-header"> [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Entry" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Entry" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Instr [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Entry" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Entry" class="anchor">§</a><h3 class="code-he [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Entry" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Entry" class="anchor">§</a><h3 class="code-he [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Entry" class="impl has-srclink"><a href="#impl-Pointable-for-Entry" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a><h [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Entry" class="impl has-srclink"><a href="#impl-Pointable-for-Entry" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a><h [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.Error.html b/docs/rust/opendal/struct.Error.html
index f2d63df1..f3d99451 100644
--- a/docs/rust/opendal/struct.Error.html
+++ b/docs/rust/opendal/struct.Error.html
@@ -1,28 +1,28 @@
 <!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="Error is the error struct returned by all opendal functions."><meta name="keywords" content="rust, rustlang, rust-lang, Error"><title>Error in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf [...]
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Error" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#217-303">source</a><a href="#impl-Error" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Error.html" title="struct [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_operation" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#237-244">source</a><h4 class="code-header">pub fn <a href="#method.with_operation" class="fn">with_operation</a>(self, operation: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;&amp;'static <a class="p [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Error" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#217-303">source</a><a href="#impl-Error" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Error.html" title="struct [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_operation" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#237-244">source</a><h4 class="code-header">pub fn <a href="#method.with_operation" class="fn">with_operation</a>(self, operation: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;&amp;'static <a class="p [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>If the error already carries an operation, we will push a new context
 <code>(called, operation)</code>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_context" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#247-250">source</a><h4 class="code-header">pub fn <a href="#method.with_context" class="fn">with_context</a>(self, key: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, value: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0 [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_source" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#257-262">source</a><h4 class="code-header">pub fn <a href="#method.set_source" class="fn">set_source</a>(self, src: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://docs.rs/an [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_context" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#247-250">source</a><h4 class="code-header">pub fn <a href="#method.with_context" class="fn">with_context</a>(self, key: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, value: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1 [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_source" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#257-262">source</a><h4 class="code-header">pub fn <a href="#method.set_source" class="fn">set_source</a>(self, src: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://docs.rs/an [...]
 <h5 id="notes-1"><a href="#notes-1">Notes</a></h5>
 <p>If the source has been set, we will raise a panic here.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.map" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#265-270">source</a><h4 class="code-header">pub fn <a href="#method.map" class="fn">map</a>&lt;F&gt;(self, f: F) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnOnce.html" title="trait core:: [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.map" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#265-270">source</a><h4 class="code-header">pub fn <a href="#method.map" class="fn">map</a>&lt;F&gt;(self, f: F) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnOnce.html" title="trait core:: [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.set_permanent" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#273-276">source</a><h4 class="code-header">pub fn <a href="#method.set_permanent" class="fn">set_permanent</a>(self) -&gt; Self</h4></section></summary><div class="docblock"><p>Set permanent status for error.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.set_temporary" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#281-284">source</a><h4 class="code-header">pub fn <a href="#method.set_temporary" class="fn">set_temporary</a>(self) -&gt; Self</h4></section></summary><div class="docblock"><p>Set temporary status for error.</p>
 <p>By set temporary, we indicate this error is retryable.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.set_persistent" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#289-292">source</a><h4 class="code-header">pub fn <a href="#method.set_persistent" class="fn">set_persistent</a>(self) -&gt; Self</h4></section></summary><div class="docblock"><p>Set persistent status for error.</p>
 <p>By setting persistent, we indicate the retry should be stopped.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.kind" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#295-297">source</a><h4 class="code-header">pub fn <a href="#method.kind" class="fn">kind</a>(&amp;self) -&gt; <a class="enum" href="enum.ErrorKind.html" title="enum opendal::ErrorKind">ErrorKind</a></h4></section></summary><div class="docblock"><p>Return error’s kind.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.is_temporary" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#300-302">source</a><h4 class="code-header">pub fn <a href="#method.is_temporary" class="fn">is_temporary</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if this error is t [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Debug-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#175-209">source</a><a href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-hea [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.is_temporary" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#300-302">source</a><h4 class="code-header">pub fn <a href="#method.is_temporary" class="fn">is_temporary</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if this error is t [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Debug-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#175-209">source</a><a href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-hea [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Error" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Instr [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-he [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-he [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Error" class="impl has-srclink"><a href="#impl-Pointable-for-Error" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a><h [...]
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/1.68.0/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Same%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34">source</a><a href="#impl-Same%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Error" class="impl has-srclink"><a href="#impl-Pointable-for-Error" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a><h [...]
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/1.68.1/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Same%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34">source</a><a href="#impl-Same%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.Lister.html b/docs/rust/opendal/struct.Lister.html
index 98ec6d40..3d1e6496 100644
--- a/docs/rust/opendal/struct.Lister.html
+++ b/docs/rust/opendal/struct.Lister.html
@@ -3,92 +3,92 @@ manner.</p>
 <p>Users can construct Lister by <code>list</code> or <code>scan</code>.</p>
 <p>User can use lister as <code>Stream&lt;Item = Result&lt;Entry&gt;&gt;</code> or
 call <code>next_page</code> directly.</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Lister" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/list.rs.html#50-92">source</a><a href="#impl-Lister" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Lister.html" title="struct [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Lister" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/list.rs.html#50-92">source</a><a href="#impl-Lister" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Lister.html" title="struct [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>Don’t mix the usage of <code>next_page</code> and <code>Stream&lt;Item = Result&lt;Entry&gt;&gt;</code>.
 Always using the same calling style.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Stream-for-Lister" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/list.rs.html#94-128">source</a><a href="#impl-Stream-for-Lister" class="anchor">§</a><h3 class="code-h [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Stream-for-Lister" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/list.rs.html#94-128">source</a><a href="#impl-Stream-for-Lister" class="anchor">§</a><h3 class="code-h [...]
 current task for wakeup if the value is not yet available, and returning
-<code>None</code> if the stream is exhausted. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.size_hint" class="method trait-impl has-srclink"><a href="#method.size_hint" class="anchor">§</a><h4 class="code-header">fn <a class="fn">size_hint</a>(&amp;self) -&gt; (<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Opt [...]
+<code>None</code> if the stream is exhausted. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.size_hint" class="method trait-impl has-srclink"><a href="#method.size_hint" class="anchor">§</a><h4 class="code-header">fn <a class="fn">size_hint</a>(&amp;self) -&gt; (<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Opt [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Lister" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Lister" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Lister" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Lister" class="anchor">§</a><h3 class="code- [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Lister" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Lister" class="anchor">§</a><h3 class="code- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Lister" class="impl has-srclink"><a href="#impl-Pointable-for-Lister" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
-If the stream terminates, then the next item is <a href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html#variant.None" title="None"><code>None</code></a>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map" class="method trait-impl has-srclink"><a href="#method.map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map</a>&lt;T, F&gt;(self, f: F) -&gt; Map&lt;Self, F&gt;<span class="where fmt-newline">where [...]
-the resulting type. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.enumerate" class="method trait-impl has-srclink"><a href="#method.enumerate" class="anchor">§</a><h4 class="code-header">fn <a class="fn">enumerate</a>(self) -&gt; Enumerate&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker: [...]
-the next value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.filter" class="method trait-impl has-srclink"><a href="#method.filter" class="anchor">§</a><h4 class="code-header">fn <a class="fn">filter</a>&lt;Fut, F&gt;(self, f: F) -&gt; Filter&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnMut.html" title="trai [...]
-asynchronous predicate. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.filter_map" class="method trait-impl has-srclink"><a href="#method.filter_map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">filter_map</a>&lt;Fut, T, F&gt;(self, f: F) -&gt; FilterMap&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/tra [...]
-them to a different type according to the provided asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.then" class="method trait-impl has-srclink"><a href="#method.then" class="anchor">§</a><h4 class="code-header">fn <a class="fn">then</a>&lt;Fut, F&gt;(self, f: F) -&gt; Then&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68. [...]
-an asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.collect" class="method trait-impl has-srclink"><a href="#method.collect" class="anchor">§</a><h4 class="code-header">fn <a class="fn">collect</a>&lt;C&gt;(self) -&gt; Collect&lt;Self, C&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;C: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/default/trait.Default.html" title="trait core [...]
-future representing the result of that computation. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.unzip" class="method trait-impl has-srclink"><a href="#method.unzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">unzip</a>&lt;A, B, FromA, FromB&gt;(self) -&gt; Unzip&lt;Self, FromA, FromB&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;FromA: <a class="trait" href="https://doc.rust-lang.org/1.68.0 [...]
-resolves to pair of containers. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.concat" class="method trait-impl has-srclink"><a href="#method.concat" class="anchor">§</a><h4 class="code-header">fn <a class="fn">concat</a>(self) -&gt; Concat&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker: [...]
-destination, returning a future representing the end result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.count" class="method trait-impl has-srclink"><a href="#method.count" class="anchor">§</a><h4 class="code-header">fn <a class="fn">count</a>(self) -&gt; Count&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" t [...]
-collecting all the values into one final result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.any" class="method trait-impl has-srclink"><a href="#method.any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">any</a>&lt;Fut, F&gt;(self, f: F) -&gt; Any&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.Fn [...]
-inner streams produced by the base stream concurrently. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.flat_map" class="method trait-impl has-srclink"><a href="#method.flat_map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">flat_map</a>&lt;U, F&gt;(self, f: F) -&gt; FlatMap&lt;Self, U, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Lister" class="impl has-srclink"><a href="#impl-Pointable-for-Lister" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
+If the stream terminates, then the next item is <a href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html#variant.None" title="None"><code>None</code></a>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map" class="method trait-impl has-srclink"><a href="#method.map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map</a>&lt;T, F&gt;(self, f: F) -&gt; Map&lt;Self, F&gt;<span class="where fmt-newline">where [...]
+the resulting type. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.enumerate" class="method trait-impl has-srclink"><a href="#method.enumerate" class="anchor">§</a><h4 class="code-header">fn <a class="fn">enumerate</a>(self) -&gt; Enumerate&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker: [...]
+the next value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.filter" class="method trait-impl has-srclink"><a href="#method.filter" class="anchor">§</a><h4 class="code-header">fn <a class="fn">filter</a>&lt;Fut, F&gt;(self, f: F) -&gt; Filter&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnMut.html" title="trai [...]
+asynchronous predicate. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.filter_map" class="method trait-impl has-srclink"><a href="#method.filter_map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">filter_map</a>&lt;Fut, T, F&gt;(self, f: F) -&gt; FilterMap&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/tra [...]
+them to a different type according to the provided asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.then" class="method trait-impl has-srclink"><a href="#method.then" class="anchor">§</a><h4 class="code-header">fn <a class="fn">then</a>&lt;Fut, F&gt;(self, f: F) -&gt; Then&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68. [...]
+an asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.collect" class="method trait-impl has-srclink"><a href="#method.collect" class="anchor">§</a><h4 class="code-header">fn <a class="fn">collect</a>&lt;C&gt;(self) -&gt; Collect&lt;Self, C&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;C: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/default/trait.Default.html" title="trait core [...]
+future representing the result of that computation. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.unzip" class="method trait-impl has-srclink"><a href="#method.unzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">unzip</a>&lt;A, B, FromA, FromB&gt;(self) -&gt; Unzip&lt;Self, FromA, FromB&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;FromA: <a class="trait" href="https://doc.rust-lang.org/1.68.1 [...]
+resolves to pair of containers. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.concat" class="method trait-impl has-srclink"><a href="#method.concat" class="anchor">§</a><h4 class="code-header">fn <a class="fn">concat</a>(self) -&gt; Concat&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker: [...]
+destination, returning a future representing the end result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.count" class="method trait-impl has-srclink"><a href="#method.count" class="anchor">§</a><h4 class="code-header">fn <a class="fn">count</a>(self) -&gt; Count&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" t [...]
+collecting all the values into one final result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.any" class="method trait-impl has-srclink"><a href="#method.any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">any</a>&lt;Fut, F&gt;(self, f: F) -&gt; Any&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.Fn [...]
+inner streams produced by the base stream concurrently. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.flat_map" class="method trait-impl has-srclink"><a href="#method.flat_map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">flat_map</a>&lt;U, F&gt;(self, f: F) -&gt; FlatMap&lt;Self, U, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core [...]
 and polls them concurrently, yielding items in any order, as they made
-available. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method trait-impl has-srclink"><a href="#method.scan" class="anchor">§</a><h4 class="code-header">fn <a class="fn">scan</a>&lt;S, B, Fut, F&gt;(self, initial_state: S, f: F) -&gt; Scan&lt;Self, S, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnMut.htm [...]
-and produces a new stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_while" class="method trait-impl has-srclink"><a href="#method.skip_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">skip_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; SkipWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/tra [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take_while" class="method trait-impl has-srclink"><a href="#method.take_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; TakeWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take_until" class="method trait-impl has-srclink"><a href="#method.take_until" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take_until</a>&lt;Fut&gt;(self, fut: Fut) -&gt; TakeUntil&lt;Self, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/future/futur [...]
-closure for each element on the stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each_concurrent" class="method trait-impl has-srclink"><a href="#method.for_each_concurrent" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each_concurrent</a>&lt;Fut, F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;limit: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.Into [...]
+available. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method trait-impl has-srclink"><a href="#method.scan" class="anchor">§</a><h4 class="code-header">fn <a class="fn">scan</a>&lt;S, B, Fut, F&gt;(self, initial_state: S, f: F) -&gt; Scan&lt;Self, S, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnMut.htm [...]
+and produces a new stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_while" class="method trait-impl has-srclink"><a href="#method.skip_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">skip_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; SkipWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/tra [...]
+resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take_while" class="method trait-impl has-srclink"><a href="#method.take_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; TakeWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function [...]
+resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take_until" class="method trait-impl has-srclink"><a href="#method.take_until" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take_until</a>&lt;Fut&gt;(self, fut: Fut) -&gt; TakeUntil&lt;Self, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/future/futur [...]
+closure for each element on the stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each_concurrent" class="method trait-impl has-srclink"><a href="#method.for_each_concurrent" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each_concurrent</a>&lt;Fut, F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;limit: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/convert/trait.Into [...]
 closure for each element on the stream concurrently as elements become
-available. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take" class="method trait-impl has-srclink"><a href="#method.take" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; Take&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-l [...]
+available. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take" class="method trait-impl has-srclink"><a href="#method.take" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>) -&gt; Take&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-l [...]
 again be called once it has finished. This method can be used to turn
-any <code>Stream</code> into a <code>FusedStream</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.by_ref" class="method trait-impl has-srclink"><a href="#method.by_ref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">by_ref</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div class='docblock'>Borrows a str [...]
-into the sink and the sink has been flushed and closed. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.split" class="method trait-impl has-srclink"><a href="#method.split" class="anchor">§</a><h4 class="code-header">fn <a class="fn">split</a>&lt;Item&gt;(self) -&gt; (SplitSink&lt;Self, Item&gt;, SplitStream&lt;Self&gt;)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sink&lt;Item&gt; + <a class="trait" href="h [...]
-objects. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect" class="method trait-impl has-srclink"><a href="#method.inspect" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inspect</a>&lt;F&gt;(self, f: F) -&gt; Inspect&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnMut.html" title="trait core::ops:: [...]
-of that <code>Either</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.right_stream" class="method trait-impl has-srclink"><a href="#method.right_stream" class="anchor">§</a><h4 class="code-header">fn <a class="fn">right_stream</a>&lt;B&gt;(self) -&gt; Either&lt;B, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;B: Stream&lt;Item = Self::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href= [...]
-of that <code>Either</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.poll_next_unpin" class="method trait-impl has-srclink"><a href="#method.poll_next_unpin" class="anchor">§</a><h4 class="code-header">fn <a class="fn">poll_next_unpin</a>(&amp;mut self, cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;) -&gt [...]
-stream types.</div></details><details class="toggle method-toggle" open><summary><section id="method.select_next_some" class="method trait-impl has-srclink"><a href="#method.select_next_some" class="anchor">§</a><h4 class="code-header">fn <a class="fn">select_next_some</a>(&amp;mut self) -&gt; SelectNextSome&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Unpin.html" title="tra [...]
-ready. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-StreamExt-for-Lister-1" class="impl has-srclink"><a href="#impl-StreamExt-for-Lister-1" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; StreamExt for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Stream + ?<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</ [...]
-on. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.last" class="method trait-impl has-srclink"><a href="#method.last" class="anchor">§</a><h4 class="code-header">fn <a class="fn">last</a>(self) -&gt; LastFuture&lt;Self, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, [...]
+any <code>Stream</code> into a <code>FusedStream</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.by_ref" class="method trait-impl has-srclink"><a href="#method.by_ref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">by_ref</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div class='docblock'>Borrows a str [...]
+into the sink and the sink has been flushed and closed. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.split" class="method trait-impl has-srclink"><a href="#method.split" class="anchor">§</a><h4 class="code-header">fn <a class="fn">split</a>&lt;Item&gt;(self) -&gt; (SplitSink&lt;Self, Item&gt;, SplitStream&lt;Self&gt;)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sink&lt;Item&gt; + <a class="trait" href="h [...]
+objects. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect" class="method trait-impl has-srclink"><a href="#method.inspect" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inspect</a>&lt;F&gt;(self, f: F) -&gt; Inspect&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnMut.html" title="trait core::ops:: [...]
+of that <code>Either</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.right_stream" class="method trait-impl has-srclink"><a href="#method.right_stream" class="anchor">§</a><h4 class="code-header">fn <a class="fn">right_stream</a>&lt;B&gt;(self) -&gt; Either&lt;B, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;B: Stream&lt;Item = Self::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href= [...]
+of that <code>Either</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.poll_next_unpin" class="method trait-impl has-srclink"><a href="#method.poll_next_unpin" class="anchor">§</a><h4 class="code-header">fn <a class="fn">poll_next_unpin</a>(&amp;mut self, cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;) -&gt [...]
+stream types.</div></details><details class="toggle method-toggle" open><summary><section id="method.select_next_some" class="method trait-impl has-srclink"><a href="#method.select_next_some" class="anchor">§</a><h4 class="code-header">fn <a class="fn">select_next_some</a>(&amp;mut self) -&gt; SelectNextSome&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Unpin.html" title="tra [...]
+ready. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-StreamExt-for-Lister-1" class="impl has-srclink"><a href="#impl-StreamExt-for-Lister-1" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; StreamExt for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Stream + ?<a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</ [...]
+on. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.last" class="method trait-impl has-srclink"><a href="#method.last" class="anchor">§</a><h4 class="code-header">fn <a class="fn">last</a>(self) -&gt; LastFuture&lt;Self, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, [...]
 specified key function. If several elements are equally minimum,
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by_key" class="method trait-impl has-srclink"><a href="#method.max_by_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">max_by_key</a>&lt;B, F&gt;(self, key_by: F) -&gt; MaxByKeyFuture&lt;Self, Self::Item, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self:  [...]
+the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by_key" class="method trait-impl has-srclink"><a href="#method.max_by_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">max_by_key</a>&lt;B, F&gt;(self, key_by: F) -&gt; MaxByKeyFuture&lt;Self, Self::Item, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self:  [...]
 specified key function. If several elements are equally maximum,
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by" class="method trait-impl has-srclink"><a href="#method.min_by" class="anchor">§</a><h4 class="code-header">fn <a class="fn">min_by</a>&lt;F&gt;(self, compare: F) -&gt; MinByFuture&lt;Self, F, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait"  [...]
+the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by" class="method trait-impl has-srclink"><a href="#method.min_by" class="anchor">§</a><h4 class="code-header">fn <a class="fn">min_by</a>&lt;F&gt;(self, compare: F) -&gt; MinByFuture&lt;Self, F, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait"  [...]
 specified comparison function. If several elements are equally minimum,
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a class="fn">max</a>(self) -&gt; MaxFuture&lt;Self, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.6 [...]
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a class="fn">min</a>(self) -&gt; MinFuture&lt;Self, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.6 [...]
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by" class="method trait-impl has-srclink"><a href="#method.max_by" class="anchor">§</a><h4 class="code-header">fn <a class="fn">max_by</a>&lt;F&gt;(self, compare: F) -&gt; MaxByFuture&lt;Self, F, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait"  [...]
+the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a class="fn">max</a>(self) -&gt; MaxFuture&lt;Self, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.6 [...]
+the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a class="fn">min</a>(self) -&gt; MinFuture&lt;Self, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.6 [...]
+the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by" class="method trait-impl has-srclink"><a href="#method.max_by" class="anchor">§</a><h4 class="code-header">fn <a class="fn">max_by</a>&lt;F&gt;(self, compare: F) -&gt; MaxByFuture&lt;Self, F, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait"  [...]
 specified comparison function. If several elements are equally maximum,
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nth" class="method trait-impl has-srclink"><a href="#method.nth" class="anchor">§</a><h4 class="code-header">fn <a class="fn">nth</a>(&amp;mut self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; NthFuture&lt;'_, Self&gt;<span class="where fmt [...]
-producing a single, final value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each-1" class="method trait-impl has-srclink"><a href="#method.for_each-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each</a>&lt;F&gt;(self, f: F) -&gt; ForEachFuture&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Si [...]
-stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_while-1" class="method trait-impl has-srclink"><a href="#method.skip_while-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">skip_while</a>&lt;P&gt;(self, predicate: P) -&gt; SkipWhile&lt;Self, P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title [...]
-Immediately returns the error when the function returns unsuccessfully. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each-1" class="method trait-impl has-srclink"><a href="#method.try_for_each-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_for_each</a>&lt;F, E&gt;(&amp;mut self, f: F) -&gt; TryForEachFuture&lt;'_, Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a cla [...]
-of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.position" class="method trait-impl has-srclink"><a href="#method.position" class="anchor">§</a><h4 class="code-header">fn <a class="fn">position</a>&lt;P&gt;(&amp;mut self, predicate: P) -&gt; PositionFuture&lt;'_, Self, P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Unpin [...]
-its index. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a class="fn">cmp</a>&lt;S&gt;(self, other: S) -&gt; CmpFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker::Size [...]
-of another using ‘Ord’. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a class="fn">ne</a>&lt;S&gt;(self, other: S) -&gt; NeFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::mar [...]
-not equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a class="fn">ge</a>&lt;S&gt;(self, other: S) -&gt; GeFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait co [...]
-greater than or equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a class="fn">eq</a>&lt;S&gt;(self, other: S) -&gt; EqFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" tit [...]
-equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a class="fn">gt</a>&lt;S&gt;(self, other: S) -&gt; GtFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core:: [...]
-greater than those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">le</a>&lt;S&gt;(self, other: S) -&gt; LeFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait co [...]
-less or equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a class="fn">lt</a>&lt;S&gt;(self, other: S) -&gt; LtFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trai [...]
-less than those of another. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-StreamExt-for-Lister-2" class="impl has-srclink"><a href="#impl-StreamExt-for-Lister-2" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; StreamExt for S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: Stream + ?<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::m [...]
-<code>false</code>, and then collects them into two collections. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.fold-2" class="method trait-impl has-srclink"><a href="#method.fold-2" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fold</a>&lt;T, F&gt;(self, init: T, f: F) -&gt; FoldFuture&lt;Self, F, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang [...]
-into the one provided. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_ok" class="method trait-impl has-srclink"><a href="#method.map_ok" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_ok</a>&lt;T, F&gt;(self, f: F) -&gt; MapOk&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait co [...]
-using the provided closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_err" class="method trait-impl has-srclink"><a href="#method.map_err" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_err</a>&lt;E, F&gt;(self, f: F) -&gt; MapErr&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title= [...]
-using the provided closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.and_then" class="method trait-impl has-srclink"><a href="#method.and_then" class="anchor">§</a><h4 class="code-header">fn <a class="fn">and_then</a>&lt;Fut, F&gt;(self, f: F) -&gt; AndThen&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnMu [...]
-results to the provided closure <code>f</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.or_else" class="method trait-impl has-srclink"><a href="#method.or_else" class="anchor">§</a><h4 class="code-header">fn <a class="fn">or_else</a>&lt;Fut, F&gt;(self, f: F) -&gt; OrElse&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/fun [...]
-erroneous result to the provided closure <code>f</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_ok" class="method trait-impl has-srclink"><a href="#method.inspect_ok" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inspect_ok</a>&lt;F&gt;(self, f: F) -&gt; InspectOk&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/c [...]
-it on. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_err" class="method trait-impl has-srclink"><a href="#method.inspect_err" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inspect_err</a>&lt;F&gt;(self, f: F) -&gt; InspectErr&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnMut.html" title="trai [...]
-<a href="futures_core::stream::Stream"><code>Stream</code></a> <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_next" class="method trait-impl has-srclink"><a href="#method.try_next" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_next</a>(&amp;mut self) -&gt; TryNext&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ [...]
+the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nth" class="method trait-impl has-srclink"><a href="#method.nth" class="anchor">§</a><h4 class="code-header">fn <a class="fn">nth</a>(&amp;mut self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>) -&gt; NthFuture&lt;'_, Self&gt;<span class="where fmt [...]
+producing a single, final value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each-1" class="method trait-impl has-srclink"><a href="#method.for_each-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each</a>&lt;F&gt;(self, f: F) -&gt; ForEachFuture&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Si [...]
+stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_while-1" class="method trait-impl has-srclink"><a href="#method.skip_while-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">skip_while</a>&lt;P&gt;(self, predicate: P) -&gt; SkipWhile&lt;Self, P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title [...]
+Immediately returns the error when the function returns unsuccessfully. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each-1" class="method trait-impl has-srclink"><a href="#method.try_for_each-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_for_each</a>&lt;F, E&gt;(&amp;mut self, f: F) -&gt; TryForEachFuture&lt;'_, Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a cla [...]
+of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.position" class="method trait-impl has-srclink"><a href="#method.position" class="anchor">§</a><h4 class="code-header">fn <a class="fn">position</a>&lt;P&gt;(&amp;mut self, predicate: P) -&gt; PositionFuture&lt;'_, Self, P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Unpin [...]
+its index. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a class="fn">cmp</a>&lt;S&gt;(self, other: S) -&gt; CmpFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker::Size [...]
+of another using ‘Ord’. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a class="fn">ne</a>&lt;S&gt;(self, other: S) -&gt; NeFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::mar [...]
+not equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a class="fn">ge</a>&lt;S&gt;(self, other: S) -&gt; GeFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait co [...]
+greater than or equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a class="fn">eq</a>&lt;S&gt;(self, other: S) -&gt; EqFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" tit [...]
+equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a class="fn">gt</a>&lt;S&gt;(self, other: S) -&gt; GtFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core:: [...]
+greater than those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">le</a>&lt;S&gt;(self, other: S) -&gt; LeFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait co [...]
+less or equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a class="fn">lt</a>&lt;S&gt;(self, other: S) -&gt; LtFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trai [...]
+less than those of another. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-StreamExt-for-Lister-2" class="impl has-srclink"><a href="#impl-StreamExt-for-Lister-2" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; StreamExt for S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: Stream + ?<a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::m [...]
+<code>false</code>, and then collects them into two collections. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.fold-2" class="method trait-impl has-srclink"><a href="#method.fold-2" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fold</a>&lt;T, F&gt;(self, init: T, f: F) -&gt; FoldFuture&lt;Self, F, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang [...]
+into the one provided. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_ok" class="method trait-impl has-srclink"><a href="#method.map_ok" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_ok</a>&lt;T, F&gt;(self, f: F) -&gt; MapOk&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait co [...]
+using the provided closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_err" class="method trait-impl has-srclink"><a href="#method.map_err" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_err</a>&lt;E, F&gt;(self, f: F) -&gt; MapErr&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title= [...]
+using the provided closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.and_then" class="method trait-impl has-srclink"><a href="#method.and_then" class="anchor">§</a><h4 class="code-header">fn <a class="fn">and_then</a>&lt;Fut, F&gt;(self, f: F) -&gt; AndThen&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnMu [...]
+results to the provided closure <code>f</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.or_else" class="method trait-impl has-srclink"><a href="#method.or_else" class="anchor">§</a><h4 class="code-header">fn <a class="fn">or_else</a>&lt;Fut, F&gt;(self, f: F) -&gt; OrElse&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/fun [...]
+erroneous result to the provided closure <code>f</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_ok" class="method trait-impl has-srclink"><a href="#method.inspect_ok" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inspect_ok</a>&lt;F&gt;(self, f: F) -&gt; InspectOk&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/c [...]
+it on. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_err" class="method trait-impl has-srclink"><a href="#method.inspect_err" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inspect_err</a>&lt;F&gt;(self, f: F) -&gt; InspectErr&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnMut.html" title="trai [...]
+<a href="futures_core::stream::Stream"><code>Stream</code></a> <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_next" class="method trait-impl has-srclink"><a href="#method.try_next" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_next</a>(&amp;mut self) -&gt; TryNext&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ [...]
 If an error is encountered before the next item, the error is returned
-instead. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each" class="method trait-impl has-srclink"><a href="#method.try_for_each" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_for_each</a>&lt;Fut, F&gt;(self, f: F) -&gt; TryForEach&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnMut.ht [...]
-asynchronous closure for each element on the stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_skip_while" class="method trait-impl has-srclink"><a href="#method.try_skip_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_skip_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; TrySkipWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.r [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_take_while" class="method trait-impl has-srclink"><a href="#method.try_take_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_take_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; TryTakeWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/co [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each_concurrent" class="method trait-impl has-srclink"><a href="#method.try_for_each_concurrent" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_for_each_concurrent</a>&lt;Fut, F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;limit: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.I [...]
+instead. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each" class="method trait-impl has-srclink"><a href="#method.try_for_each" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_for_each</a>&lt;Fut, F&gt;(self, f: F) -&gt; TryForEach&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnMut.ht [...]
+asynchronous closure for each element on the stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_skip_while" class="method trait-impl has-srclink"><a href="#method.try_skip_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_skip_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; TrySkipWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.r [...]
+resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_take_while" class="method trait-impl has-srclink"><a href="#method.try_take_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_take_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; TryTakeWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/co [...]
+resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each_concurrent" class="method trait-impl has-srclink"><a href="#method.try_for_each_concurrent" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_for_each_concurrent</a>&lt;Fut, F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;limit: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/convert/trait.I [...]
 closure for each element on the stream concurrently as elements become
-available, exiting as soon as an error occurs. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_collect" class="method trait-impl has-srclink"><a href="#method.try_collect" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_collect</a>&lt;C&gt;(self) -&gt; TryCollect&lt;Self, C&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;C: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/default/ [...]
-returning a future representing the result of that computation. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_chunks" class="method trait-impl has-srclink"><a href="#method.try_chunks" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_chunks</a>(self, capacity: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; TryChunks&lt;Self&gt;<span class="where fmt-newlin [...]
-provided asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_filter_map" class="method trait-impl has-srclink"><a href="#method.try_filter_map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_filter_map</a>&lt;Fut, F, T&gt;(self, f: F) -&gt; TryFilterMap&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: TryFuture&lt;Ok = <a class="enum" href="https://doc.r [...]
+available, exiting as soon as an error occurs. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_collect" class="method trait-impl has-srclink"><a href="#method.try_collect" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_collect</a>&lt;C&gt;(self) -&gt; TryCollect&lt;Self, C&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;C: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/default/ [...]
+returning a future representing the result of that computation. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_chunks" class="method trait-impl has-srclink"><a href="#method.try_chunks" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_chunks</a>(self, capacity: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>) -&gt; TryChunks&lt;Self&gt;<span class="where fmt-newlin [...]
+provided asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_filter_map" class="method trait-impl has-srclink"><a href="#method.try_filter_map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_filter_map</a>&lt;Fut, F, T&gt;(self, f: F) -&gt; TryFilterMap&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: TryFuture&lt;Ok = <a class="enum" href="https://doc.r [...]
 simultaneously mapping them to a different type according to the
-provided asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_flatten_unordered" class="method trait-impl has-srclink"><a href="#method.try_flatten_unordered" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_flatten_unordered</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;limit: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.Into.html" title="tra [...]
+provided asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_flatten_unordered" class="method trait-impl has-srclink"><a href="#method.try_flatten_unordered" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_flatten_unordered</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;limit: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/convert/trait.Into.html" title="tra [...]
 will be polled concurrently and any errors will be passed through without looking at them.
-If the underlying base stream returns an error, it will be <strong>immediately</strong> propagated. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_flatten" class="method trait-impl has-srclink"><a href="#method.try_flatten" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_flatten</a>(self) -&gt; TryFlatten&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Ok: TryStream,<br>&nbsp;& [...]
-stream, collecting all the values into one final result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_concat" class="method trait-impl has-srclink"><a href="#method.try_concat" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_concat</a>(self) -&gt; TryConcat&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trai [...]
-extendable destination, returning a future representing the end result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_buffer_unordered" class="method trait-impl has-srclink"><a href="#method.try_buffer_unordered" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_buffer_unordered</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; TryBufferUnordered& [...]
-stream types.</div></details><details class="toggle method-toggle" open><summary><section id="method.into_async_read" class="method trait-impl has-srclink"><a href="#method.into_async_read" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_async_read</a>(self) -&gt; IntoAsyncRead&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker:: [...]
+If the underlying base stream returns an error, it will be <strong>immediately</strong> propagated. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_flatten" class="method trait-impl has-srclink"><a href="#method.try_flatten" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_flatten</a>(self) -&gt; TryFlatten&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Ok: TryStream,<br>&nbsp;& [...]
+stream, collecting all the values into one final result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_concat" class="method trait-impl has-srclink"><a href="#method.try_concat" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_concat</a>(self) -&gt; TryConcat&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trai [...]
+extendable destination, returning a future representing the end result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_buffer_unordered" class="method trait-impl has-srclink"><a href="#method.try_buffer_unordered" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_buffer_unordered</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>) -&gt; TryBufferUnordered& [...]
+stream types.</div></details><details class="toggle method-toggle" open><summary><section id="method.into_async_read" class="method trait-impl has-srclink"><a href="#method.into_async_read" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_async_read</a>(self) -&gt; IntoAsyncRead&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker:: [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.Metadata.html b/docs/rust/opendal/struct.Metadata.html
index 303f97dc..76eab0ad 100644
--- a/docs/rust/opendal/struct.Metadata.html
+++ b/docs/rust/opendal/struct.Metadata.html
@@ -5,48 +5,48 @@ should provide during <code>stat</code> operation. But in <code>list</code> oper
 a.k.a., <code>Entry</code>’s content length could be <code>None</code>.</p>
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Metadata" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#48-386">source</a><a href="#impl-Metadata" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Metadata.html" ti [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.mode" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#84-91">source</a><h4 class="code-header">pub fn <a href="#method.mode" class="fn">mode</a>(&amp;self) -&gt; <a class="enum" href="enum.EntryMode.html" title="enum opendal::EntryMode">EntryMode</a></h4></section></summary><div class="docblock"><p>mode represent this entry’s mode.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.is_file" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#94-96">source</a><h4 class="code-header">pub fn <a href="#method.is_file" class="fn">is_file</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if this meta [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.is_dir" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#99-101">source</a><h4 class="code-header">pub fn <a href="#method.is_dir" class="fn">is_dir</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if this metada [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_mode" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#104-108">source</a><h4 class="code-header">pub fn <a href="#method.set_mode" class="fn">set_mode</a>(&amp;mut self, mode: <a class="enum" href="enum.EntryMode.html" title="enum opendal::EntryMode">EntryMode</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.re [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.is_file" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#94-96">source</a><h4 class="code-header">pub fn <a href="#method.is_file" class="fn">is_file</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if this meta [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.is_dir" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#99-101">source</a><h4 class="code-header">pub fn <a href="#method.is_dir" class="fn">is_dir</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if this metada [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_mode" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#104-108">source</a><h4 class="code-header">pub fn <a href="#method.set_mode" class="fn">set_mode</a>(&amp;mut self, mode: <a class="enum" href="enum.EntryMode.html" title="enum opendal::EntryMode">EntryMode</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.re [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.with_mode" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#111-115">source</a><h4 class="code-header">pub fn <a href="#method.with_mode" class="fn">with_mode</a>(self, mode: <a class="enum" href="enum.EntryMode.html" title="enum opendal::EntryMode">EntryMode</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set mode for entry.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_length" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#121-128">source</a><h4 class="code-header">pub fn <a href="#method.content_length" class="fn">content_length</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u64.html">u64</a></h4></section></summary><div class="docblock"><p>Content length of [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_length" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#121-128">source</a><h4 class="code-header">pub fn <a href="#method.content_length" class="fn">content_length</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u64.html">u64</a></h4></section></summary><div class="docblock"><p>Content length of [...]
 <p><code>Content-Length</code> is defined by <a href="https://httpwg.org/specs/rfc7230.html#header.content-length">RFC 7230</a>
 Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length">MDN Content-Length</a> for more information.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_content_length" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#136-140">source</a><h4 class="code-header">pub fn <a href="#method.set_content_length" class="fn">set_content_length</a>(&amp;mut self, content_length: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u64.html">u64</a>) -&gt; <a class="primitive" href="https: [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_length" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#143-147">source</a><h4 class="code-header">pub fn <a href="#method.with_content_length" class="fn">with_content_length</a>(self, content_length: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u64.html">u64</a>) -&gt; Self</h4></section></summary><div class [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_md5" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#155-162">source</a><h4 class="code-header">pub fn <a href="#method.content_md5" class="fn">content_md5</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="ht [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_content_length" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#136-140">source</a><h4 class="code-header">pub fn <a href="#method.set_content_length" class="fn">set_content_length</a>(&amp;mut self, content_length: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u64.html">u64</a>) -&gt; <a class="primitive" href="https: [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_length" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#143-147">source</a><h4 class="code-header">pub fn <a href="#method.with_content_length" class="fn">with_content_length</a>(self, content_length: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u64.html">u64</a>) -&gt; Self</h4></section></summary><div class [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_md5" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#155-162">source</a><h4 class="code-header">pub fn <a href="#method.content_md5" class="fn">content_md5</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="ht [...]
 <p>Content MD5 is defined by <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">RFC 2616</a>.
 And removed by <a href="https://www.rfc-editor.org/rfc/rfc7231">RFC 7231</a>.</p>
 <p>OpenDAL will try its best to set this value, but not guarantee this value is the md5 of content.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_content_md5" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#168-172">source</a><h4 class="code-header">pub fn <a href="#method.set_content_md5" class="fn">set_content_md5</a>(&amp;mut self, content_md5: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.r [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_content_md5" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#168-172">source</a><h4 class="code-header">pub fn <a href="#method.set_content_md5" class="fn">set_content_md5</a>(&amp;mut self, content_md5: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.r [...]
 <p>Content MD5 is defined by <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">RFC 2616</a>.
 And removed by <a href="https://www.rfc-editor.org/rfc/rfc7231">RFC 7231</a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_md5" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#178-182">source</a><h4 class="code-header">pub fn <a href="#method.with_content_md5" class="fn">with_content_md5</a>(self, content_md5: <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -&gt; Self< [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_md5" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#178-182">source</a><h4 class="code-header">pub fn <a href="#method.with_content_md5" class="fn">with_content_md5</a>(self, content_md5: <a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -&gt; Self< [...]
 <p>Content MD5 is defined by <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">RFC 2616</a>.
 And removed by <a href="https://www.rfc-editor.org/rfc/rfc7231">RFC 7231</a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#187-194">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href= [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#187-194">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href= [...]
 <p>Content Type is defined by <a href="https://httpwg.org/specs/rfc9110.html#field.content-type">RFC 9110</a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_content_type" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#199-203">source</a><h4 class="code-header">pub fn <a href="#method.set_content_type" class="fn">set_content_type</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lan [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_content_type" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#199-203">source</a><h4 class="code-header">pub fn <a href="#method.set_content_type" class="fn">set_content_type</a>(&amp;mut self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lan [...]
 <p>Content Type is defined by <a href="https://httpwg.org/specs/rfc9110.html#field.content-type">RFC 9110</a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_type" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#208-212">source</a><h4 class="code-header">pub fn <a href="#method.with_content_type" class="fn">with_content_type</a>(self, v: <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -&gt; Self</h4></s [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_type" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#208-212">source</a><h4 class="code-header">pub fn <a href="#method.with_content_type" class="fn">with_content_type</a>(self, v: <a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -&gt; Self</h4></s [...]
 <p>Content Type is defined by <a href="https://httpwg.org/specs/rfc9110.html#field.content-type">RFC 9110</a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_range" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#217-224">source</a><h4 class="code-header">pub fn <a href="#method.content_range" class="fn">content_range</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="raw/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_range" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#217-224">source</a><h4 class="code-header">pub fn <a href="#method.content_range" class="fn">content_range</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="raw/ [...]
 <p>Content Range is defined by <a href="https://httpwg.org/specs/rfc9110.html#field.content-range">RFC 9110</a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_content_range" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#229-233">source</a><h4 class="code-header">pub fn <a href="#method.set_content_range" class="fn">set_content_range</a>(&amp;mut self, v: <a class="struct" href="raw/struct.BytesContentRange.html" title="struct opendal::raw::BytesContentRange">BytesContentRange</a>) -&gt; <a class="pri [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_content_range" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#229-233">source</a><h4 class="code-header">pub fn <a href="#method.set_content_range" class="fn">set_content_range</a>(&amp;mut self, v: <a class="struct" href="raw/struct.BytesContentRange.html" title="struct opendal::raw::BytesContentRange">BytesContentRange</a>) -&gt; <a class="pri [...]
 <p>Content Range is defined by <a href="https://httpwg.org/specs/rfc9110.html#field.content-range">RFC 9110</a>.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_range" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#238-242">source</a><h4 class="code-header">pub fn <a href="#method.with_content_range" class="fn">with_content_range</a>(self, v: <a class="struct" href="raw/struct.BytesContentRange.html" title="struct opendal::raw::BytesContentRange">BytesContentRange</a>) -&gt; Self</h4></section> [...]
 <p>Content Range is defined by <a href="https://httpwg.org/specs/rfc9110.html#field.content-range">RFC 9110</a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.last_modified" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#250-257">source</a><h4 class="code-header">pub fn <a href="#method.last_modified" class="fn">last_modified</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;OffsetDateTime&gt;</h4></sec [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.last_modified" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#250-257">source</a><h4 class="code-header">pub fn <a href="#method.last_modified" class="fn">last_modified</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;OffsetDateTime&gt;</h4></sec [...]
 <p><code>Last-Modified</code> is defined by <a href="https://httpwg.org/specs/rfc7232.html#header.last-modified">RFC 7232</a>
 Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified">MDN Last-Modified</a> for more information.</p>
 <p>OpenDAL parse the raw value into [<code>OffsetDateTime</code>] for convenient.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_last_modified" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#263-267">source</a><h4 class="code-header">pub fn <a href="#method.set_last_modified" class="fn">set_last_modified</a>(&amp;mut self, last_modified: OffsetDateTime) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;mut </a>Self</h4></ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_last_modified" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#263-267">source</a><h4 class="code-header">pub fn <a href="#method.set_last_modified" class="fn">set_last_modified</a>(&amp;mut self, last_modified: OffsetDateTime) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;mut </a>Self</h4></ [...]
 <p><code>Last-Modified</code> is defined by <a href="https://httpwg.org/specs/rfc7232.html#header.last-modified">RFC 7232</a>
 Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified">MDN Last-Modified</a> for more information.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.with_last_modified" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#273-277">source</a><h4 class="code-header">pub fn <a href="#method.with_last_modified" class="fn">with_last_modified</a>(self, last_modified: OffsetDateTime) -&gt; Self</h4></section></summary><div class="docblock"><p>Set Last modified of this entry.</p>
 <p><code>Last-Modified</code> is defined by <a href="https://httpwg.org/specs/rfc7232.html#header.last-modified">RFC 7232</a>
 Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified">MDN Last-Modified</a> for more information.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.etag" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#290-297">source</a><h4 class="code-header">pub fn <a href="#method.etag" class="fn">etag</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.o [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.etag" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#290-297">source</a><h4 class="code-header">pub fn <a href="#method.etag" class="fn">etag</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.o [...]
 <p><code>ETag</code> is defined by <a href="https://httpwg.org/specs/rfc7232.html#header.etag">RFC 7232</a>
 Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag">MDN ETag</a> for more information.</p>
 <p>OpenDAL will return this value AS-IS like the following:</p>
@@ -55,7 +55,7 @@ Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag
 <li><code>W/&quot;0815&quot;</code></li>
 </ul>
 <p><code>&quot;</code> is part of etag.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_etag" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#310-314">source</a><h4 class="code-header">pub fn <a href="#method.set_etag" class="fn">set_etag</a>(&amp;mut self, etag: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/prim [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_etag" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#310-314">source</a><h4 class="code-header">pub fn <a href="#method.set_etag" class="fn">set_etag</a>(&amp;mut self, etag: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/prim [...]
 <p><code>ETag</code> is defined by <a href="https://httpwg.org/specs/rfc7232.html#header.etag">RFC 7232</a>
 Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag">MDN ETag</a> for more information.</p>
 <p>OpenDAL will return this value AS-IS like the following:</p>
@@ -64,7 +64,7 @@ Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag
 <li><code>W/&quot;0815&quot;</code></li>
 </ul>
 <p><code>&quot;</code> is part of etag, don’t trim it before setting.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_etag" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#327-331">source</a><h4 class="code-header">pub fn <a href="#method.with_etag" class="fn">with_etag</a>(self, etag: <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -&gt; Self</h4></section></summary><div [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_etag" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#327-331">source</a><h4 class="code-header">pub fn <a href="#method.with_etag" class="fn">with_etag</a>(self, etag: <a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -&gt; Self</h4></section></summary><div [...]
 <p><code>ETag</code> is defined by <a href="https://httpwg.org/specs/rfc7232.html#header.etag">RFC 7232</a>
 Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag">MDN ETag</a> for more information.</p>
 <p>OpenDAL will return this value AS-IS like the following:</p>
@@ -73,7 +73,7 @@ Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag
 <li><code>W/&quot;0815&quot;</code></li>
 </ul>
 <p><code>&quot;</code> is part of etag, don’t trim it before setting.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#344-351">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a cl [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#344-351">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a cl [...]
 <p><code>Content-Disposition</code> is defined by <a href="https://www.rfc-editor/rfcs/2616">RFC 2616</a> and
 clarified usage in <a href="https://www.rfc-editor/6266">RFC 6266</a>.
 Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition">MDN Content-Disposition</a> for more information.</p>
@@ -83,7 +83,7 @@ Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cont
 <li>“attachment”</li>
 <li>“attachment; filename=&quot;filename.jpg&quot;”</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_disposition" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#364-368">source</a><h4 class="code-header">pub fn <a href="#method.with_content_disposition" class="fn">with_content_disposition</a>(self, content_disposition: <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string: [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_disposition" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#364-368">source</a><h4 class="code-header">pub fn <a href="#method.with_content_disposition" class="fn">with_content_disposition</a>(self, content_disposition: <a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struct alloc::string: [...]
 <p><code>Content-Disposition</code> is defined by <a href="https://www.rfc-editor/rfcs/2616">RFC 2616</a> and
 clarified usage in <a href="https://www.rfc-editor/6266">RFC 6266</a>.
 Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition">MDN Content-Disposition</a> for more information.</p>
@@ -93,7 +93,7 @@ Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cont
 <li>“attachment”</li>
 <li>“attachment; filename=&quot;filename.jpg&quot;”</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_content_disposition" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#381-385">source</a><h4 class="code-header">pub fn <a href="#method.set_content_disposition" class="fn">set_content_disposition</a>(&amp;mut self, content_disposition: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_content_disposition" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#381-385">source</a><h4 class="code-header">pub fn <a href="#method.set_content_disposition" class="fn">set_content_disposition</a>(&amp;mut self, content_disposition: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class [...]
 <p><code>Content-Disposition</code> is defined by <a href="https://www.rfc-editor/rfcs/2616">RFC 2616</a> and
 clarified usage in <a href="https://www.rfc-editor/6266">RFC 6266</a>.
 Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition">MDN Content-Disposition</a> for more information.</p>
@@ -103,14 +103,14 @@ Refer to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cont
 <li>“attachment”</li>
 <li>“attachment; filename=&quot;filename.jpg&quot;”</li>
 </ul>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Metadata" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#32">source</a><a href="#impl-Clone-for-Metadata" class="anchor">§</a><h3 class="code [...]
-by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Eq-for-Metadata" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#32">source</a><a href="#impl-Eq-for-Metadata" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Metadata.html" t [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Metadata" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#32">source</a><a href="#impl-Clone-for-Metadata" class="anchor">§</a><h3 class="code [...]
+by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.1/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.PartialEq.html#met [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Eq-for-Metadata" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#32">source</a><a href="#impl-Eq-for-Metadata" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Metadata.html" t [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Metadata" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Metadata" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Metadata" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Metadata" class="anchor">§</a><h3 class="c [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Metadata" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Metadata" class="anchor">§</a><h3 class="c [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Metadata" class="impl has-srclink"><a href="#impl-Pointable-for-Metadata" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Metadata" class="impl has-srclink"><a href="#impl-Pointable-for-Metadata" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.Operator.html b/docs/rust/opendal/struct.Operator.html
index be0d8f33..b53e1371 100644
--- a/docs/rust/opendal/struct.Operator.html
+++ b/docs/rust/opendal/struct.Operator.html
@@ -19,8 +19,8 @@
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Operator" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#70-123">source</a><a href="#impl-Operator" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Operator [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_limit" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#92-96">source</a><h4 class="code-header">pub fn <a href="#method.with_limit" class="fn">with_limit</a>(&amp;self, limit: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Speci [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Operator" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#70-123">source</a><a href="#impl-Operator" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Operator [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_limit" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#92-96">source</a><h4 class="code-header">pub fn <a href="#method.with_limit" class="fn">with_limit</a>(&amp;self, limit: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Speci [...]
 <p>Default: 1000</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.info" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#113-115">source</a><h4 class="code-header">pub fn <a href="#method.info" class="fn">info</a>(&amp;self) -&gt; <a class="struct" href="struct.OperatorInfo.html" title="struct opendal::OperatorInfo">OperatorInfo</a></h4></section></summary><div class="docblock"><p>Get information of underly [...]
 <h5 id="examples-1"><a href="#examples-1">Examples</a></h5>
@@ -30,13 +30,13 @@
 </div></details><details class="toggle method-toggle" open><summary><section id="method.blocking" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#120-122">source</a><h4 class="code-header">pub fn <a href="#method.blocking" class="fn">blocking</a>(&amp;self) -&gt; <a class="struct" href="struct.BlockingOperator.html" title="struct opendal::BlockingOperator">BlockingOperator</a></h4></section></summary><div class="docblock"><p>Cr [...]
 <p>This operation is nearly no cost.</p>
 </div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Operator-1" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#126-884">source</a><a href="#impl-Operator-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Operator.html" title="struct opendal::Operator">Operator</a></h3></section></summary><div class="docblock"><p>Operator async API.</p>
-</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.check" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#142-149">source</a><h4 class="code-header">pub async fn <a href="#method.check" class="fn">check</a>(&amp;self) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive [...]
+</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.check" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#142-149">source</a><h4 class="code-header">pub async fn <a href="#method.check" class="fn">check</a>(&amp;self) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive [...]
 <p>We will send a <code>list</code> request to path and return any errors we met.</p>
 
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>opendal::Operator;
 
 op.check().<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.stat" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#182-189">source</a><h4 class="code-header">pub async fn <a href="#method.stat" class="fn">stat</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result"> [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.stat" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#182-189">source</a><h4 class="code-header">pub async fn <a href="#method.stat" class="fn">stat</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result"> [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>Use <code>stat</code> if you:</p>
 <ul>
@@ -53,7 +53,7 @@ you want has already been cached.</p>
         <span class="macro">println!</span>(<span class="string">&quot;file not exist&quot;</span>)
     }
 }</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.metadata" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#275-290">source</a><h4 class="code-header">pub async fn <a href="#method.metadata" class="fn">metadata</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;entry: &amp;<a class="struct" href="struct.Entry.html" title="struct opendal::Entry">Entry</a>,<br>&nbsp;&nbsp;& [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.metadata" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#275-290">source</a><h4 class="code-header">pub async fn <a href="#method.metadata" class="fn">metadata</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;entry: &amp;<a class="struct" href="struct.Entry.html" title="struct opendal::Entry">Entry</a>,<br>&nbsp;&nbsp;& [...]
 <p><code>metadata</code> will check the given query with already cached metadata
 first. And query from storage if not found.</p>
 <h5 id="notes-1"><a href="#notes-1">Notes</a></h5>
@@ -100,7 +100,7 @@ cache. In this way, we can make sure that no API call will send.</p>
 </span><span class="kw">let _ </span>= meta.content_length();
 <span class="comment">// etag MUST be correct.
 </span><span class="kw">let _ </span>= meta.etag();</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.is_exist" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#308-317">source</a><h4 class="code-header">pub async fn <a href="#method.is_exist" class="fn">is_exist</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opend [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.is_exist" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#308-317">source</a><h4 class="code-header">pub async fn <a href="#method.is_exist" class="fn">is_exist</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opend [...]
 <h5 id="example"><a href="#example">Example</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>anyhow::Result;
 <span class="kw">use </span>futures::io;
@@ -112,7 +112,7 @@ cache. In this way, we can make sure that no API call will send.</p>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.create_dir" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#344-361">source</a><h4 class="code-header">pub async fn <a href="#method.create_dir" class="fn">create_dir</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.create_dir" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#344-361">source</a><h4 class="code-header">pub async fn <a href="#method.create_dir" class="fn">create_dir</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type [...]
 <h5 id="notes-2"><a href="#notes-2">Notes</a></h5>
 <p>To indicate that a path is a directory, it is compulsory to include
 a trailing / in the path. Failure to do so may result in
@@ -124,12 +124,12 @@ a trailing / in the path. Failure to do so may result in
 </ul>
 <h5 id="examples-4"><a href="#examples-4">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code>op.create_dir(<span class="string">&quot;path/to/dir/&quot;</span>).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#380-382">source</a><h4 class="code-header">pub async fn <a href="#method.read" class="fn">read</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result"> [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#380-382">source</a><h4 class="code-header">pub async fn <a href="#method.read" class="fn">read</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result"> [...]
 <p>This function will allocate a new bytes internally. For more precise memory control or
 reading data lazily, please use <a href="struct.Operator.html#method.reader" title="Operator::reader"><code>Operator::reader</code></a></p>
 <h5 id="examples-5"><a href="#examples-5">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>bs = op.read(<span class="string">&quot;path/to/file&quot;</span>).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.range_read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#405-446">source</a><h4 class="code-header">pub async fn <a href="#method.range_read" class="fn">range_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.range_read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#405-446">source</a><h4 class="code-header">pub async fn <a href="#method.range_read" class="fn">range_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br [...]
 <p>This function will allocate a new bytes internally. For more precise memory control or
 reading data lazily, please use <a href="struct.Operator.html#method.range_reader" title="Operator::range_reader"><code>Operator::range_reader</code></a></p>
 <h5 id="notes-3"><a href="#notes-3">Notes</a></h5>
@@ -138,17 +138,17 @@ reading data lazily, please use <a href="struct.Operator.html#method.range_reade
 </ul>
 <h5 id="examples-6"><a href="#examples-6">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>bs = op.range_read(<span class="string">&quot;path/to/file&quot;</span>, <span class="number">1024</span>..<span class="number">2048</span>).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.reader" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#463-465">source</a><h4 class="code-header">pub async fn <a href="#method.reader" class="fn">reader</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Re [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.reader" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#463-465">source</a><h4 class="code-header">pub async fn <a href="#method.reader" class="fn">reader</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Re [...]
 <h5 id="examples-7"><a href="#examples-7">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>r = op.reader(<span class="string">&quot;path/to/file&quot;</span>).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.range_reader" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#485-500">source</a><h4 class="code-header">pub async fn <a href="#method.range_reader" class="fn">range_reader</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.range_reader" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#485-500">source</a><h4 class="code-header">pub async fn <a href="#method.range_reader" class="fn">range_reader</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</ [...]
 <h5 id="notes-4"><a href="#notes-4">Notes</a></h5>
 <ul>
 <li>The returning content’s length may be smaller than the range specified.</li>
 </ul>
 <h5 id="examples-8"><a href="#examples-8">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>r = op.range_reader(<span class="string">&quot;path/to/file&quot;</span>, <span class="number">1024</span>..<span class="number">2048</span>).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.write" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#523-525">source</a><h4 class="code-header">pub async fn <a href="#method.write" class="fn">write</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, bs: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/co [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.write" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#523-525">source</a><h4 class="code-header">pub async fn <a href="#method.write" class="fn">write</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>, bs: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/co [...]
 <h5 id="notes-5"><a href="#notes-5">Notes</a></h5>
 <ul>
 <li>Write will make sure all bytes has been written, or an error will be returned.</li>
@@ -157,7 +157,7 @@ reading data lazily, please use <a href="struct.Operator.html#method.range_reade
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bytes::Bytes;
 
 op.write(<span class="string">&quot;path/to/file&quot;</span>, <span class="macro">vec!</span>[<span class="number">0</span>; <span class="number">4096</span>]).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.writer" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#551-565">source</a><h4 class="code-header">pub async fn <a href="#method.writer" class="fn">writer</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Re [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.writer" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#551-565">source</a><h4 class="code-header">pub async fn <a href="#method.writer" class="fn">writer</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Re [...]
 <h5 id="notes-6"><a href="#notes-6">Notes</a></h5>
 <ul>
 <li>Write will make sure all bytes has been written, or an error will be returned.</li>
@@ -169,7 +169,7 @@ op.write(<span class="string">&quot;path/to/file&quot;</span>, <span class="macr
 w.append(<span class="macro">vec!</span>[<span class="number">0</span>; <span class="number">4096</span>]).<span class="kw">await</span><span class="question-mark">?</span>;
 w.append(<span class="macro">vec!</span>[<span class="number">1</span>; <span class="number">4096</span>]).<span class="kw">await</span><span class="question-mark">?</span>;
 w.close().<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.write_with" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#589-606">source</a><h4 class="code-header">pub async fn <a href="#method.write_with" class="fn">write_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.write_with" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#589-606">source</a><h4 class="code-header">pub async fn <a href="#method.write_with" class="fn">write_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br [...]
 <h5 id="notes-7"><a href="#notes-7">Notes</a></h5>
 <ul>
 <li>Write will make sure all bytes has been written, or an error will be returned.</li>
@@ -181,20 +181,20 @@ w.close().<span class="kw">await</span><span class="question-mark">?</span>;</co
 <span class="kw">let </span>bs = <span class="string">b&quot;hello, world!&quot;</span>.to_vec();
 <span class="kw">let </span>args = OpWrite::new().with_content_type(<span class="string">&quot;text/plain&quot;</span>);
 <span class="kw">let _ </span>= op.write_with(<span class="string">&quot;path/to/file&quot;</span>, args, bs).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.delete" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#626-632">source</a><h4 class="code-header">pub async fn <a href="#method.delete" class="fn">delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Re [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.delete" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#626-632">source</a><h4 class="code-header">pub async fn <a href="#method.delete" class="fn">delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Re [...]
 <h5 id="notes-8"><a href="#notes-8">Notes</a></h5>
 <ul>
 <li>Delete not existing error won’t return errors.</li>
 </ul>
 <h5 id="examples-12"><a href="#examples-12">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code>op.delete(<span class="string">&quot;test&quot;</span>).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.remove" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#654-656">source</a><h4 class="code-header">pub async fn <a href="#method.remove" class="fn">remove</a>(&amp;self, paths: <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.remove" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#654-656">source</a><h4 class="code-header">pub async fn <a href="#method.remove" class="fn">remove</a>(&amp;self, paths: <a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust [...]
 <p>If underlying services support delete in batch, we will use batch
 delete instead.</p>
 <h5 id="examples-13"><a href="#examples-13">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code>op.remove(<span class="macro">vec!</span>[<span class="string">&quot;abc&quot;</span>.to_string(), <span class="string">&quot;def&quot;</span>.to_string()])
     .<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.remove_via" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#684-712">source</a><h4 class="code-header">pub async fn <a href="#method.remove_via" class="fn">remove_via</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;input: impl Stream&lt;Item = <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.remove_via" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#684-712">source</a><h4 class="code-header">pub async fn <a href="#method.remove_via" class="fn">remove_via</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;input: impl Stream&lt;Item = <a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct. [...]
 remove_via will remove files via given stream.</p>
 <p>We will delete by chunks with given batch limit on the stream.</p>
 <h5 id="notes-10"><a href="#notes-10">Notes</a></h5>
@@ -204,13 +204,13 @@ delete instead.</p>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>futures::stream;
 <span class="kw">let </span>stream = stream::iter(<span class="macro">vec!</span>[<span class="string">&quot;abc&quot;</span>.to_string(), <span class="string">&quot;def&quot;</span>.to_string()]);
 op.remove_via(stream).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.remove_all" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#734-780">source</a><h4 class="code-header">pub async fn <a href="#method.remove_all" class="fn">remove_all</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.remove_all" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#734-780">source</a><h4 class="code-header">pub async fn <a href="#method.remove_all" class="fn">remove_all</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type [...]
 <h5 id="notes-11"><a href="#notes-11">Notes</a></h5>
 <p>If underlying services support delete in batch, we will use batch
 delete instead.</p>
 <h5 id="examples-15"><a href="#examples-15">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code>op.remove_all(<span class="string">&quot;path/to/dir&quot;</span>).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.list" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#815-831">source</a><h4 class="code-header">pub async fn <a href="#method.list" class="fn">list</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result"> [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.list" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#815-831">source</a><h4 class="code-header">pub async fn <a href="#method.list" class="fn">list</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result"> [...]
 <p>This function will create a new handle to list entries.</p>
 <p>An error will be returned if given path doesn’t end with <code>/</code>.</p>
 <h5 id="examples-16"><a href="#examples-16">Examples</a></h5>
@@ -231,7 +231,7 @@ delete instead.</p>
         EntryMode::Unknown =&gt; <span class="kw">continue</span>,
     }
 }</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#867-883">source</a><h4 class="code-header">pub async fn <a href="#method.scan" class="fn">scan</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result"> [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#867-883">source</a><h4 class="code-header">pub async fn <a href="#method.scan" class="fn">scan</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result"> [...]
 <p>This function will create a new handle to list entries.</p>
 <p>An error will be returned if given path doesn’t end with <code>/</code>.</p>
 <h5 id="examples-17"><a href="#examples-17">Examples</a></h5>
@@ -253,7 +253,7 @@ delete instead.</p>
     }
 }</code></pre></div>
 </div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Operator-2" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#887-1021">source</a><a href="#impl-Operator-2" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Operator.html" title="struct opendal::Operator">Operator</a></h3></section></summary><div class="docblock"><p>Operator presign API.</p>
-</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.presign_stat" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#909-916">source</a><h4 class="code-header">pub fn <a href="#method.presign_stat" class="fn">presign_stat</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.htm [...]
+</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.presign_stat" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#909-916">source</a><h4 class="code-header">pub fn <a href="#method.presign_stat" class="fn">presign_stat</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.htm [...]
 <h5 id="example-1"><a href="#example-1">Example</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>anyhow::Result;
 <span class="kw">use </span>futures::io;
@@ -268,7 +268,7 @@ delete instead.</p>
         .uri(signed_req.uri())
         .body(())<span class="question-mark">?</span>;
 </code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.presign_read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#944-951">source</a><h4 class="code-header">pub fn <a href="#method.presign_read" class="fn">presign_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>,<br [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.presign_read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#944-951">source</a><h4 class="code-header">pub fn <a href="#method.presign_read" class="fn">presign_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a>,<br [...]
 <h5 id="example-2"><a href="#example-2">Example</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>anyhow::Result;
 <span class="kw">use </span>futures::io;
@@ -285,7 +285,7 @@ delete instead.</p>
 </ul>
 <p>We can download this file via <code>curl</code> or other tools without credentials:</p>
 <div class="example-wrap"><pre class="language-shell"><code>curl &quot;https://s3.amazonaws.com/examplebucket/test.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&amp;X-Amz-Credential=access_key_id/20130721/us-east-1/s3/aws4_request&amp;X-Amz-Date=20130721T201207Z&amp;X-Amz-Expires=86400&amp;X-Amz-SignedHeaders=host&amp;X-Amz-Signature=&lt;signature-value&gt;&quot; -O /tmp/test.txt
-</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.presign_write" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#979-981">source</a><h4 class="code-header">pub fn <a href="#method.presign_write" class="fn">presign_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive [...]
+</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.presign_write" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#979-981">source</a><h4 class="code-header">pub fn <a href="#method.presign_write" class="fn">presign_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive [...]
 <h5 id="example-3"><a href="#example-3">Example</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>anyhow::Result;
 <span class="kw">use </span>futures::io;
@@ -302,7 +302,7 @@ delete instead.</p>
 </ul>
 <p>We can upload file as this file via <code>curl</code> or other tools without credential:</p>
 <div class="example-wrap"><pre class="language-shell"><code>curl -X PUT &quot;https://s3.amazonaws.com/examplebucket/test.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&amp;X-Amz-Credential=access_key_id/20130721/us-east-1/s3/aws4_request&amp;X-Amz-Date=20130721T201207Z&amp;X-Amz-Expires=86400&amp;X-Amz-SignedHeaders=host&amp;X-Amz-Signature=&lt;signature-value&gt;&quot; -d &quot;Hello, World!&quot;
-</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.presign_write_with" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#1008-1020">source</a><h4 class="code-header">pub fn <a href="#method.presign_write_with" class="fn">presign_write_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.6 [...]
+</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.presign_write_with" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#1008-1020">source</a><h4 class="code-header">pub fn <a href="#method.presign_write_with" class="fn">presign_write_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.6 [...]
 <p>You can pass <code>OpWrite</code> to this method to specify the content length and content type.</p>
 <h5 id="example-4"><a href="#example-4">Example</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>anyhow::Result;
@@ -361,7 +361,7 @@ to import <code>opendal::Builder</code> trait.</p>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.from_map" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#106-111">source</a><h4 class="code-header">pub fn <a href="#method.from_map" class="fn">from_map</a>&lt;B:&nbsp;<a class="trait" href="trait.Builder.html" title="trait opendal::Builder">Builder</a>&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;map: <a class="struct" href="https://doc.rust-lang.org/1 [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.from_map" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#106-111">source</a><h4 class="code-header">pub fn <a href="#method.from_map" class="fn">from_map</a>&lt;B:&nbsp;<a class="trait" href="trait.Builder.html" title="trait opendal::Builder">Builder</a>&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;map: <a class="struct" href="https://doc.rust-lang.org/1 [...]
 
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::collections::HashMap;
 
@@ -381,7 +381,7 @@ to import <code>opendal::Builder</code> trait.</p>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.from_iter" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#120-125">source</a><h4 class="code-header">pub fn <a href="#method.from_iter" class="fn">from_iter</a>&lt;B:&nbsp;<a class="trait" href="trait.Builder.html" title="trait opendal::Builder">Builder</a>&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;iter: impl <a class="trait" href="https://doc.rust-la [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.from_iter" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#120-125">source</a><h4 class="code-header">pub fn <a href="#method.from_iter" class="fn">from_iter</a>&lt;B:&nbsp;<a class="trait" href="trait.Builder.html" title="trait opendal::Builder">Builder</a>&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;iter: impl <a class="trait" href="https://doc.rust-la [...]
 <h5 id="warning"><a href="#warning">WARNING</a></h5>
 <p>It’s better to use <code>from_map</code>. We may remove this API in the
 future.</p>
@@ -405,12 +405,12 @@ inline.</p>
 <span class="kw">let </span>op = op.layer(LoggingLayer::default());
 <span class="comment">// All operations will go through the new_layer
 </span><span class="kw">let _ </span>= op.read(<span class="string">&quot;test_file&quot;</span>).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Operator" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#62">source</a><a href="#impl-Clone-for-Operator" class="anchor">§</a><h3 cl [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Operator" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#62">source</a><a href="#impl-Clone-for-Operator" class="anchor">§</a><h3 cl [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Operator" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Operator" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument: [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Operator" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Operator" class="anchor">§</a><h3 class="c [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Operator" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Operator" class="anchor">§</a><h3 class="c [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Operator" class="impl has-srclink"><a href="#impl-Pointable-for-Operator" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Operator" class="impl has-srclink"><a href="#impl-Pointable-for-Operator" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§ [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.OperatorBuilder.html b/docs/rust/opendal/struct.OperatorBuilder.html
index c5ed6c26..7681c957 100644
--- a/docs/rust/opendal/struct.OperatorBuilder.html
+++ b/docs/rust/opendal/struct.OperatorBuilder.html
@@ -54,12 +54,12 @@ inline.</p>
 <span class="comment">// All operations will go through the new_layer
 </span><span class="kw">let _ </span>= op.read(<span class="string">&quot;test_file&quot;</span>).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.finish" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#271-275">source</a><h4 class="code-header">pub fn <a href="#method.finish" class="fn">finish</a>(self) -&gt; <a class="struct" href="struct.Operator.html" title="struct opendal::Operator">Operator</a></h4></section></summary><div class="docblock"><p>Finish the building to construct an Op [...]
-</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-OperatorBuilder%3CA%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-OperatorBuilder%3CA%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A&gt; <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ [...]
+</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-OperatorBuilder%3CA%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-OperatorBuilder%3CA%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A&gt; <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-OperatorBuilder%3CA%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-OperatorBuilder%3CA%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OperatorBuilder%3CA%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OperatorBuilder%3CA%3E" clas [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OperatorBuilder%3CA%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OperatorBuilder%3CA%3E" clas [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OperatorBuilder%3CA%3E" class="impl has-srclink"><a href="#impl-Pointable-for-OperatorBuilder%3CA%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedcons [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OperatorBuilder%3CA%3E" class="impl has-srclink"><a href="#impl-Pointable-for-OperatorBuilder%3CA%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedcons [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.OperatorInfo.html b/docs/rust/opendal/struct.OperatorInfo.html
index a4c02dc9..ec171a28 100644
--- a/docs/rust/opendal/struct.OperatorInfo.html
+++ b/docs/rust/opendal/struct.OperatorInfo.html
@@ -1,25 +1,25 @@
 <!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="Metadata for operator, users can use this metadata to get information of operator."><meta name="keywords" content="rust, rustlang, rust-lang, OperatorInfo"><title>OperatorInfo in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/Sourc [...]
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OperatorInfo" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#25-84">source</a><a href="#impl-OperatorInfo" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.O [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#36-38">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Root of operator, will be in format [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#46-48">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Name of backend, could be empty if  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#36-38">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Root of operator, will be in format [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#46-48">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Name of backend, could be empty if  [...]
 <p>For example:</p>
 <ul>
 <li>name for <code>s3</code> =&gt; bucket name</li>
 <li>name for <code>azblob</code> =&gt; container name</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.can_read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#51-53">source</a><h4 class="code-header">pub fn <a href="#method.can_read" class="fn">can_read</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current backend s [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.can_write" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#56-58">source</a><h4 class="code-header">pub fn <a href="#method.can_write" class="fn">can_write</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current backen [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.can_list" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#61-63">source</a><h4 class="code-header">pub fn <a href="#method.can_list" class="fn">can_list</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current backend s [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.can_scan" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#66-68">source</a><h4 class="code-header">pub fn <a href="#method.can_scan" class="fn">can_scan</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current backend s [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.can_presign" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#71-73">source</a><h4 class="code-header">pub fn <a href="#method.can_presign" class="fn">can_presign</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.can_batch" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#76-78">source</a><h4 class="code-header">pub fn <a href="#method.can_batch" class="fn">can_batch</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current backen [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.can_blocking" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#81-83">source</a><h4 class="code-header">pub fn <a href="#method.can_blocking" class="fn">can_blocking</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if curre [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OperatorInfo" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#22">source</a><a href="#impl-Clone-for-OperatorInfo" class="anchor">§</ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.can_read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#51-53">source</a><h4 class="code-header">pub fn <a href="#method.can_read" class="fn">can_read</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current backend s [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.can_write" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#56-58">source</a><h4 class="code-header">pub fn <a href="#method.can_write" class="fn">can_write</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current backen [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.can_list" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#61-63">source</a><h4 class="code-header">pub fn <a href="#method.can_list" class="fn">can_list</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current backend s [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.can_scan" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#66-68">source</a><h4 class="code-header">pub fn <a href="#method.can_scan" class="fn">can_scan</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current backend s [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.can_presign" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#71-73">source</a><h4 class="code-header">pub fn <a href="#method.can_presign" class="fn">can_presign</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.can_batch" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#76-78">source</a><h4 class="code-header">pub fn <a href="#method.can_batch" class="fn">can_batch</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current backen [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.can_blocking" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#81-83">source</a><h4 class="code-header">pub fn <a href="#method.can_blocking" class="fn">can_blocking</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if curre [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-OperatorInfo" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/metadata.rs.html#22">source</a><a href="#impl-Clone-for-OperatorInfo" class="anchor">§</ [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-OperatorInfo" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-OperatorInfo" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OperatorInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OperatorInfo" class="anchor">§</a><h3  [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OperatorInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OperatorInfo" class="anchor">§</a><h3  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OperatorInfo" class="impl has-srclink"><a href="#impl-Pointable-for-OperatorInfo" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-OperatorInfo" class="impl has-srclink"><a href="#impl-Pointable-for-OperatorInfo" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.Reader.html b/docs/rust/opendal/struct.Reader.html
index 4aad0b03..0c2016b7 100644
--- a/docs/rust/opendal/struct.Reader.html
+++ b/docs/rust/opendal/struct.Reader.html
@@ -17,121 +17,121 @@ want to do copy inside IO workers. They can use <code>Stream</code> to get a <co
 and consume it in side CPU workers inside.</p>
 <p>Besides, <code>Stream</code> <strong>COULD</strong> reduce an extra copy if underlying reader is
 stream based (like services s3, azure which based on HTTP).</p>
-</div></details><h2 id="trait-implementations" class="small-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-AsyncRead-for-Reader" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/reader.rs.html#94-102">source</a><a href="#impl-AsyncRead-for-Reader" class="anchor">§</a><h3 class="code-header">impl As [...]
-IO operations. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-AsyncRead-for-Reader-1" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/reader.rs.html#114-128">source</a><a href="#impl-AsyncRead-for-Reader-1" class="anchor">§</a><h3 class="code-header">impl AsyncRead for <a class="struct" href="struct.Reader.html" title="struct opendal::Reader">Reader</a></h3></section></summary><d [...]
+</div></details><h2 id="trait-implementations" class="small-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-AsyncRead-for-Reader" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/reader.rs.html#94-102">source</a><a href="#impl-AsyncRead-for-Reader" class="anchor">§</a><h3 class="code-header">impl As [...]
+IO operations. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-AsyncRead-for-Reader-1" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/reader.rs.html#114-128">source</a><a href="#impl-AsyncRead-for-Reader-1" class="anchor">§</a><h3 class="code-header">impl AsyncRead for <a class="struct" href="struct.Reader.html" title="struct opendal::Reader">Reader</a></h3></section></summary><d [...]
 current task for wakeup if the value is not yet available, and returning
-<code>None</code> if the stream is exhausted. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.size_hint" class="method trait-impl has-srclink"><a href="#method.size_hint" class="anchor">§</a><h4 class="code-header">fn <a class="fn">size_hint</a>(&amp;self) -&gt; (<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Opt [...]
-manner, returning a future type. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_vectored" class="method trait-impl has-srclink"><a href="#method.read_vectored" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_vectored</a>&lt;'a&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;bufs: &amp;'a mut [<a class="struct" href="https://doc.rust-lang.org/1.68.0/std/io/struct.IoSliceMut.html" t [...]
-IO operations. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_exact" class="method trait-impl has-srclink"><a href="#method.read_exact" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_exact</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8.html">u8</a>]) -&gt; ReadExact&lt;'a, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&n [...]
-returning an error if end of file (EOF) is hit sooner. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl has-srclink"><a href="#method.read_to_end" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_to_end</a>&lt;'a&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;'a mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/vec/struct.V [...]
-from the underlying reader. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-AsyncReadExt-for-Reader-1" class="impl has-srclink"><a href="#impl-AsyncReadExt-for-Reader-1" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; AsyncReadExt for R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsyncRead + ?<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="t [...]
-<code>next</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read-1" class="method trait-impl has-srclink"><a href="#method.read-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8.html">u8</a>]) -&gt; Read&lt;'a, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp [...]
-returning how many bytes were read. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_buf" class="method trait-impl has-srclink"><a href="#method.read_buf" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_buf</a>&lt;B, 'a&gt;(&amp;'a mut self, buf: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>B) -&gt; ReadBuf&lt;'a, Self, B&gt;<span class="where fmt-new [...]
-advancing the buffer’s internal cursor. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_exact-1" class="method trait-impl has-srclink"><a href="#method.read_exact-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_exact</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8.html">u8</a>]) -&gt; ReadExact&lt;'a, Self&gt;<span class="where f [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i16" class="method trait-impl has-srclink"><a href="#method.read_i16" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i16</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI16&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u32" class="method trait-impl has-srclink"><a href="#method.read_u32" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u32</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU32&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i32" class="method trait-impl has-srclink"><a href="#method.read_i32" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i32</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI32&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u64" class="method trait-impl has-srclink"><a href="#method.read_u64" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u64</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU64&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i64" class="method trait-impl has-srclink"><a href="#method.read_i64" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i64</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI64&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u128" class="method trait-impl has-srclink"><a href="#method.read_u128" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u128</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU128&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbs [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i128" class="method trait-impl has-srclink"><a href="#method.read_i128" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i128</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI128&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbs [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32" class="method trait-impl has-srclink"><a href="#method.read_f32" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f32</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadF32&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64" class="method trait-impl has-srclink"><a href="#method.read_f64" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f64</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadF64&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u16_le" class="method trait-impl has-srclink"><a href="#method.read_u16_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u16_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU16Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i16_le" class="method trait-impl has-srclink"><a href="#method.read_i16_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i16_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI16Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u32_le" class="method trait-impl has-srclink"><a href="#method.read_u32_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u32_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU32Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i32_le" class="method trait-impl has-srclink"><a href="#method.read_i32_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i32_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI32Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u64_le" class="method trait-impl has-srclink"><a href="#method.read_u64_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u64_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU64Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i64_le" class="method trait-impl has-srclink"><a href="#method.read_i64_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i64_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI64Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u128_le" class="method trait-impl has-srclink"><a href="#method.read_u128_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u128_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU128Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i128_le" class="method trait-impl has-srclink"><a href="#method.read_i128_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i128_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI128Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32_le" class="method trait-impl has-srclink"><a href="#method.read_f32_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f32_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadF32Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64_le" class="method trait-impl has-srclink"><a href="#method.read_f64_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f64_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadF64Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end-1" class="method trait-impl has-srclink"><a href="#method.read_to_end-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_to_end</a>&lt;'a&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;'a mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/vec/struct.Vec.html" title="struct alloc::ve [...]
-new position in the object and the object itself. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.stream_position" class="method trait-impl has-srclink"><a href="#method.stream_position" class="anchor">§</a><h4 class="code-header">fn <a class="fn">stream_position</a>(&amp;mut self) -&gt; Seek&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/ [...]
-start of the stream. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-AsyncSeekExt-for-Reader-1" class="impl has-srclink"><a href="#impl-AsyncSeekExt-for-Reader-1" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; AsyncSeekExt for S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: AsyncSeek + ?<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait co [...]
-new position in the object and the object itself. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.rewind" class="method trait-impl has-srclink"><a href="#method.rewind" class="anchor">§</a><h4 class="code-header">fn <a class="fn">rewind</a>(&amp;mut self) -&gt; Seek&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Unpin.htm [...]
-start of the stream. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-AsyncSeekExt-for-Reader-2" class="impl has-srclink"><a href="#impl-AsyncSeekExt-for-Reader-2" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; AsyncSeekExt for S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: AsyncSeek + ?<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait co [...]
-discarding others if any.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Reader" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Reader" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="trait core::c [...]
+<code>None</code> if the stream is exhausted. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.size_hint" class="method trait-impl has-srclink"><a href="#method.size_hint" class="anchor">§</a><h4 class="code-header">fn <a class="fn">size_hint</a>(&amp;self) -&gt; (<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.68.1/core/option/enum.Opt [...]
+manner, returning a future type. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_vectored" class="method trait-impl has-srclink"><a href="#method.read_vectored" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_vectored</a>&lt;'a&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;bufs: &amp;'a mut [<a class="struct" href="https://doc.rust-lang.org/1.68.1/std/io/struct.IoSliceMut.html" t [...]
+IO operations. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_exact" class="method trait-impl has-srclink"><a href="#method.read_exact" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_exact</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u8.html">u8</a>]) -&gt; ReadExact&lt;'a, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&n [...]
+returning an error if end of file (EOF) is hit sooner. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl has-srclink"><a href="#method.read_to_end" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_to_end</a>&lt;'a&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;'a mut <a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/vec/struct.V [...]
+from the underlying reader. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-AsyncReadExt-for-Reader-1" class="impl has-srclink"><a href="#impl-AsyncReadExt-for-Reader-1" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; AsyncReadExt for R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsyncRead + ?<a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="t [...]
+<code>next</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read-1" class="method trait-impl has-srclink"><a href="#method.read-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u8.html">u8</a>]) -&gt; Read&lt;'a, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp [...]
+returning how many bytes were read. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_buf" class="method trait-impl has-srclink"><a href="#method.read_buf" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_buf</a>&lt;B, 'a&gt;(&amp;'a mut self, buf: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>B) -&gt; ReadBuf&lt;'a, Self, B&gt;<span class="where fmt-new [...]
+advancing the buffer’s internal cursor. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_exact-1" class="method trait-impl has-srclink"><a href="#method.read_exact-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_exact</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u8.html">u8</a>]) -&gt; ReadExact&lt;'a, Self&gt;<span class="where f [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i16" class="method trait-impl has-srclink"><a href="#method.read_i16" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i16</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI16&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u32" class="method trait-impl has-srclink"><a href="#method.read_u32" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u32</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU32&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i32" class="method trait-impl has-srclink"><a href="#method.read_i32" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i32</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI32&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u64" class="method trait-impl has-srclink"><a href="#method.read_u64" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u64</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU64&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i64" class="method trait-impl has-srclink"><a href="#method.read_i64" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i64</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI64&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u128" class="method trait-impl has-srclink"><a href="#method.read_u128" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u128</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU128&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbs [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i128" class="method trait-impl has-srclink"><a href="#method.read_i128" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i128</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI128&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbs [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32" class="method trait-impl has-srclink"><a href="#method.read_f32" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f32</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadF32&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64" class="method trait-impl has-srclink"><a href="#method.read_f64" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f64</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadF64&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&n [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u16_le" class="method trait-impl has-srclink"><a href="#method.read_u16_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u16_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU16Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i16_le" class="method trait-impl has-srclink"><a href="#method.read_i16_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i16_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI16Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u32_le" class="method trait-impl has-srclink"><a href="#method.read_u32_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u32_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU32Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i32_le" class="method trait-impl has-srclink"><a href="#method.read_i32_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i32_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI32Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u64_le" class="method trait-impl has-srclink"><a href="#method.read_u64_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u64_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU64Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i64_le" class="method trait-impl has-srclink"><a href="#method.read_i64_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i64_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI64Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_u128_le" class="method trait-impl has-srclink"><a href="#method.read_u128_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_u128_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadU128Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i128_le" class="method trait-impl has-srclink"><a href="#method.read_i128_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i128_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI128Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32_le" class="method trait-impl has-srclink"><a href="#method.read_f32_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f32_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadF32Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64_le" class="method trait-impl has-srclink"><a href="#method.read_f64_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f64_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadF64Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end-1" class="method trait-impl has-srclink"><a href="#method.read_to_end-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_to_end</a>&lt;'a&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;'a mut <a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/vec/struct.Vec.html" title="struct alloc::ve [...]
+new position in the object and the object itself. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.stream_position" class="method trait-impl has-srclink"><a href="#method.stream_position" class="anchor">§</a><h4 class="code-header">fn <a class="fn">stream_position</a>(&amp;mut self) -&gt; Seek&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/ [...]
+start of the stream. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-AsyncSeekExt-for-Reader-1" class="impl has-srclink"><a href="#impl-AsyncSeekExt-for-Reader-1" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; AsyncSeekExt for S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: AsyncSeek + ?<a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait co [...]
+new position in the object and the object itself. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.rewind" class="method trait-impl has-srclink"><a href="#method.rewind" class="anchor">§</a><h4 class="code-header">fn <a class="fn">rewind</a>(&amp;mut self) -&gt; Seek&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Unpin.htm [...]
+start of the stream. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-AsyncSeekExt-for-Reader-2" class="impl has-srclink"><a href="#impl-AsyncSeekExt-for-Reader-2" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; AsyncSeekExt for S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: AsyncSeek + ?<a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait co [...]
+discarding others if any.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Reader" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Reader" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="trait core::c [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Reader" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Reader" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Reader" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Reader" class="anchor">§</a><h3 class="code- [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Reader" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Reader" class="anchor">§</a><h3 class="code- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Reader" class="impl has-srclink"><a href="#impl-Pointable-for-Reader" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
-If the stream terminates, then the next item is <a href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html#variant.None" title="None"><code>None</code></a>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map" class="method trait-impl has-srclink"><a href="#method.map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map</a>&lt;T, F&gt;(self, f: F) -&gt; Map&lt;Self, F&gt;<span class="where fmt-newline">where [...]
-the resulting type. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.enumerate" class="method trait-impl has-srclink"><a href="#method.enumerate" class="anchor">§</a><h4 class="code-header">fn <a class="fn">enumerate</a>(self) -&gt; Enumerate&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker: [...]
-the next value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.filter" class="method trait-impl has-srclink"><a href="#method.filter" class="anchor">§</a><h4 class="code-header">fn <a class="fn">filter</a>&lt;Fut, F&gt;(self, f: F) -&gt; Filter&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnMut.html" title="trai [...]
-asynchronous predicate. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.filter_map" class="method trait-impl has-srclink"><a href="#method.filter_map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">filter_map</a>&lt;Fut, T, F&gt;(self, f: F) -&gt; FilterMap&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/tra [...]
-them to a different type according to the provided asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.then" class="method trait-impl has-srclink"><a href="#method.then" class="anchor">§</a><h4 class="code-header">fn <a class="fn">then</a>&lt;Fut, F&gt;(self, f: F) -&gt; Then&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68. [...]
-an asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.collect" class="method trait-impl has-srclink"><a href="#method.collect" class="anchor">§</a><h4 class="code-header">fn <a class="fn">collect</a>&lt;C&gt;(self) -&gt; Collect&lt;Self, C&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;C: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/default/trait.Default.html" title="trait core [...]
-future representing the result of that computation. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.unzip" class="method trait-impl has-srclink"><a href="#method.unzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">unzip</a>&lt;A, B, FromA, FromB&gt;(self) -&gt; Unzip&lt;Self, FromA, FromB&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;FromA: <a class="trait" href="https://doc.rust-lang.org/1.68.0 [...]
-resolves to pair of containers. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.concat" class="method trait-impl has-srclink"><a href="#method.concat" class="anchor">§</a><h4 class="code-header">fn <a class="fn">concat</a>(self) -&gt; Concat&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker: [...]
-destination, returning a future representing the end result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.count" class="method trait-impl has-srclink"><a href="#method.count" class="anchor">§</a><h4 class="code-header">fn <a class="fn">count</a>(self) -&gt; Count&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" t [...]
-collecting all the values into one final result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.any" class="method trait-impl has-srclink"><a href="#method.any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">any</a>&lt;Fut, F&gt;(self, f: F) -&gt; Any&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.Fn [...]
-inner streams produced by the base stream concurrently. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.flat_map" class="method trait-impl has-srclink"><a href="#method.flat_map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">flat_map</a>&lt;U, F&gt;(self, f: F) -&gt; FlatMap&lt;Self, U, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Reader" class="impl has-srclink"><a href="#impl-Pointable-for-Reader" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
+If the stream terminates, then the next item is <a href="https://doc.rust-lang.org/1.68.1/core/option/enum.Option.html#variant.None" title="None"><code>None</code></a>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map" class="method trait-impl has-srclink"><a href="#method.map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map</a>&lt;T, F&gt;(self, f: F) -&gt; Map&lt;Self, F&gt;<span class="where fmt-newline">where [...]
+the resulting type. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.enumerate" class="method trait-impl has-srclink"><a href="#method.enumerate" class="anchor">§</a><h4 class="code-header">fn <a class="fn">enumerate</a>(self) -&gt; Enumerate&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker: [...]
+the next value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.filter" class="method trait-impl has-srclink"><a href="#method.filter" class="anchor">§</a><h4 class="code-header">fn <a class="fn">filter</a>&lt;Fut, F&gt;(self, f: F) -&gt; Filter&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnMut.html" title="trai [...]
+asynchronous predicate. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.filter_map" class="method trait-impl has-srclink"><a href="#method.filter_map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">filter_map</a>&lt;Fut, T, F&gt;(self, f: F) -&gt; FilterMap&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/tra [...]
+them to a different type according to the provided asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.then" class="method trait-impl has-srclink"><a href="#method.then" class="anchor">§</a><h4 class="code-header">fn <a class="fn">then</a>&lt;Fut, F&gt;(self, f: F) -&gt; Then&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68. [...]
+an asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.collect" class="method trait-impl has-srclink"><a href="#method.collect" class="anchor">§</a><h4 class="code-header">fn <a class="fn">collect</a>&lt;C&gt;(self) -&gt; Collect&lt;Self, C&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;C: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/default/trait.Default.html" title="trait core [...]
+future representing the result of that computation. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.unzip" class="method trait-impl has-srclink"><a href="#method.unzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">unzip</a>&lt;A, B, FromA, FromB&gt;(self) -&gt; Unzip&lt;Self, FromA, FromB&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;FromA: <a class="trait" href="https://doc.rust-lang.org/1.68.1 [...]
+resolves to pair of containers. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.concat" class="method trait-impl has-srclink"><a href="#method.concat" class="anchor">§</a><h4 class="code-header">fn <a class="fn">concat</a>(self) -&gt; Concat&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker: [...]
+destination, returning a future representing the end result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.count" class="method trait-impl has-srclink"><a href="#method.count" class="anchor">§</a><h4 class="code-header">fn <a class="fn">count</a>(self) -&gt; Count&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" t [...]
+collecting all the values into one final result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.any" class="method trait-impl has-srclink"><a href="#method.any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">any</a>&lt;Fut, F&gt;(self, f: F) -&gt; Any&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.Fn [...]
+inner streams produced by the base stream concurrently. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.flat_map" class="method trait-impl has-srclink"><a href="#method.flat_map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">flat_map</a>&lt;U, F&gt;(self, f: F) -&gt; FlatMap&lt;Self, U, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core [...]
 and polls them concurrently, yielding items in any order, as they made
-available. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method trait-impl has-srclink"><a href="#method.scan" class="anchor">§</a><h4 class="code-header">fn <a class="fn">scan</a>&lt;S, B, Fut, F&gt;(self, initial_state: S, f: F) -&gt; Scan&lt;Self, S, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnMut.htm [...]
-and produces a new stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_while" class="method trait-impl has-srclink"><a href="#method.skip_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">skip_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; SkipWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/tra [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take_while" class="method trait-impl has-srclink"><a href="#method.take_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; TakeWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take_until" class="method trait-impl has-srclink"><a href="#method.take_until" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take_until</a>&lt;Fut&gt;(self, fut: Fut) -&gt; TakeUntil&lt;Self, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/future/futur [...]
-closure for each element on the stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each_concurrent" class="method trait-impl has-srclink"><a href="#method.for_each_concurrent" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each_concurrent</a>&lt;Fut, F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;limit: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.Into [...]
+available. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method trait-impl has-srclink"><a href="#method.scan" class="anchor">§</a><h4 class="code-header">fn <a class="fn">scan</a>&lt;S, B, Fut, F&gt;(self, initial_state: S, f: F) -&gt; Scan&lt;Self, S, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnMut.htm [...]
+and produces a new stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_while" class="method trait-impl has-srclink"><a href="#method.skip_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">skip_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; SkipWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/tra [...]
+resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take_while" class="method trait-impl has-srclink"><a href="#method.take_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; TakeWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function [...]
+resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take_until" class="method trait-impl has-srclink"><a href="#method.take_until" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take_until</a>&lt;Fut&gt;(self, fut: Fut) -&gt; TakeUntil&lt;Self, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/future/futur [...]
+closure for each element on the stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each_concurrent" class="method trait-impl has-srclink"><a href="#method.for_each_concurrent" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each_concurrent</a>&lt;Fut, F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;limit: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/convert/trait.Into [...]
 closure for each element on the stream concurrently as elements become
-available. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take" class="method trait-impl has-srclink"><a href="#method.take" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; Take&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-l [...]
+available. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take" class="method trait-impl has-srclink"><a href="#method.take" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>) -&gt; Take&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-l [...]
 again be called once it has finished. This method can be used to turn
-any <code>Stream</code> into a <code>FusedStream</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.by_ref" class="method trait-impl has-srclink"><a href="#method.by_ref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">by_ref</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div class='docblock'>Borrows a str [...]
-into the sink and the sink has been flushed and closed. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.split" class="method trait-impl has-srclink"><a href="#method.split" class="anchor">§</a><h4 class="code-header">fn <a class="fn">split</a>&lt;Item&gt;(self) -&gt; (SplitSink&lt;Self, Item&gt;, SplitStream&lt;Self&gt;)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sink&lt;Item&gt; + <a class="trait" href="h [...]
-objects. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect" class="method trait-impl has-srclink"><a href="#method.inspect" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inspect</a>&lt;F&gt;(self, f: F) -&gt; Inspect&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnMut.html" title="trait core::ops:: [...]
-of that <code>Either</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.right_stream" class="method trait-impl has-srclink"><a href="#method.right_stream" class="anchor">§</a><h4 class="code-header">fn <a class="fn">right_stream</a>&lt;B&gt;(self) -&gt; Either&lt;B, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;B: Stream&lt;Item = Self::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href= [...]
-of that <code>Either</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.poll_next_unpin" class="method trait-impl has-srclink"><a href="#method.poll_next_unpin" class="anchor">§</a><h4 class="code-header">fn <a class="fn">poll_next_unpin</a>(&amp;mut self, cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;) -&gt [...]
-stream types.</div></details><details class="toggle method-toggle" open><summary><section id="method.select_next_some" class="method trait-impl has-srclink"><a href="#method.select_next_some" class="anchor">§</a><h4 class="code-header">fn <a class="fn">select_next_some</a>(&amp;mut self) -&gt; SelectNextSome&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Unpin.html" title="tra [...]
-ready. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-StreamExt-for-Reader-1" class="impl has-srclink"><a href="#impl-StreamExt-for-Reader-1" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; StreamExt for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Stream + ?<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</ [...]
-on. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.last" class="method trait-impl has-srclink"><a href="#method.last" class="anchor">§</a><h4 class="code-header">fn <a class="fn">last</a>(self) -&gt; LastFuture&lt;Self, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, [...]
+any <code>Stream</code> into a <code>FusedStream</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.by_ref" class="method trait-impl has-srclink"><a href="#method.by_ref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">by_ref</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div class='docblock'>Borrows a str [...]
+into the sink and the sink has been flushed and closed. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.split" class="method trait-impl has-srclink"><a href="#method.split" class="anchor">§</a><h4 class="code-header">fn <a class="fn">split</a>&lt;Item&gt;(self) -&gt; (SplitSink&lt;Self, Item&gt;, SplitStream&lt;Self&gt;)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sink&lt;Item&gt; + <a class="trait" href="h [...]
+objects. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect" class="method trait-impl has-srclink"><a href="#method.inspect" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inspect</a>&lt;F&gt;(self, f: F) -&gt; Inspect&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnMut.html" title="trait core::ops:: [...]
+of that <code>Either</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.right_stream" class="method trait-impl has-srclink"><a href="#method.right_stream" class="anchor">§</a><h4 class="code-header">fn <a class="fn">right_stream</a>&lt;B&gt;(self) -&gt; Either&lt;B, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;B: Stream&lt;Item = Self::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href= [...]
+of that <code>Either</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.poll_next_unpin" class="method trait-impl has-srclink"><a href="#method.poll_next_unpin" class="anchor">§</a><h4 class="code-header">fn <a class="fn">poll_next_unpin</a>(&amp;mut self, cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;) -&gt [...]
+stream types.</div></details><details class="toggle method-toggle" open><summary><section id="method.select_next_some" class="method trait-impl has-srclink"><a href="#method.select_next_some" class="anchor">§</a><h4 class="code-header">fn <a class="fn">select_next_some</a>(&amp;mut self) -&gt; SelectNextSome&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Unpin.html" title="tra [...]
+ready. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-StreamExt-for-Reader-1" class="impl has-srclink"><a href="#impl-StreamExt-for-Reader-1" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; StreamExt for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Stream + ?<a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</ [...]
+on. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.last" class="method trait-impl has-srclink"><a href="#method.last" class="anchor">§</a><h4 class="code-header">fn <a class="fn">last</a>(self) -&gt; LastFuture&lt;Self, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, [...]
 specified key function. If several elements are equally minimum,
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by_key" class="method trait-impl has-srclink"><a href="#method.max_by_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">max_by_key</a>&lt;B, F&gt;(self, key_by: F) -&gt; MaxByKeyFuture&lt;Self, Self::Item, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self:  [...]
+the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by_key" class="method trait-impl has-srclink"><a href="#method.max_by_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">max_by_key</a>&lt;B, F&gt;(self, key_by: F) -&gt; MaxByKeyFuture&lt;Self, Self::Item, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self:  [...]
 specified key function. If several elements are equally maximum,
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by" class="method trait-impl has-srclink"><a href="#method.min_by" class="anchor">§</a><h4 class="code-header">fn <a class="fn">min_by</a>&lt;F&gt;(self, compare: F) -&gt; MinByFuture&lt;Self, F, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait"  [...]
+the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by" class="method trait-impl has-srclink"><a href="#method.min_by" class="anchor">§</a><h4 class="code-header">fn <a class="fn">min_by</a>&lt;F&gt;(self, compare: F) -&gt; MinByFuture&lt;Self, F, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait"  [...]
 specified comparison function. If several elements are equally minimum,
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a class="fn">max</a>(self) -&gt; MaxFuture&lt;Self, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.6 [...]
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a class="fn">min</a>(self) -&gt; MinFuture&lt;Self, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.6 [...]
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by" class="method trait-impl has-srclink"><a href="#method.max_by" class="anchor">§</a><h4 class="code-header">fn <a class="fn">max_by</a>&lt;F&gt;(self, compare: F) -&gt; MaxByFuture&lt;Self, F, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait"  [...]
+the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a class="fn">max</a>(self) -&gt; MaxFuture&lt;Self, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.6 [...]
+the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a class="fn">min</a>(self) -&gt; MinFuture&lt;Self, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.6 [...]
+the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by" class="method trait-impl has-srclink"><a href="#method.max_by" class="anchor">§</a><h4 class="code-header">fn <a class="fn">max_by</a>&lt;F&gt;(self, compare: F) -&gt; MaxByFuture&lt;Self, F, Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait"  [...]
 specified comparison function. If several elements are equally maximum,
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nth" class="method trait-impl has-srclink"><a href="#method.nth" class="anchor">§</a><h4 class="code-header">fn <a class="fn">nth</a>(&amp;mut self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; NthFuture&lt;'_, Self&gt;<span class="where fmt [...]
-producing a single, final value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each-1" class="method trait-impl has-srclink"><a href="#method.for_each-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each</a>&lt;F&gt;(self, f: F) -&gt; ForEachFuture&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Si [...]
-stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_while-1" class="method trait-impl has-srclink"><a href="#method.skip_while-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">skip_while</a>&lt;P&gt;(self, predicate: P) -&gt; SkipWhile&lt;Self, P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title [...]
-Immediately returns the error when the function returns unsuccessfully. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each-1" class="method trait-impl has-srclink"><a href="#method.try_for_each-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_for_each</a>&lt;F, E&gt;(&amp;mut self, f: F) -&gt; TryForEachFuture&lt;'_, Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a cla [...]
-of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.position" class="method trait-impl has-srclink"><a href="#method.position" class="anchor">§</a><h4 class="code-header">fn <a class="fn">position</a>&lt;P&gt;(&amp;mut self, predicate: P) -&gt; PositionFuture&lt;'_, Self, P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Unpin [...]
-its index. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a class="fn">cmp</a>&lt;S&gt;(self, other: S) -&gt; CmpFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker::Size [...]
-of another using ‘Ord’. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a class="fn">ne</a>&lt;S&gt;(self, other: S) -&gt; NeFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::mar [...]
-not equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a class="fn">ge</a>&lt;S&gt;(self, other: S) -&gt; GeFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait co [...]
-greater than or equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a class="fn">eq</a>&lt;S&gt;(self, other: S) -&gt; EqFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" tit [...]
-equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a class="fn">gt</a>&lt;S&gt;(self, other: S) -&gt; GtFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core:: [...]
-greater than those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">le</a>&lt;S&gt;(self, other: S) -&gt; LeFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait co [...]
-less or equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a class="fn">lt</a>&lt;S&gt;(self, other: S) -&gt; LtFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trai [...]
-less than those of another. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-StreamExt-for-Reader-2" class="impl has-srclink"><a href="#impl-StreamExt-for-Reader-2" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; StreamExt for S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: Stream + ?<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::m [...]
-<code>false</code>, and then collects them into two collections. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.fold-2" class="method trait-impl has-srclink"><a href="#method.fold-2" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fold</a>&lt;T, F&gt;(self, init: T, f: F) -&gt; FoldFuture&lt;Self, F, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang [...]
-into the one provided. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_ok" class="method trait-impl has-srclink"><a href="#method.map_ok" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_ok</a>&lt;T, F&gt;(self, f: F) -&gt; MapOk&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait co [...]
-using the provided closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_err" class="method trait-impl has-srclink"><a href="#method.map_err" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_err</a>&lt;E, F&gt;(self, f: F) -&gt; MapErr&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title= [...]
-using the provided closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.and_then" class="method trait-impl has-srclink"><a href="#method.and_then" class="anchor">§</a><h4 class="code-header">fn <a class="fn">and_then</a>&lt;Fut, F&gt;(self, f: F) -&gt; AndThen&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnMu [...]
-results to the provided closure <code>f</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.or_else" class="method trait-impl has-srclink"><a href="#method.or_else" class="anchor">§</a><h4 class="code-header">fn <a class="fn">or_else</a>&lt;Fut, F&gt;(self, f: F) -&gt; OrElse&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/fun [...]
-erroneous result to the provided closure <code>f</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_ok" class="method trait-impl has-srclink"><a href="#method.inspect_ok" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inspect_ok</a>&lt;F&gt;(self, f: F) -&gt; InspectOk&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/c [...]
-it on. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_err" class="method trait-impl has-srclink"><a href="#method.inspect_err" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inspect_err</a>&lt;F&gt;(self, f: F) -&gt; InspectErr&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnMut.html" title="trai [...]
-<a href="futures_core::stream::Stream"><code>Stream</code></a> <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_next" class="method trait-impl has-srclink"><a href="#method.try_next" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_next</a>(&amp;mut self) -&gt; TryNext&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ [...]
+the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nth" class="method trait-impl has-srclink"><a href="#method.nth" class="anchor">§</a><h4 class="code-header">fn <a class="fn">nth</a>(&amp;mut self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>) -&gt; NthFuture&lt;'_, Self&gt;<span class="where fmt [...]
+producing a single, final value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each-1" class="method trait-impl has-srclink"><a href="#method.for_each-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each</a>&lt;F&gt;(self, f: F) -&gt; ForEachFuture&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Si [...]
+stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_while-1" class="method trait-impl has-srclink"><a href="#method.skip_while-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">skip_while</a>&lt;P&gt;(self, predicate: P) -&gt; SkipWhile&lt;Self, P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title [...]
+Immediately returns the error when the function returns unsuccessfully. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each-1" class="method trait-impl has-srclink"><a href="#method.try_for_each-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_for_each</a>&lt;F, E&gt;(&amp;mut self, f: F) -&gt; TryForEachFuture&lt;'_, Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a cla [...]
+of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.position" class="method trait-impl has-srclink"><a href="#method.position" class="anchor">§</a><h4 class="code-header">fn <a class="fn">position</a>&lt;P&gt;(&amp;mut self, predicate: P) -&gt; PositionFuture&lt;'_, Self, P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Unpin [...]
+its index. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a class="fn">cmp</a>&lt;S&gt;(self, other: S) -&gt; CmpFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker::Size [...]
+of another using ‘Ord’. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a class="fn">ne</a>&lt;S&gt;(self, other: S) -&gt; NeFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::mar [...]
+not equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a class="fn">ge</a>&lt;S&gt;(self, other: S) -&gt; GeFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait co [...]
+greater than or equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a class="fn">eq</a>&lt;S&gt;(self, other: S) -&gt; EqFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" tit [...]
+equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a class="fn">gt</a>&lt;S&gt;(self, other: S) -&gt; GtFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core:: [...]
+greater than those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">le</a>&lt;S&gt;(self, other: S) -&gt; LeFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait co [...]
+less or equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a class="fn">lt</a>&lt;S&gt;(self, other: S) -&gt; LtFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trai [...]
+less than those of another. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-StreamExt-for-Reader-2" class="impl has-srclink"><a href="#impl-StreamExt-for-Reader-2" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; StreamExt for S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: Stream + ?<a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::m [...]
+<code>false</code>, and then collects them into two collections. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.fold-2" class="method trait-impl has-srclink"><a href="#method.fold-2" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fold</a>&lt;T, F&gt;(self, init: T, f: F) -&gt; FoldFuture&lt;Self, F, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang [...]
+into the one provided. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_ok" class="method trait-impl has-srclink"><a href="#method.map_ok" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_ok</a>&lt;T, F&gt;(self, f: F) -&gt; MapOk&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait co [...]
+using the provided closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_err" class="method trait-impl has-srclink"><a href="#method.map_err" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_err</a>&lt;E, F&gt;(self, f: F) -&gt; MapErr&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title= [...]
+using the provided closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.and_then" class="method trait-impl has-srclink"><a href="#method.and_then" class="anchor">§</a><h4 class="code-header">fn <a class="fn">and_then</a>&lt;Fut, F&gt;(self, f: F) -&gt; AndThen&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnMu [...]
+results to the provided closure <code>f</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.or_else" class="method trait-impl has-srclink"><a href="#method.or_else" class="anchor">§</a><h4 class="code-header">fn <a class="fn">or_else</a>&lt;Fut, F&gt;(self, f: F) -&gt; OrElse&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/fun [...]
+erroneous result to the provided closure <code>f</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_ok" class="method trait-impl has-srclink"><a href="#method.inspect_ok" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inspect_ok</a>&lt;F&gt;(self, f: F) -&gt; InspectOk&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/c [...]
+it on. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_err" class="method trait-impl has-srclink"><a href="#method.inspect_err" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inspect_err</a>&lt;F&gt;(self, f: F) -&gt; InspectErr&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnMut.html" title="trai [...]
+<a href="futures_core::stream::Stream"><code>Stream</code></a> <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_next" class="method trait-impl has-srclink"><a href="#method.try_next" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_next</a>(&amp;mut self) -&gt; TryNext&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ [...]
 If an error is encountered before the next item, the error is returned
-instead. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each" class="method trait-impl has-srclink"><a href="#method.try_for_each" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_for_each</a>&lt;Fut, F&gt;(self, f: F) -&gt; TryForEach&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnMut.ht [...]
-asynchronous closure for each element on the stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_skip_while" class="method trait-impl has-srclink"><a href="#method.try_skip_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_skip_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; TrySkipWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.r [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_take_while" class="method trait-impl has-srclink"><a href="#method.try_take_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_take_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; TryTakeWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/co [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each_concurrent" class="method trait-impl has-srclink"><a href="#method.try_for_each_concurrent" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_for_each_concurrent</a>&lt;Fut, F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;limit: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.I [...]
+instead. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each" class="method trait-impl has-srclink"><a href="#method.try_for_each" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_for_each</a>&lt;Fut, F&gt;(self, f: F) -&gt; TryForEach&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/ops/function/trait.FnMut.ht [...]
+asynchronous closure for each element on the stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_skip_while" class="method trait-impl has-srclink"><a href="#method.try_skip_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_skip_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; TrySkipWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.r [...]
+resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_take_while" class="method trait-impl has-srclink"><a href="#method.try_take_while" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_take_while</a>&lt;Fut, F&gt;(self, f: F) -&gt; TryTakeWhile&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.1/co [...]
+resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each_concurrent" class="method trait-impl has-srclink"><a href="#method.try_for_each_concurrent" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_for_each_concurrent</a>&lt;Fut, F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;limit: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/convert/trait.I [...]
 closure for each element on the stream concurrently as elements become
-available, exiting as soon as an error occurs. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_collect" class="method trait-impl has-srclink"><a href="#method.try_collect" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_collect</a>&lt;C&gt;(self) -&gt; TryCollect&lt;Self, C&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;C: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/default/ [...]
-returning a future representing the result of that computation. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_chunks" class="method trait-impl has-srclink"><a href="#method.try_chunks" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_chunks</a>(self, capacity: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; TryChunks&lt;Self&gt;<span class="where fmt-newlin [...]
-provided asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_filter_map" class="method trait-impl has-srclink"><a href="#method.try_filter_map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_filter_map</a>&lt;Fut, F, T&gt;(self, f: F) -&gt; TryFilterMap&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: TryFuture&lt;Ok = <a class="enum" href="https://doc.r [...]
+available, exiting as soon as an error occurs. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_collect" class="method trait-impl has-srclink"><a href="#method.try_collect" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_collect</a>&lt;C&gt;(self) -&gt; TryCollect&lt;Self, C&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;C: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/default/ [...]
+returning a future representing the result of that computation. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_chunks" class="method trait-impl has-srclink"><a href="#method.try_chunks" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_chunks</a>(self, capacity: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>) -&gt; TryChunks&lt;Self&gt;<span class="where fmt-newlin [...]
+provided asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_filter_map" class="method trait-impl has-srclink"><a href="#method.try_filter_map" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_filter_map</a>&lt;Fut, F, T&gt;(self, f: F) -&gt; TryFilterMap&lt;Self, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: TryFuture&lt;Ok = <a class="enum" href="https://doc.r [...]
 simultaneously mapping them to a different type according to the
-provided asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_flatten_unordered" class="method trait-impl has-srclink"><a href="#method.try_flatten_unordered" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_flatten_unordered</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;limit: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.Into.html" title="tra [...]
+provided asynchronous closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_flatten_unordered" class="method trait-impl has-srclink"><a href="#method.try_flatten_unordered" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_flatten_unordered</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;limit: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/convert/trait.Into.html" title="tra [...]
 will be polled concurrently and any errors will be passed through without looking at them.
-If the underlying base stream returns an error, it will be <strong>immediately</strong> propagated. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_flatten" class="method trait-impl has-srclink"><a href="#method.try_flatten" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_flatten</a>(self) -&gt; TryFlatten&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Ok: TryStream,<br>&nbsp;& [...]
-stream, collecting all the values into one final result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_concat" class="method trait-impl has-srclink"><a href="#method.try_concat" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_concat</a>(self) -&gt; TryConcat&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trai [...]
-extendable destination, returning a future representing the end result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_buffer_unordered" class="method trait-impl has-srclink"><a href="#method.try_buffer_unordered" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_buffer_unordered</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; TryBufferUnordered& [...]
-stream types.</div></details><details class="toggle method-toggle" open><summary><section id="method.into_async_read" class="method trait-impl has-srclink"><a href="#method.into_async_read" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_async_read</a>(self) -&gt; IntoAsyncRead&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker:: [...]
+If the underlying base stream returns an error, it will be <strong>immediately</strong> propagated. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_flatten" class="method trait-impl has-srclink"><a href="#method.try_flatten" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_flatten</a>(self) -&gt; TryFlatten&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Ok: TryStream,<br>&nbsp;& [...]
+stream, collecting all the values into one final result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_concat" class="method trait-impl has-srclink"><a href="#method.try_concat" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_concat</a>(self) -&gt; TryConcat&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trai [...]
+extendable destination, returning a future representing the end result. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_buffer_unordered" class="method trait-impl has-srclink"><a href="#method.try_buffer_unordered" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_buffer_unordered</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.usize.html">usize</a>) -&gt; TryBufferUnordered& [...]
+stream types.</div></details><details class="toggle method-toggle" open><summary><section id="method.into_async_read" class="method trait-impl has-srclink"><a href="#method.into_async_read" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_async_read</a>(self) -&gt; IntoAsyncRead&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker:: [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" dat [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.Writer.html b/docs/rust/opendal/struct.Writer.html
index 289bac77..48a24161 100644
--- a/docs/rust/opendal/struct.Writer.html
+++ b/docs/rust/opendal/struct.Writer.html
@@ -4,20 +4,20 @@ manner.</p>
 <p>Writer is designed for appending multiple blocks which could
 lead to much requests. If only want to send all data in single chunk,
 please use <a href="struct.Operator.html#method.write" title="Operator::write"><code>Operator::write</code></a> instead.</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Writer" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#46-89">source</a><a href="#impl-Writer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Writer.html" title="stru [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Writer" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#46-89">source</a><a href="#impl-Writer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Writer.html" title="stru [...]
 <p>It is highly recommended to align the length of the input bytes
 into blocks of 4MiB (except the last block) for better performance
 and compatibility.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.close" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#79-88">source</a><h4 class="code-header">pub async fn <a href="#method.close" class="fn">close</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>&gt;< [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-AsyncWrite-for-Writer" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#107-172">source</a><a href="#impl-AsyncWrite-for-Writer" class="anchor">§</a><h3 cl [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.poll_write" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#108-139">source</a><a href="#method.poll_write" class="anchor">§</a><h4 class="code-header">fn <a class="fn">poll_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;< [...]
-IO operations. <a>Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Writer" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Writer" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/panic/unw [...]
-IO operations. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.write_all" class="method trait-impl has-srclink"><a href="#method.write_all" class="anchor">§</a><h4 class="code-header">fn <a class="fn">write_all</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8.html">u8</a>]) -&gt; WriteAll&lt;'a, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbs [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.close" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#79-88">source</a><h4 class="code-header">pub async fn <a href="#method.close" class="fn">close</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.unit.html">()</a>&gt;< [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-AsyncWrite-for-Writer" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#107-172">source</a><a href="#impl-AsyncWrite-for-Writer" class="anchor">§</a><h3 cl [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.poll_write" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/writer.rs.html#108-139">source</a><a href="#method.poll_write" class="anchor">§</a><h4 class="code-header">fn <a class="fn">poll_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: <a class="struct" href="https://doc.rust-lang.org/1.68.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;< [...]
+IO operations. <a>Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Writer" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Writer" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.68.1/core/panic/unw [...]
+IO operations. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.write_all" class="method trait-impl has-srclink"><a href="#method.write_all" class="anchor">§</a><h4 class="code-header">fn <a class="fn">write_all</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a [<a class="primitive" href="https://doc.rust-lang.org/1.68.1/std/primitive.u8.html">u8</a>]) -&gt; WriteAll&lt;'a, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbs [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Writer" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Writer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Ins [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
-<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Writer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Writer" class="anchor">§</a><h3 class="code- [...]
+<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Writer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Writer" class="anchor">§</a><h3 class="code- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
-</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Writer" class="impl has-srclink"><a href="#impl-Pointable-for-Writer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
+<code><a href="https://doc.rust-lang.org/1.68.1/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-Writer" class="impl has-srclink"><a href="#impl-Pointable-for-Writer" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor">§</a> [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-WriteExt-for-Writer" class="impl has-srclink"><a href="#impl-WriteExt-for-Writer" class="anchor">§</a><h3 class="c [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-WriteExt-for-Writer" class="impl has-srclink"><a href="#impl-WriteExt-for-Writer" class="anchor">§</a><h3 class="c [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/trait.Builder.html b/docs/rust/opendal/trait.Builder.html
index f7ce701d..3c3573df 100644
--- a/docs/rust/opendal/trait.Builder.html
+++ b/docs/rust/opendal/trait.Builder.html
@@ -1,22 +1,22 @@
-<!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 build a storage accessor used by [`Operator`]."><meta name="keywords" content="rust, rustlang, rust-lang, Builder"><title>Builder in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176 [...]
+<!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 build a storage accessor used by [`Operator`]."><meta name="keywords" content="rust, rustlang, rust-lang, Builder"><title>Builder in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176 [...]
     type <a href="#associatedtype.Accessor" class="associatedtype">Accessor</a>: <a class="trait" href="raw/trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a>;
 
     const <a href="#associatedconstant.SCHEME" class="constant">SCHEME</a>: <a class="enum" href="enum.Scheme.html" title="enum opendal::Scheme">Scheme</a>;
 
-    fn <a href="#tymethod.from_map" class="fn">from_map</a>(map: <a class="struct" href="https://doc.rust-lang.org/1.68.0/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string: [...]
+    fn <a href="#tymethod.from_map" class="fn">from_map</a>(map: <a class="struct" href="https://doc.rust-lang.org/1.68.1/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struct alloc::string: [...]
 <span class="item-spacer"></span>    fn <a href="#tymethod.build" class="fn">build</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result">Result</a>&lt;Self::<a class="associatedtype" href="trait.Builder.html#associatedtype.Accessor" title="type opendal::Builder::Accessor">Accessor</a>&gt;;
 
-    fn <a href="#method.from_iter" class="fn">from_iter</a>(iter: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Item = (<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struc [...]
+    fn <a href="#method.from_iter" class="fn">from_iter</a>(iter: impl <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Item = (<a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/1.68.1/alloc/string/struct.String.html" title="struc [...]
     { ... }
-<span class="item-spacer"></span>    fn <a href="#method.from_env" class="fn">from_env</a>() -&gt; Self<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a></span>,
+<span class="item-spacer"></span>    fn <a href="#method.from_env" class="fn">from_env</a>() -&gt; Self<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a></span>,
     { ... }
 }</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Builder is used to build a storage accessor used by <a href="struct.Operator.html" title="Operator"><code>Operator</code></a>.</p>
 <p>It’s recommended to use <a href="struct.Operator.html#method.new" title="Operator::new"><code>Operator::new</code></a> to avoid use <code>Builder</code> trait directly.</p>
 </div></details><h2 id="required-associated-types" class="small-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 has-srclink"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#31">source</a><h4 class="code-header">type <a href="#associatedtype.Accessor" class="associatedtype">Accessor</a>: <a class="trai [...]
 </div></details></div><h2 id="required-associated-consts" class="small-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 has-srclink"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#29">source</a><h4 class="code-header">const <a href="#associatedconstant.SCHEME" class="constant">SCHEME</a>: <a cl [...]
-</div></details></div><h2 id="required-methods" class="small-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 has-srclink"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#34">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-la [...]
+</div></details></div><h2 id="required-methods" class="small-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 has-srclink"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#34">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-la [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="tymethod.build" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#62">source</a><h4 class="code-header">fn <a href="#tymethod.build" class="fn">build</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result">Result</a>&lt;Self::<a class="associatedtype" href="trait.Builder.html#associatedtype.Accessor" title="type opendal::B [...]
-</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.from_iter" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#37-42">source</a><h4 class="code-header">fn <a href="#method.from_iter" class="fn">from_iter</a>(iter: impl <a class="trait" href="https://doc. [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.from_env" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#45-59">source</a><h4 class="code-header">fn <a href="#method.from_env" class="fn">from_env</a>() -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::marker::Size [...]
-</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Builder-for-()" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#66-76">source</a><a href="#impl-Builder-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Builder.html" title="trait [...]
-</div><div class="impl-items"><section id="associatedconstant.SCHEME-1" class="associatedconstant trait-impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#67">source</a><a href="#associatedconstant.SCHEME-1" class="anchor">§</a><h4 class="code-header">const <a href="#associatedconstant.SCHEME" class="constant">SCHEME</a>: <a class="enum" href="enum.Scheme.html" title="enum opendal::Scheme">Scheme</a> = _</h4></section><section id="associatedtype.Acc [...]
\ No newline at end of file
+</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.from_iter" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#37-42">source</a><h4 class="code-header">fn <a href="#method.from_iter" class="fn">from_iter</a>(iter: impl <a class="trait" href="https://doc. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.from_env" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#45-59">source</a><h4 class="code-header">fn <a href="#method.from_env" class="fn">from_env</a>() -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.1/core/marker/trait.Sized.html" title="trait core::marker::Size [...]
+</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Builder-for-()" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#66-76">source</a><a href="#impl-Builder-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Builder.html" title="trait [...]
+</div><div class="impl-items"><section id="associatedconstant.SCHEME-1" class="associatedconstant trait-impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#67">source</a><a href="#associatedconstant.SCHEME-1" class="anchor">§</a><h4 class="code-header">const <a href="#associatedconstant.SCHEME" class="constant">SCHEME</a>: <a class="enum" href="enum.Scheme.html" title="enum opendal::Scheme">Scheme</a> = _</h4></section><section id="associatedtype.Acc [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/type.Result.html b/docs/rust/opendal/type.Result.html
index 193bbb03..abee2f32 100644
--- a/docs/rust/opendal/type.Result.html
+++ b/docs/rust/opendal/type.Result.html
@@ -1,2 +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="Result that is a wrapper of `Result&lt;T, opendal::Error&gt;`"><meta name="keywords" content="rust, rustlang, rust-lang, Result"><title>Result in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72. [...]
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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="Result that is a wrapper of `Result&lt;T, opendal::Error&gt;`"><meta name="keywords" content="rust, rustlang, rust-lang, Result"><title>Result in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72. [...]
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/search-index.js b/docs/rust/search-index.js
index 902c5a42..8bbd0749 100644
--- a/docs/rust/search-index.js
+++ b/docs/rust/search-index.js
@@ -1,5 +1,5 @@
 var searchIndex = JSON.parse('{\
-"opendal":{"doc":"OpenDAL is the Open Data Access Layer to <strong>freely</strong>, <strong>painlessly</strong>…","t":[16,13,13,13,3,3,3,3,8,13,13,13,13,13,13,13,13,13,13,3,4,3,4,13,13,13,13,13,13,13,13,13,13,13,13,3,13,13,3,4,13,13,13,13,13,3,3,3,13,13,13,3,13,6,13,13,18,4,13,13,13,13,13,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11 [...]
+"opendal":{"doc":"OpenDAL is the Open Data Access Layer to <strong>freely</strong>, <strong>painlessly</strong>…","t":[16,13,13,13,3,3,3,3,8,13,13,13,13,13,13,13,13,13,13,3,4,3,4,13,13,13,13,13,13,13,13,13,13,13,13,3,13,13,3,4,13,13,13,13,13,3,3,3,13,13,13,3,13,6,13,13,18,4,13,13,13,13,13,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11 [...]
 }');
 if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)};
 if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex};
diff --git a/docs/rust/settings.html b/docs/rust/settings.html
index 30bebea1..f9c232ef 100644
--- a/docs/rust/settings.html
+++ b/docs/rust/settings.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="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2"  [...]
\ 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="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2"  [...]
\ No newline at end of file
diff --git a/docs/rust/src/opendal/docs/comparisons/mod.rs.html b/docs/rust/src/opendal/docs/comparisons/mod.rs.html
index 2471c27f..8d4a0f54 100644
--- a/docs/rust/src/opendal/docs/comparisons/mod.rs.html
+++ b/docs/rust/src/opendal/docs/comparisons/mod.rs.html
@@ -59,4 +59,4 @@
 </span><span class="attr">#[doc = <span class="macro">include_str!</span>(<span class="string">&quot;vs_object_store.md&quot;</span>)]
 </span><span class="kw">pub mod </span>vs_object_store {}
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ 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 cf866b72..2faf9272 100644
--- a/docs/rust/src/opendal/docs/concepts.rs.html
+++ b/docs/rust/src/opendal/docs/concepts.rs.html
@@ -247,4 +247,4 @@
 //! [`Builder`]: crate::Builder
 //! [`Operator`]: crate::Operator
 </span></code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/docs/internals/accessor.rs.html b/docs/rust/src/opendal/docs/internals/accessor.rs.html
index d3b85057..73f3d856 100644
--- a/docs/rust/src/opendal/docs/internals/accessor.rs.html
+++ b/docs/rust/src/opendal/docs/internals/accessor.rs.html
@@ -645,4 +645,4 @@
 //! [`Scheme`]: crate::Scheme
 //! [`Builder`]: crate::Builder
 </span></code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></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 7ddeae9f..0f9f80c4 100644
--- a/docs/rust/src/opendal/docs/internals/layer.rs.html
+++ b/docs/rust/src/opendal/docs/internals/layer.rs.html
@@ -83,4 +83,4 @@
 //! [`Accessor`]: crate::raw::Accessor
 //! [`LayeredAccessor`]: crate::raw::LayeredAccessor
 </span></code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></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 a8b6ea73..801d93cc 100644
--- a/docs/rust/src/opendal/docs/internals/mod.rs.html
+++ b/docs/rust/src/opendal/docs/internals/mod.rs.html
@@ -123,4 +123,4 @@
 </span><span class="kw">pub mod </span>accessor;
 <span class="kw">pub mod </span>layer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/docs/mod.rs.html b/docs/rust/src/opendal/docs/mod.rs.html
index ea40f33d..22100980 100644
--- a/docs/rust/src/opendal/docs/mod.rs.html
+++ b/docs/rust/src/opendal/docs/mod.rs.html
@@ -87,4 +87,4 @@
 #[cfg(not(doctest))]
 </span><span class="kw">pub mod </span>upgrade {}
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/docs/rfcs/mod.rs.html b/docs/rust/src/opendal/docs/rfcs/mod.rs.html
index ad8f0466..f21d103d 100644
--- a/docs/rust/src/opendal/docs/rfcs/mod.rs.html
+++ b/docs/rust/src/opendal/docs/rfcs/mod.rs.html
@@ -269,4 +269,4 @@
 <span class="attr">#[doc = <span class="macro">include_str!</span>(<span class="string">&quot;1735_operation_extension.md&quot;</span>)]
 </span><span class="kw">pub mod </span>rfc_1735_operation_extension {}
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/layers/chaos.rs.html b/docs/rust/src/opendal/layers/chaos.rs.html
index b44a34de..07ac5522 100644
--- a/docs/rust/src/opendal/layers/chaos.rs.html
+++ b/docs/rust/src/opendal/layers/chaos.rs.html
@@ -471,4 +471,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/layers/complete.rs.html b/docs/rust/src/opendal/layers/complete.rs.html
index 424344d3..499bca61 100644
--- a/docs/rust/src/opendal/layers/complete.rs.html
+++ b/docs/rust/src/opendal/layers/complete.rs.html
@@ -1021,4 +1021,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/layers/concurrent_limit.rs.html b/docs/rust/src/opendal/layers/concurrent_limit.rs.html
index 8a0fb13c..73e5f83a 100644
--- a/docs/rust/src/opendal/layers/concurrent_limit.rs.html
+++ b/docs/rust/src/opendal/layers/concurrent_limit.rs.html
@@ -705,4 +705,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/layers/error_context.rs.html b/docs/rust/src/opendal/layers/error_context.rs.html
index a68a89b5..1eb963df 100644
--- a/docs/rust/src/opendal/layers/error_context.rs.html
+++ b/docs/rust/src/opendal/layers/error_context.rs.html
@@ -953,4 +953,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/layers/immutable_index.rs.html b/docs/rust/src/opendal/layers/immutable_index.rs.html
index caa73cea..a348f240 100644
--- a/docs/rust/src/opendal/layers/immutable_index.rs.html
+++ b/docs/rust/src/opendal/layers/immutable_index.rs.html
@@ -933,4 +933,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/layers/logging.rs.html b/docs/rust/src/opendal/layers/logging.rs.html
index a67f9eed..c6af8309 100644
--- a/docs/rust/src/opendal/layers/logging.rs.html
+++ b/docs/rust/src/opendal/layers/logging.rs.html
@@ -3045,4 +3045,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/layers/metrics.rs.html b/docs/rust/src/opendal/layers/metrics.rs.html
index a8de9417..02ad92d1 100644
--- a/docs/rust/src/opendal/layers/metrics.rs.html
+++ b/docs/rust/src/opendal/layers/metrics.rs.html
@@ -1953,4 +1953,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/layers/mod.rs.html b/docs/rust/src/opendal/layers/mod.rs.html
index 80a18884..5135f5bb 100644
--- a/docs/rust/src/opendal/layers/mod.rs.html
+++ b/docs/rust/src/opendal/layers/mod.rs.html
@@ -107,4 +107,4 @@
 <span class="kw">mod </span>complete;
 <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">use </span>complete::CompleteLayer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/layers/retry.rs.html b/docs/rust/src/opendal/layers/retry.rs.html
index 573cf59d..6e0c47a5 100644
--- a/docs/rust/src/opendal/layers/retry.rs.html
+++ b/docs/rust/src/opendal/layers/retry.rs.html
@@ -1947,4 +1947,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/layers/tracing.rs.html b/docs/rust/src/opendal/layers/tracing.rs.html
index 5ff81bab..ee8b0273 100644
--- a/docs/rust/src/opendal/layers/tracing.rs.html
+++ b/docs/rust/src/opendal/layers/tracing.rs.html
@@ -765,4 +765,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/layers/type_eraser.rs.html b/docs/rust/src/opendal/layers/type_eraser.rs.html
index 8dd28a6b..c1b7daaf 100644
--- a/docs/rust/src/opendal/layers/type_eraser.rs.html
+++ b/docs/rust/src/opendal/layers/type_eraser.rs.html
@@ -237,4 +237,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/lib.rs.html b/docs/rust/src/opendal/lib.rs.html
index ad72527b..98af5741 100644
--- a/docs/rust/src/opendal/lib.rs.html
+++ b/docs/rust/src/opendal/lib.rs.html
@@ -197,4 +197,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/accessor.rs.html b/docs/rust/src/opendal/raw/accessor.rs.html
index aba56ef5..f2486eb5 100644
--- a/docs/rust/src/opendal/raw/accessor.rs.html
+++ b/docs/rust/src/opendal/raw/accessor.rs.html
@@ -1119,4 +1119,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/adapters/kv/api.rs.html b/docs/rust/src/opendal/raw/adapters/kv/api.rs.html
index 8fee31c5..87999086 100644
--- a/docs/rust/src/opendal/raw/adapters/kv/api.rs.html
+++ b/docs/rust/src/opendal/raw/adapters/kv/api.rs.html
@@ -359,4 +359,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
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 08507832..39cd367d 100644
--- a/docs/rust/src/opendal/raw/adapters/kv/backend.rs.html
+++ b/docs/rust/src/opendal/raw/adapters/kv/backend.rs.html
@@ -649,4 +649,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/adapters/kv/mod.rs.html b/docs/rust/src/opendal/raw/adapters/kv/mod.rs.html
index 0e708e99..d540c0fe 100644
--- a/docs/rust/src/opendal/raw/adapters/kv/mod.rs.html
+++ b/docs/rust/src/opendal/raw/adapters/kv/mod.rs.html
@@ -65,4 +65,4 @@
 <span class="kw">mod </span>backend;
 <span class="kw">pub use </span>backend::Backend;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/adapters/mod.rs.html b/docs/rust/src/opendal/raw/adapters/mod.rs.html
index c7f1505f..b1f990d7 100644
--- a/docs/rust/src/opendal/raw/adapters/mod.rs.html
+++ b/docs/rust/src/opendal/raw/adapters/mod.rs.html
@@ -95,4 +95,4 @@
 
 </span><span class="kw">pub mod </span>kv;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/http_util/body.rs.html b/docs/rust/src/opendal/raw/http_util/body.rs.html
index a223a116..6ae30cd2 100644
--- a/docs/rust/src/opendal/raw/http_util/body.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/body.rs.html
@@ -537,4 +537,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/http_util/bytes_content_range.rs.html b/docs/rust/src/opendal/raw/http_util/bytes_content_range.rs.html
index 78c9c6f3..44dd7d00 100644
--- a/docs/rust/src/opendal/raw/http_util/bytes_content_range.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/bytes_content_range.rs.html
@@ -613,4 +613,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/http_util/bytes_range.rs.html b/docs/rust/src/opendal/raw/http_util/bytes_range.rs.html
index d54947f9..39747912 100644
--- a/docs/rust/src/opendal/raw/http_util/bytes_range.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/bytes_range.rs.html
@@ -655,4 +655,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/http_util/client.rs.html b/docs/rust/src/opendal/raw/http_util/client.rs.html
index fa8950d3..5c48732a 100644
--- a/docs/rust/src/opendal/raw/http_util/client.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/client.rs.html
@@ -557,4 +557,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/http_util/dns.rs.html b/docs/rust/src/opendal/raw/http_util/dns.rs.html
index 757bb552..83d0f884 100644
--- a/docs/rust/src/opendal/raw/http_util/dns.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/dns.rs.html
@@ -473,4 +473,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/http_util/error.rs.html b/docs/rust/src/opendal/raw/http_util/error.rs.html
index 5ba69469..3aae1413 100644
--- a/docs/rust/src/opendal/raw/http_util/error.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/error.rs.html
@@ -203,4 +203,4 @@
         .set_source(err)
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/http_util/header.rs.html b/docs/rust/src/opendal/raw/http_util/header.rs.html
index 7254fde8..786c005d 100644
--- a/docs/rust/src/opendal/raw/http_util/header.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/header.rs.html
@@ -679,4 +679,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/http_util/mod.rs.html b/docs/rust/src/opendal/raw/http_util/mod.rs.html
index 8e9abbe2..7a51492a 100644
--- a/docs/rust/src/opendal/raw/http_util/mod.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/mod.rs.html
@@ -123,4 +123,4 @@
 
 <span class="kw">mod </span>dns;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/http_util/uri.rs.html b/docs/rust/src/opendal/raw/http_util/uri.rs.html
index d0991fa7..810c39c3 100644
--- a/docs/rust/src/opendal/raw/http_util/uri.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/uri.rs.html
@@ -163,4 +163,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/layer.rs.html b/docs/rust/src/opendal/raw/layer.rs.html
index d3db1389..c7897cbf 100644
--- a/docs/rust/src/opendal/raw/layer.rs.html
+++ b/docs/rust/src/opendal/raw/layer.rs.html
@@ -699,4 +699,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/mod.rs.html b/docs/rust/src/opendal/raw/mod.rs.html
index 4c06e262..824aa102 100644
--- a/docs/rust/src/opendal/raw/mod.rs.html
+++ b/docs/rust/src/opendal/raw/mod.rs.html
@@ -135,4 +135,4 @@
 <span class="comment">// Expose as a pub mod to avoid confusing.
 </span><span class="kw">pub mod </span>adapters;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/cursor.rs.html b/docs/rust/src/opendal/raw/oio/cursor.rs.html
index cede0316..69fa91a8 100644
--- a/docs/rust/src/opendal/raw/oio/cursor.rs.html
+++ b/docs/rust/src/opendal/raw/oio/cursor.rs.html
@@ -279,4 +279,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/entry.rs.html b/docs/rust/src/opendal/raw/oio/entry.rs.html
index 2a4b74b8..82f1afbf 100644
--- a/docs/rust/src/opendal/raw/oio/entry.rs.html
+++ b/docs/rust/src/opendal/raw/oio/entry.rs.html
@@ -167,4 +167,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/into_blocking_reader/from_fd.rs.html b/docs/rust/src/opendal/raw/oio/into_blocking_reader/from_fd.rs.html
index 4eba7a59..a6802d52 100644
--- a/docs/rust/src/opendal/raw/oio/into_blocking_reader/from_fd.rs.html
+++ b/docs/rust/src/opendal/raw/oio/into_blocking_reader/from_fd.rs.html
@@ -237,4 +237,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/into_blocking_reader/mod.rs.html b/docs/rust/src/opendal/raw/oio/into_blocking_reader/mod.rs.html
index 7f6a2a39..d21acaa4 100644
--- a/docs/rust/src/opendal/raw/oio/into_blocking_reader/mod.rs.html
+++ b/docs/rust/src/opendal/raw/oio/into_blocking_reader/mod.rs.html
@@ -45,4 +45,4 @@
 <span class="kw">pub use </span>from_fd::from_fd;
 <span class="kw">pub use </span>from_fd::FdReader;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/into_reader/by_range.rs.html b/docs/rust/src/opendal/raw/oio/into_reader/by_range.rs.html
index 22734c1b..5c87304f 100644
--- a/docs/rust/src/opendal/raw/oio/into_reader/by_range.rs.html
+++ b/docs/rust/src/opendal/raw/oio/into_reader/by_range.rs.html
@@ -935,4 +935,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/into_reader/from_fd.rs.html b/docs/rust/src/opendal/raw/oio/into_reader/from_fd.rs.html
index c3d163c1..f2f7fac1 100644
--- a/docs/rust/src/opendal/raw/oio/into_reader/from_fd.rs.html
+++ b/docs/rust/src/opendal/raw/oio/into_reader/from_fd.rs.html
@@ -251,4 +251,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/into_reader/mod.rs.html b/docs/rust/src/opendal/raw/oio/into_reader/mod.rs.html
index 40ba4464..35af9503 100644
--- a/docs/rust/src/opendal/raw/oio/into_reader/mod.rs.html
+++ b/docs/rust/src/opendal/raw/oio/into_reader/mod.rs.html
@@ -91,4 +91,4 @@
 <span class="kw">pub use </span>from_fd::from_fd;
 <span class="kw">pub use </span>from_fd::FdReader;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/into_streamable.rs.html b/docs/rust/src/opendal/raw/oio/into_streamable.rs.html
index 94d3300c..65b6414d 100644
--- a/docs/rust/src/opendal/raw/oio/into_streamable.rs.html
+++ b/docs/rust/src/opendal/raw/oio/into_streamable.rs.html
@@ -295,4 +295,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/mod.rs.html b/docs/rust/src/opendal/raw/oio/mod.rs.html
index 4185e4a4..352764df 100644
--- a/docs/rust/src/opendal/raw/oio/mod.rs.html
+++ b/docs/rust/src/opendal/raw/oio/mod.rs.html
@@ -133,4 +133,4 @@
 <span class="kw">pub use </span>to_hierarchy_pager::to_hierarchy_pager;
 <span class="kw">pub use </span>to_hierarchy_pager::ToHierarchyPager;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/page.rs.html b/docs/rust/src/opendal/raw/oio/page.rs.html
index dcab0d8a..6c723b90 100644
--- a/docs/rust/src/opendal/raw/oio/page.rs.html
+++ b/docs/rust/src/opendal/raw/oio/page.rs.html
@@ -259,4 +259,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/read.rs.html b/docs/rust/src/opendal/raw/oio/read.rs.html
index 896481db..1cb9b6ab 100644
--- a/docs/rust/src/opendal/raw/oio/read.rs.html
+++ b/docs/rust/src/opendal/raw/oio/read.rs.html
@@ -749,4 +749,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/to_flat_pager.rs.html b/docs/rust/src/opendal/raw/oio/to_flat_pager.rs.html
index b2eba743..5979a030 100644
--- a/docs/rust/src/opendal/raw/oio/to_flat_pager.rs.html
+++ b/docs/rust/src/opendal/raw/oio/to_flat_pager.rs.html
@@ -623,4 +623,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/to_hierarchy_pager.rs.html b/docs/rust/src/opendal/raw/oio/to_hierarchy_pager.rs.html
index 32ab976e..0f991118 100644
--- a/docs/rust/src/opendal/raw/oio/to_hierarchy_pager.rs.html
+++ b/docs/rust/src/opendal/raw/oio/to_hierarchy_pager.rs.html
@@ -479,4 +479,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/oio/write.rs.html b/docs/rust/src/opendal/raw/oio/write.rs.html
index b337156e..66419396 100644
--- a/docs/rust/src/opendal/raw/oio/write.rs.html
+++ b/docs/rust/src/opendal/raw/oio/write.rs.html
@@ -377,4 +377,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/operation.rs.html b/docs/rust/src/opendal/raw/operation.rs.html
index 87514d70..1f60382d 100644
--- a/docs/rust/src/opendal/raw/operation.rs.html
+++ b/docs/rust/src/opendal/raw/operation.rs.html
@@ -215,4 +215,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/path.rs.html b/docs/rust/src/opendal/raw/path.rs.html
index 5903a92f..014565fb 100644
--- a/docs/rust/src/opendal/raw/path.rs.html
+++ b/docs/rust/src/opendal/raw/path.rs.html
@@ -761,4 +761,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/rps.rs.html b/docs/rust/src/opendal/raw/rps.rs.html
index 4d91c4dc..4ba375b1 100644
--- a/docs/rust/src/opendal/raw/rps.rs.html
+++ b/docs/rust/src/opendal/raw/rps.rs.html
@@ -551,4 +551,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/serde_util.rs.html b/docs/rust/src/opendal/raw/serde_util.rs.html
index 1ea876c8..a0110a4b 100644
--- a/docs/rust/src/opendal/raw/serde_util.rs.html
+++ b/docs/rust/src/opendal/raw/serde_util.rs.html
@@ -65,4 +65,4 @@
     Error::new(ErrorKind::Unexpected, <span class="string">&quot;deserialize json&quot;</span>).set_source(e)
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/raw/version.rs.html b/docs/rust/src/opendal/raw/version.rs.html
index bee97304..8c751a9f 100644
--- a/docs/rust/src/opendal/raw/version.rs.html
+++ b/docs/rust/src/opendal/raw/version.rs.html
@@ -59,4 +59,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/azblob/backend.rs.html b/docs/rust/src/opendal/services/azblob/backend.rs.html
index dba9468c..824c99fc 100644
--- a/docs/rust/src/opendal/services/azblob/backend.rs.html
+++ b/docs/rust/src/opendal/services/azblob/backend.rs.html
@@ -2035,4 +2035,4 @@ SharedAccessSignature=sv=2021-01-01&amp;ss=b&amp;srt=c&amp;sp=rwdlaciytfx&amp;se
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/azblob/batch.rs.html b/docs/rust/src/opendal/services/azblob/batch.rs.html
index d243cae1..1b699770 100644
--- a/docs/rust/src/opendal/services/azblob/batch.rs.html
+++ b/docs/rust/src/opendal/services/azblob/batch.rs.html
@@ -627,4 +627,4 @@ Time:2018-06-14T16:46:54.6040685Z&lt;/Message&gt;&lt;/Error&gt;
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/azblob/error.rs.html b/docs/rust/src/opendal/services/azblob/error.rs.html
index ee898144..eefa7471 100644
--- a/docs/rust/src/opendal/services/azblob/error.rs.html
+++ b/docs/rust/src/opendal/services/azblob/error.rs.html
@@ -361,4 +361,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/azblob/mod.rs.html b/docs/rust/src/opendal/services/azblob/mod.rs.html
index 9129fcd3..48c0ccc7 100644
--- a/docs/rust/src/opendal/services/azblob/mod.rs.html
+++ b/docs/rust/src/opendal/services/azblob/mod.rs.html
@@ -47,4 +47,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/azblob/pager.rs.html b/docs/rust/src/opendal/services/azblob/pager.rs.html
index 1d00ccbb..d4974ca2 100644
--- a/docs/rust/src/opendal/services/azblob/pager.rs.html
+++ b/docs/rust/src/opendal/services/azblob/pager.rs.html
@@ -731,4 +731,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/azblob/writer.rs.html b/docs/rust/src/opendal/services/azblob/writer.rs.html
index bd96d8ec..81dc3832 100644
--- a/docs/rust/src/opendal/services/azblob/writer.rs.html
+++ b/docs/rust/src/opendal/services/azblob/writer.rs.html
@@ -161,4 +161,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/azdfs/backend.rs.html b/docs/rust/src/opendal/services/azdfs/backend.rs.html
index dd8b2c8e..ed3be153 100644
--- a/docs/rust/src/opendal/services/azdfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/azdfs/backend.rs.html
@@ -1411,4 +1411,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/azdfs/error.rs.html b/docs/rust/src/opendal/services/azdfs/error.rs.html
index 8202f84c..effc339c 100644
--- a/docs/rust/src/opendal/services/azdfs/error.rs.html
+++ b/docs/rust/src/opendal/services/azdfs/error.rs.html
@@ -207,4 +207,4 @@
     <span class="prelude-val">Ok</span>(err)
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/azdfs/mod.rs.html b/docs/rust/src/opendal/services/azdfs/mod.rs.html
index c71df6c7..7339ed37 100644
--- a/docs/rust/src/opendal/services/azdfs/mod.rs.html
+++ b/docs/rust/src/opendal/services/azdfs/mod.rs.html
@@ -45,4 +45,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/azdfs/pager.rs.html b/docs/rust/src/opendal/services/azdfs/pager.rs.html
index d29811d0..8e2dcffe 100644
--- a/docs/rust/src/opendal/services/azdfs/pager.rs.html
+++ b/docs/rust/src/opendal/services/azdfs/pager.rs.html
@@ -385,4 +385,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/azdfs/writer.rs.html b/docs/rust/src/opendal/services/azdfs/writer.rs.html
index 72cd38d8..e547526c 100644
--- a/docs/rust/src/opendal/services/azdfs/writer.rs.html
+++ b/docs/rust/src/opendal/services/azdfs/writer.rs.html
@@ -211,4 +211,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/dashmap/backend.rs.html b/docs/rust/src/opendal/services/dashmap/backend.rs.html
index 7b5fb6a5..940064a9 100644
--- a/docs/rust/src/opendal/services/dashmap/backend.rs.html
+++ b/docs/rust/src/opendal/services/dashmap/backend.rs.html
@@ -265,4 +265,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/dashmap/mod.rs.html b/docs/rust/src/opendal/services/dashmap/mod.rs.html
index 58e28e13..6aa1e1c3 100644
--- a/docs/rust/src/opendal/services/dashmap/mod.rs.html
+++ b/docs/rust/src/opendal/services/dashmap/mod.rs.html
@@ -37,4 +37,4 @@
 </span><span class="kw">mod </span>backend;
 <span class="kw">pub use </span>backend::DashmapBuilder <span class="kw">as </span>Dashmap;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/fs/backend.rs.html b/docs/rust/src/opendal/services/fs/backend.rs.html
index 4815c204..cd701073 100644
--- a/docs/rust/src/opendal/services/fs/backend.rs.html
+++ b/docs/rust/src/opendal/services/fs/backend.rs.html
@@ -1435,4 +1435,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/fs/error.rs.html b/docs/rust/src/opendal/services/fs/error.rs.html
index b55a0a68..0eeede14 100644
--- a/docs/rust/src/opendal/services/fs/error.rs.html
+++ b/docs/rust/src/opendal/services/fs/error.rs.html
@@ -81,4 +81,4 @@
     err
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/fs/mod.rs.html b/docs/rust/src/opendal/services/fs/mod.rs.html
index 71c4552b..9f22191d 100644
--- a/docs/rust/src/opendal/services/fs/mod.rs.html
+++ b/docs/rust/src/opendal/services/fs/mod.rs.html
@@ -45,4 +45,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/fs/pager.rs.html b/docs/rust/src/opendal/services/fs/pager.rs.html
index 3a30a836..def2c41c 100644
--- a/docs/rust/src/opendal/services/fs/pager.rs.html
+++ b/docs/rust/src/opendal/services/fs/pager.rs.html
@@ -253,4 +253,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/fs/writer.rs.html b/docs/rust/src/opendal/services/fs/writer.rs.html
index 486bd3e3..5b142336 100644
--- a/docs/rust/src/opendal/services/fs/writer.rs.html
+++ b/docs/rust/src/opendal/services/fs/writer.rs.html
@@ -251,4 +251,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ftp/backend.rs.html b/docs/rust/src/opendal/services/ftp/backend.rs.html
index cc0813b2..f0386790 100644
--- a/docs/rust/src/opendal/services/ftp/backend.rs.html
+++ b/docs/rust/src/opendal/services/ftp/backend.rs.html
@@ -1097,4 +1097,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ftp/err.rs.html b/docs/rust/src/opendal/services/ftp/err.rs.html
index e0f07c62..b1fed309 100644
--- a/docs/rust/src/opendal/services/ftp/err.rs.html
+++ b/docs/rust/src/opendal/services/ftp/err.rs.html
@@ -97,4 +97,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ftp/mod.rs.html b/docs/rust/src/opendal/services/ftp/mod.rs.html
index d5ce5d63..9caaaf74 100644
--- a/docs/rust/src/opendal/services/ftp/mod.rs.html
+++ b/docs/rust/src/opendal/services/ftp/mod.rs.html
@@ -47,4 +47,4 @@
 <span class="kw">mod </span>util;
 <span class="kw">mod </span>writer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ftp/pager.rs.html b/docs/rust/src/opendal/services/ftp/pager.rs.html
index 4534f30f..75d395e4 100644
--- a/docs/rust/src/opendal/services/ftp/pager.rs.html
+++ b/docs/rust/src/opendal/services/ftp/pager.rs.html
@@ -155,4 +155,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ftp/util.rs.html b/docs/rust/src/opendal/services/ftp/util.rs.html
index 6148ff6d..4fc1c3b4 100644
--- a/docs/rust/src/opendal/services/ftp/util.rs.html
+++ b/docs/rust/src/opendal/services/ftp/util.rs.html
@@ -245,4 +245,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ftp/writer.rs.html b/docs/rust/src/opendal/services/ftp/writer.rs.html
index 63a3da21..da6480a3 100644
--- a/docs/rust/src/opendal/services/ftp/writer.rs.html
+++ b/docs/rust/src/opendal/services/ftp/writer.rs.html
@@ -135,4 +135,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/gcs/backend.rs.html b/docs/rust/src/opendal/services/gcs/backend.rs.html
index e5ee0034..606c679d 100644
--- a/docs/rust/src/opendal/services/gcs/backend.rs.html
+++ b/docs/rust/src/opendal/services/gcs/backend.rs.html
@@ -1381,4 +1381,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/gcs/error.rs.html b/docs/rust/src/opendal/services/gcs/error.rs.html
index aad0a5e3..9d30b5d5 100644
--- a/docs/rust/src/opendal/services/gcs/error.rs.html
+++ b/docs/rust/src/opendal/services/gcs/error.rs.html
@@ -235,4 +235,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/gcs/mod.rs.html b/docs/rust/src/opendal/services/gcs/mod.rs.html
index 8f419b88..48bb35e6 100644
--- a/docs/rust/src/opendal/services/gcs/mod.rs.html
+++ b/docs/rust/src/opendal/services/gcs/mod.rs.html
@@ -47,4 +47,4 @@
 <span class="kw">mod </span>uri;
 <span class="kw">mod </span>writer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/gcs/pager.rs.html b/docs/rust/src/opendal/services/gcs/pager.rs.html
index f35b9c6d..f834c2e4 100644
--- a/docs/rust/src/opendal/services/gcs/pager.rs.html
+++ b/docs/rust/src/opendal/services/gcs/pager.rs.html
@@ -615,4 +615,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/gcs/uri.rs.html b/docs/rust/src/opendal/services/gcs/uri.rs.html
index b97d0def..8b6ed8fc 100644
--- a/docs/rust/src/opendal/services/gcs/uri.rs.html
+++ b/docs/rust/src/opendal/services/gcs/uri.rs.html
@@ -149,4 +149,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/gcs/writer.rs.html b/docs/rust/src/opendal/services/gcs/writer.rs.html
index 5087b0c8..07d05eea 100644
--- a/docs/rust/src/opendal/services/gcs/writer.rs.html
+++ b/docs/rust/src/opendal/services/gcs/writer.rs.html
@@ -161,4 +161,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ghac/backend.rs.html b/docs/rust/src/opendal/services/ghac/backend.rs.html
index 6f4c63ad..3a9bb81b 100644
--- a/docs/rust/src/opendal/services/ghac/backend.rs.html
+++ b/docs/rust/src/opendal/services/ghac/backend.rs.html
@@ -1291,4 +1291,4 @@
     size: u64,
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ghac/error.rs.html b/docs/rust/src/opendal/services/ghac/error.rs.html
index eaf4a525..e8446dda 100644
--- a/docs/rust/src/opendal/services/ghac/error.rs.html
+++ b/docs/rust/src/opendal/services/ghac/error.rs.html
@@ -101,4 +101,4 @@
     <span class="prelude-val">Ok</span>(err)
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ghac/mod.rs.html b/docs/rust/src/opendal/services/ghac/mod.rs.html
index 0e94bed4..343385e7 100644
--- a/docs/rust/src/opendal/services/ghac/mod.rs.html
+++ b/docs/rust/src/opendal/services/ghac/mod.rs.html
@@ -43,4 +43,4 @@
 <span class="kw">mod </span>error;
 <span class="kw">mod </span>writer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ghac/writer.rs.html b/docs/rust/src/opendal/services/ghac/writer.rs.html
index c2d40c24..6c1de765 100644
--- a/docs/rust/src/opendal/services/ghac/writer.rs.html
+++ b/docs/rust/src/opendal/services/ghac/writer.rs.html
@@ -173,4 +173,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/hdfs/backend.rs.html b/docs/rust/src/opendal/services/hdfs/backend.rs.html
index 5813976d..5f279537 100644
--- a/docs/rust/src/opendal/services/hdfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/hdfs/backend.rs.html
@@ -1163,4 +1163,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/hdfs/error.rs.html b/docs/rust/src/opendal/services/hdfs/error.rs.html
index 71752063..c8fd96ab 100644
--- a/docs/rust/src/opendal/services/hdfs/error.rs.html
+++ b/docs/rust/src/opendal/services/hdfs/error.rs.html
@@ -89,4 +89,4 @@
     err
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/hdfs/mod.rs.html b/docs/rust/src/opendal/services/hdfs/mod.rs.html
index 235f588f..0f9b9198 100644
--- a/docs/rust/src/opendal/services/hdfs/mod.rs.html
+++ b/docs/rust/src/opendal/services/hdfs/mod.rs.html
@@ -45,4 +45,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/hdfs/pager.rs.html b/docs/rust/src/opendal/services/hdfs/pager.rs.html
index 274cefbb..87390115 100644
--- a/docs/rust/src/opendal/services/hdfs/pager.rs.html
+++ b/docs/rust/src/opendal/services/hdfs/pager.rs.html
@@ -207,4 +207,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/hdfs/writer.rs.html b/docs/rust/src/opendal/services/hdfs/writer.rs.html
index ae920f99..a333bc79 100644
--- a/docs/rust/src/opendal/services/hdfs/writer.rs.html
+++ b/docs/rust/src/opendal/services/hdfs/writer.rs.html
@@ -221,4 +221,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/http/backend.rs.html b/docs/rust/src/opendal/services/http/backend.rs.html
index 71745ec5..2a90a192 100644
--- a/docs/rust/src/opendal/services/http/backend.rs.html
+++ b/docs/rust/src/opendal/services/http/backend.rs.html
@@ -927,4 +927,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/http/error.rs.html b/docs/rust/src/opendal/services/http/error.rs.html
index 2796851d..9794c93f 100644
--- a/docs/rust/src/opendal/services/http/error.rs.html
+++ b/docs/rust/src/opendal/services/http/error.rs.html
@@ -97,4 +97,4 @@
     <span class="prelude-val">Ok</span>(err)
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/http/mod.rs.html b/docs/rust/src/opendal/services/http/mod.rs.html
index 879100c4..33627f95 100644
--- a/docs/rust/src/opendal/services/http/mod.rs.html
+++ b/docs/rust/src/opendal/services/http/mod.rs.html
@@ -41,4 +41,4 @@
 
 <span class="kw">mod </span>error;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ipfs/backend.rs.html b/docs/rust/src/opendal/services/ipfs/backend.rs.html
index dda4975f..c4877bd1 100644
--- a/docs/rust/src/opendal/services/ipfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/ipfs/backend.rs.html
@@ -1027,4 +1027,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ipfs/error.rs.html b/docs/rust/src/opendal/services/ipfs/error.rs.html
index 81de71a5..ffb84570 100644
--- a/docs/rust/src/opendal/services/ipfs/error.rs.html
+++ b/docs/rust/src/opendal/services/ipfs/error.rs.html
@@ -101,4 +101,4 @@
     <span class="prelude-val">Ok</span>(err)
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ipfs/ipld.rs.html b/docs/rust/src/opendal/services/ipfs/ipld.rs.html
index 19b60c4a..437529c0 100644
--- a/docs/rust/src/opendal/services/ipfs/ipld.rs.html
+++ b/docs/rust/src/opendal/services/ipfs/ipld.rs.html
@@ -323,4 +323,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ipfs/mod.rs.html b/docs/rust/src/opendal/services/ipfs/mod.rs.html
index 740d629f..3924e6dc 100644
--- a/docs/rust/src/opendal/services/ipfs/mod.rs.html
+++ b/docs/rust/src/opendal/services/ipfs/mod.rs.html
@@ -43,4 +43,4 @@
 <span class="kw">mod </span>error;
 <span class="kw">mod </span>ipld;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ipmfs/backend.rs.html b/docs/rust/src/opendal/services/ipmfs/backend.rs.html
index 915e4dfd..964e3b8a 100644
--- a/docs/rust/src/opendal/services/ipmfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/ipmfs/backend.rs.html
@@ -619,4 +619,4 @@
     </span>file_type: String,
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ipmfs/builder.rs.html b/docs/rust/src/opendal/services/ipmfs/builder.rs.html
index 896ed65a..5bb14a75 100644
--- a/docs/rust/src/opendal/services/ipmfs/builder.rs.html
+++ b/docs/rust/src/opendal/services/ipmfs/builder.rs.html
@@ -289,4 +289,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ipmfs/error.rs.html b/docs/rust/src/opendal/services/ipmfs/error.rs.html
index db0f0259..8fc48ca8 100644
--- a/docs/rust/src/opendal/services/ipmfs/error.rs.html
+++ b/docs/rust/src/opendal/services/ipmfs/error.rs.html
@@ -165,4 +165,4 @@
     <span class="prelude-val">Ok</span>(err)
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ipmfs/mod.rs.html b/docs/rust/src/opendal/services/ipmfs/mod.rs.html
index 02958793..4b4f30cb 100644
--- a/docs/rust/src/opendal/services/ipmfs/mod.rs.html
+++ b/docs/rust/src/opendal/services/ipmfs/mod.rs.html
@@ -47,4 +47,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ipmfs/pager.rs.html b/docs/rust/src/opendal/services/ipmfs/pager.rs.html
index 38efdefa..bf7747bb 100644
--- a/docs/rust/src/opendal/services/ipmfs/pager.rs.html
+++ b/docs/rust/src/opendal/services/ipmfs/pager.rs.html
@@ -269,4 +269,4 @@
     </span>entries: <span class="prelude-ty">Option</span>&lt;Vec&lt;IpfsLsResponseEntry&gt;&gt;,
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/ipmfs/writer.rs.html b/docs/rust/src/opendal/services/ipmfs/writer.rs.html
index d1779ca9..0716fb5a 100644
--- a/docs/rust/src/opendal/services/ipmfs/writer.rs.html
+++ b/docs/rust/src/opendal/services/ipmfs/writer.rs.html
@@ -139,4 +139,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/memcached/ascii.rs.html b/docs/rust/src/opendal/services/memcached/ascii.rs.html
index fb02a99b..eb9ab205 100644
--- a/docs/rust/src/opendal/services/memcached/ascii.rs.html
+++ b/docs/rust/src/opendal/services/memcached/ascii.rs.html
@@ -289,4 +289,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/memcached/backend.rs.html b/docs/rust/src/opendal/services/memcached/backend.rs.html
index cfad1146..b3ceecd4 100644
--- a/docs/rust/src/opendal/services/memcached/backend.rs.html
+++ b/docs/rust/src/opendal/services/memcached/backend.rs.html
@@ -659,4 +659,4 @@
     </span>}
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/memcached/mod.rs.html b/docs/rust/src/opendal/services/memcached/mod.rs.html
index 2012ae02..66588fba 100644
--- a/docs/rust/src/opendal/services/memcached/mod.rs.html
+++ b/docs/rust/src/opendal/services/memcached/mod.rs.html
@@ -41,4 +41,4 @@
 
 <span class="kw">mod </span>ascii;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/memory/backend.rs.html b/docs/rust/src/opendal/services/memory/backend.rs.html
index b1856bf8..ac8c4e87 100644
--- a/docs/rust/src/opendal/services/memory/backend.rs.html
+++ b/docs/rust/src/opendal/services/memory/backend.rs.html
@@ -283,4 +283,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/memory/mod.rs.html b/docs/rust/src/opendal/services/memory/mod.rs.html
index 13f2c0d4..129edbe7 100644
--- a/docs/rust/src/opendal/services/memory/mod.rs.html
+++ b/docs/rust/src/opendal/services/memory/mod.rs.html
@@ -37,4 +37,4 @@
 </span><span class="kw">mod </span>backend;
 <span class="kw">pub use </span>backend::MemoryBuilder <span class="kw">as </span>Memory;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/mod.rs.html b/docs/rust/src/opendal/services/mod.rs.html
index bd0809b4..f08ecb6c 100644
--- a/docs/rust/src/opendal/services/mod.rs.html
+++ b/docs/rust/src/opendal/services/mod.rs.html
@@ -207,4 +207,4 @@
 <span class="kw">mod </span>webhdfs;
 <span class="kw">pub use </span>webhdfs::Webhdfs;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/moka/backend.rs.html b/docs/rust/src/opendal/services/moka/backend.rs.html
index 104ceef1..66bb49f7 100644
--- a/docs/rust/src/opendal/services/moka/backend.rs.html
+++ b/docs/rust/src/opendal/services/moka/backend.rs.html
@@ -473,4 +473,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/moka/mod.rs.html b/docs/rust/src/opendal/services/moka/mod.rs.html
index 4a30a4b3..0bdb00e6 100644
--- a/docs/rust/src/opendal/services/moka/mod.rs.html
+++ b/docs/rust/src/opendal/services/moka/mod.rs.html
@@ -37,4 +37,4 @@
 </span><span class="kw">mod </span>backend;
 <span class="kw">pub use </span>backend::MokaBuilder <span class="kw">as </span>Moka;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/obs/backend.rs.html b/docs/rust/src/opendal/services/obs/backend.rs.html
index de9972aa..5e6c292a 100644
--- a/docs/rust/src/opendal/services/obs/backend.rs.html
+++ b/docs/rust/src/opendal/services/obs/backend.rs.html
@@ -1079,4 +1079,4 @@
     </span>}
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/obs/error.rs.html b/docs/rust/src/opendal/services/obs/error.rs.html
index 256a7297..3a0873eb 100644
--- a/docs/rust/src/opendal/services/obs/error.rs.html
+++ b/docs/rust/src/opendal/services/obs/error.rs.html
@@ -205,4 +205,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/obs/mod.rs.html b/docs/rust/src/opendal/services/obs/mod.rs.html
index f0d6bec1..0d96def3 100644
--- a/docs/rust/src/opendal/services/obs/mod.rs.html
+++ b/docs/rust/src/opendal/services/obs/mod.rs.html
@@ -45,4 +45,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/obs/pager.rs.html b/docs/rust/src/opendal/services/obs/pager.rs.html
index bc020df6..63df940b 100644
--- a/docs/rust/src/opendal/services/obs/pager.rs.html
+++ b/docs/rust/src/opendal/services/obs/pager.rs.html
@@ -435,4 +435,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/obs/writer.rs.html b/docs/rust/src/opendal/services/obs/writer.rs.html
index 1cdf626d..d38ae998 100644
--- a/docs/rust/src/opendal/services/obs/writer.rs.html
+++ b/docs/rust/src/opendal/services/obs/writer.rs.html
@@ -161,4 +161,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/oss/backend.rs.html b/docs/rust/src/opendal/services/oss/backend.rs.html
index 8c670774..6c86fccf 100644
--- a/docs/rust/src/opendal/services/oss/backend.rs.html
+++ b/docs/rust/src/opendal/services/oss/backend.rs.html
@@ -1833,4 +1833,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/oss/error.rs.html b/docs/rust/src/opendal/services/oss/error.rs.html
index eb0fdd8b..e3ab07ae 100644
--- a/docs/rust/src/opendal/services/oss/error.rs.html
+++ b/docs/rust/src/opendal/services/oss/error.rs.html
@@ -205,4 +205,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/oss/mod.rs.html b/docs/rust/src/opendal/services/oss/mod.rs.html
index f388bf7a..d6d5ebc7 100644
--- a/docs/rust/src/opendal/services/oss/mod.rs.html
+++ b/docs/rust/src/opendal/services/oss/mod.rs.html
@@ -45,4 +45,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/oss/pager.rs.html b/docs/rust/src/opendal/services/oss/pager.rs.html
index 9131e3f4..0c178259 100644
--- a/docs/rust/src/opendal/services/oss/pager.rs.html
+++ b/docs/rust/src/opendal/services/oss/pager.rs.html
@@ -503,4 +503,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/oss/writer.rs.html b/docs/rust/src/opendal/services/oss/writer.rs.html
index 79126ecf..8b7ab95a 100644
--- a/docs/rust/src/opendal/services/oss/writer.rs.html
+++ b/docs/rust/src/opendal/services/oss/writer.rs.html
@@ -165,4 +165,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/redis/backend.rs.html b/docs/rust/src/opendal/services/redis/backend.rs.html
index c5b87817..f7573039 100644
--- a/docs/rust/src/opendal/services/redis/backend.rs.html
+++ b/docs/rust/src/opendal/services/redis/backend.rs.html
@@ -709,4 +709,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/redis/mod.rs.html b/docs/rust/src/opendal/services/redis/mod.rs.html
index c95eb248..50fbadcb 100644
--- a/docs/rust/src/opendal/services/redis/mod.rs.html
+++ b/docs/rust/src/opendal/services/redis/mod.rs.html
@@ -37,4 +37,4 @@
 </span><span class="kw">mod </span>backend;
 <span class="kw">pub use </span>backend::RedisBuilder <span class="kw">as </span>Redis;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/rocksdb/backend.rs.html b/docs/rust/src/opendal/services/rocksdb/backend.rs.html
index 809097ec..06e3287d 100644
--- a/docs/rust/src/opendal/services/rocksdb/backend.rs.html
+++ b/docs/rust/src/opendal/services/rocksdb/backend.rs.html
@@ -391,4 +391,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/rocksdb/mod.rs.html b/docs/rust/src/opendal/services/rocksdb/mod.rs.html
index 7bff3c08..a1bc0337 100644
--- a/docs/rust/src/opendal/services/rocksdb/mod.rs.html
+++ b/docs/rust/src/opendal/services/rocksdb/mod.rs.html
@@ -37,4 +37,4 @@
 </span><span class="kw">mod </span>backend;
 <span class="kw">pub use </span>backend::RocksdbBuilder <span class="kw">as </span>Rocksdb;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/s3/backend.rs.html b/docs/rust/src/opendal/services/s3/backend.rs.html
index 38048419..7b394617 100644
--- a/docs/rust/src/opendal/services/s3/backend.rs.html
+++ b/docs/rust/src/opendal/services/s3/backend.rs.html
@@ -3755,4 +3755,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/s3/error.rs.html b/docs/rust/src/opendal/services/s3/error.rs.html
index 91d211d6..cfe2fbb5 100644
--- a/docs/rust/src/opendal/services/s3/error.rs.html
+++ b/docs/rust/src/opendal/services/s3/error.rs.html
@@ -211,4 +211,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/s3/mod.rs.html b/docs/rust/src/opendal/services/s3/mod.rs.html
index 20b5a449..54fbe7d8 100644
--- a/docs/rust/src/opendal/services/s3/mod.rs.html
+++ b/docs/rust/src/opendal/services/s3/mod.rs.html
@@ -45,4 +45,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/s3/pager.rs.html b/docs/rust/src/opendal/services/s3/pager.rs.html
index 36819e82..4f808a6b 100644
--- a/docs/rust/src/opendal/services/s3/pager.rs.html
+++ b/docs/rust/src/opendal/services/s3/pager.rs.html
@@ -505,4 +505,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/s3/writer.rs.html b/docs/rust/src/opendal/services/s3/writer.rs.html
index 92fe7249..16499217 100644
--- a/docs/rust/src/opendal/services/s3/writer.rs.html
+++ b/docs/rust/src/opendal/services/s3/writer.rs.html
@@ -307,4 +307,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/sled/backend.rs.html b/docs/rust/src/opendal/services/sled/backend.rs.html
index cc56c934..09e1ce8c 100644
--- a/docs/rust/src/opendal/services/sled/backend.rs.html
+++ b/docs/rust/src/opendal/services/sled/backend.rs.html
@@ -381,4 +381,4 @@
     Error::new(ErrorKind::Unexpected, <span class="string">&quot;error from sled&quot;</span>).set_source(err)
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/sled/mod.rs.html b/docs/rust/src/opendal/services/sled/mod.rs.html
index 1ed16ce6..e31e69e9 100644
--- a/docs/rust/src/opendal/services/sled/mod.rs.html
+++ b/docs/rust/src/opendal/services/sled/mod.rs.html
@@ -39,4 +39,4 @@
 
 <span class="kw">pub use </span>backend::SledBuilder <span class="kw">as </span>Sled;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/webdav/backend.rs.html b/docs/rust/src/opendal/services/webdav/backend.rs.html
index 0dafda25..ac717b9c 100644
--- a/docs/rust/src/opendal/services/webdav/backend.rs.html
+++ b/docs/rust/src/opendal/services/webdav/backend.rs.html
@@ -1145,4 +1145,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/webdav/error.rs.html b/docs/rust/src/opendal/services/webdav/error.rs.html
index 00b2ea4d..1fa8d6e1 100644
--- a/docs/rust/src/opendal/services/webdav/error.rs.html
+++ b/docs/rust/src/opendal/services/webdav/error.rs.html
@@ -97,4 +97,4 @@
     <span class="prelude-val">Ok</span>(err)
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/webdav/list_response.rs.html b/docs/rust/src/opendal/services/webdav/list_response.rs.html
index fc3d3808..6b69203c 100644
--- a/docs/rust/src/opendal/services/webdav/list_response.rs.html
+++ b/docs/rust/src/opendal/services/webdav/list_response.rs.html
@@ -863,4 +863,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/webdav/mod.rs.html b/docs/rust/src/opendal/services/webdav/mod.rs.html
index b26df7fd..c9b90bae 100644
--- a/docs/rust/src/opendal/services/webdav/mod.rs.html
+++ b/docs/rust/src/opendal/services/webdav/mod.rs.html
@@ -47,4 +47,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/webdav/pager.rs.html b/docs/rust/src/opendal/services/webdav/pager.rs.html
index 98bcf628..40f85b64 100644
--- a/docs/rust/src/opendal/services/webdav/pager.rs.html
+++ b/docs/rust/src/opendal/services/webdav/pager.rs.html
@@ -163,4 +163,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/webdav/writer.rs.html b/docs/rust/src/opendal/services/webdav/writer.rs.html
index 4443ea73..72b5aa27 100644
--- a/docs/rust/src/opendal/services/webdav/writer.rs.html
+++ b/docs/rust/src/opendal/services/webdav/writer.rs.html
@@ -155,4 +155,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/webhdfs/backend.rs.html b/docs/rust/src/opendal/services/webhdfs/backend.rs.html
index 7a1cf6db..ce9a583d 100644
--- a/docs/rust/src/opendal/services/webhdfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/webhdfs/backend.rs.html
@@ -1385,4 +1385,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/webhdfs/error.rs.html b/docs/rust/src/opendal/services/webhdfs/error.rs.html
index eebd9aec..c5e19c77 100644
--- a/docs/rust/src/opendal/services/webhdfs/error.rs.html
+++ b/docs/rust/src/opendal/services/webhdfs/error.rs.html
@@ -249,4 +249,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/webhdfs/message.rs.html b/docs/rust/src/opendal/services/webhdfs/message.rs.html
index a93eaffc..ceb93dc0 100644
--- a/docs/rust/src/opendal/services/webhdfs/message.rs.html
+++ b/docs/rust/src/opendal/services/webhdfs/message.rs.html
@@ -367,4 +367,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/webhdfs/mod.rs.html b/docs/rust/src/opendal/services/webhdfs/mod.rs.html
index a096ff2e..0bbdb7d4 100644
--- a/docs/rust/src/opendal/services/webhdfs/mod.rs.html
+++ b/docs/rust/src/opendal/services/webhdfs/mod.rs.html
@@ -47,4 +47,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/webhdfs/pager.rs.html b/docs/rust/src/opendal/services/webhdfs/pager.rs.html
index 6ab98820..ec9db894 100644
--- a/docs/rust/src/opendal/services/webhdfs/pager.rs.html
+++ b/docs/rust/src/opendal/services/webhdfs/pager.rs.html
@@ -119,4 +119,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/services/webhdfs/writer.rs.html b/docs/rust/src/opendal/services/webhdfs/writer.rs.html
index 75a2aa38..0de320a4 100644
--- a/docs/rust/src/opendal/services/webhdfs/writer.rs.html
+++ b/docs/rust/src/opendal/services/webhdfs/writer.rs.html
@@ -155,4 +155,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/builder.rs.html b/docs/rust/src/opendal/types/builder.rs.html
index e8d5161a..de5370e4 100644
--- a/docs/rust/src/opendal/types/builder.rs.html
+++ b/docs/rust/src/opendal/types/builder.rs.html
@@ -151,4 +151,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/entry.rs.html b/docs/rust/src/opendal/types/entry.rs.html
index 2169f094..c53c84c9 100644
--- a/docs/rust/src/opendal/types/entry.rs.html
+++ b/docs/rust/src/opendal/types/entry.rs.html
@@ -159,4 +159,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/error.rs.html b/docs/rust/src/opendal/types/error.rs.html
index 0f10f5dd..82de038e 100644
--- a/docs/rust/src/opendal/types/error.rs.html
+++ b/docs/rust/src/opendal/types/error.rs.html
@@ -719,4 +719,4 @@ Source: networking error
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/list.rs.html b/docs/rust/src/opendal/types/list.rs.html
index 1c7897b1..06041746 100644
--- a/docs/rust/src/opendal/types/list.rs.html
+++ b/docs/rust/src/opendal/types/list.rs.html
@@ -371,4 +371,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/metadata.rs.html b/docs/rust/src/opendal/types/metadata.rs.html
index 9fb5d58e..647d845b 100644
--- a/docs/rust/src/opendal/types/metadata.rs.html
+++ b/docs/rust/src/opendal/types/metadata.rs.html
@@ -847,4 +847,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/mod.rs.html b/docs/rust/src/opendal/types/mod.rs.html
index 1ad1863b..868638db 100644
--- a/docs/rust/src/opendal/types/mod.rs.html
+++ b/docs/rust/src/opendal/types/mod.rs.html
@@ -113,4 +113,4 @@
 
 <span class="kw">pub mod </span>ops;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/mode.rs.html b/docs/rust/src/opendal/types/mode.rs.html
index b8766540..9c857b69 100644
--- a/docs/rust/src/opendal/types/mode.rs.html
+++ b/docs/rust/src/opendal/types/mode.rs.html
@@ -113,4 +113,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
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 7b9dfab8..11c5b399 100644
--- a/docs/rust/src/opendal/types/operator/blocking_operator.rs.html
+++ b/docs/rust/src/opendal/types/operator/blocking_operator.rs.html
@@ -1303,4 +1303,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/operator/builder.rs.html b/docs/rust/src/opendal/types/operator/builder.rs.html
index be16e7db..01fb28d1 100644
--- a/docs/rust/src/opendal/types/operator/builder.rs.html
+++ b/docs/rust/src/opendal/types/operator/builder.rs.html
@@ -551,4 +551,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/operator/metadata.rs.html b/docs/rust/src/opendal/types/operator/metadata.rs.html
index 601a6d5c..36737d7f 100644
--- a/docs/rust/src/opendal/types/operator/metadata.rs.html
+++ b/docs/rust/src/opendal/types/operator/metadata.rs.html
@@ -167,4 +167,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/operator/mod.rs.html b/docs/rust/src/opendal/types/operator/mod.rs.html
index e289bc10..b149a536 100644
--- a/docs/rust/src/opendal/types/operator/mod.rs.html
+++ b/docs/rust/src/opendal/types/operator/mod.rs.html
@@ -61,4 +61,4 @@
 <span class="kw">mod </span>metadata;
 <span class="kw">pub use </span>metadata::OperatorInfo;
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></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 f62bb092..63d89b19 100644
--- a/docs/rust/src/opendal/types/operator/operator.rs.html
+++ b/docs/rust/src/opendal/types/operator/operator.rs.html
@@ -2041,4 +2041,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/ops.rs.html b/docs/rust/src/opendal/types/ops.rs.html
index 7e107dd7..602021be 100644
--- a/docs/rust/src/opendal/types/ops.rs.html
+++ b/docs/rust/src/opendal/types/ops.rs.html
@@ -631,4 +631,4 @@
     </span>}
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/reader.rs.html b/docs/rust/src/opendal/types/reader.rs.html
index 4bae574f..7630d99e 100644
--- a/docs/rust/src/opendal/types/reader.rs.html
+++ b/docs/rust/src/opendal/types/reader.rs.html
@@ -657,4 +657,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/scheme.rs.html b/docs/rust/src/opendal/types/scheme.rs.html
index fe7daae3..682a3735 100644
--- a/docs/rust/src/opendal/types/scheme.rs.html
+++ b/docs/rust/src/opendal/types/scheme.rs.html
@@ -399,4 +399,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/src/opendal/types/writer.rs.html b/docs/rust/src/opendal/types/writer.rs.html
index 81d898ac..9e46f03f 100644
--- a/docs/rust/src/opendal/types/writer.rs.html
+++ b/docs/rust/src/opendal/types/writer.rs.html
@@ -439,4 +439,4 @@
     }
 }
 </code></pre></div>
-</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
+</section></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.1 (8460ca823 2023-03-20)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/index.html b/index.html
index c8571a2b..9d32bd36 100644
--- a/index.html
+++ b/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <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" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docse [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.b5734492.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.9cea6454.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div id="docusaurus-base-url-issue-banner-container"></div><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hid [...]
-<script src="/assets/js/runtime~main.b5734492.js"></script>
+<script src="/assets/js/runtime~main.9cea6454.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file