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/15 16:43:07 UTC

[incubator-opendal] branch gh-pages updated: deploy: c9e8200e941c444fa93b62297c6c6cf33ab82a90

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 85f5c4a3 deploy: c9e8200e941c444fa93b62297c6c6cf33ab82a90
85f5c4a3 is described below

commit 85f5c4a3d8f081fc7c3ddab7038b3a9f1013f3e3
Author: Xuanwo <Xu...@users.noreply.github.com>
AuthorDate: Wed Mar 15 16:43:01 2023 +0000

    deploy: c9e8200e941c444fa93b62297c6c6cf33ab82a90
---
 404.html                                           |  12 +-
 .../{1db64337.94f59b4d.js => 1db64337.08fc4214.js} |   2 +-
 assets/js/{main.33c219a8.js => main.7720ffc7.js}   |   4 +-
 ...js.LICENSE.txt => main.7720ffc7.js.LICENSE.txt} |   0
 ...e~main.22dfcbc7.js => runtime~main.cdb342b4.js} |   2 +-
 docs/overview/index.html                           |  12 +-
 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        |   6 +-
 docs/rust/opendal/docs/comparisons/index.html      |   4 +-
 .../docs/comparisons/vs_object_store/index.html    |   4 +-
 docs/rust/opendal/docs/concepts/index.html         |   4 +-
 docs/rust/opendal/docs/features/index.html         |   4 +-
 docs/rust/opendal/docs/index.html                  |   4 +-
 .../opendal/docs/internals/accessor/index.html     |  12 +-
 docs/rust/opendal/docs/internals/index.html        |   4 +-
 docs/rust/opendal/docs/internals/layer/index.html  |   4 +-
 docs/rust/opendal/docs/rfcs/index.html             |   4 +-
 .../opendal/docs/rfcs/rfc_0000_example/index.html  |   4 +-
 .../rfcs/rfc_0041_object_native_api/index.html     |   4 +-
 .../docs/rfcs/rfc_0044_error_handle/index.html     |   4 +-
 .../docs/rfcs/rfc_0057_auto_region/index.html      |   4 +-
 .../docs/rfcs/rfc_0069_object_stream/index.html    |   4 +-
 .../docs/rfcs/rfc_0090_limited_reader/index.html   |   4 +-
 .../rfcs/rfc_0112_path_normalization/index.html    |   4 +-
 .../rfcs/rfc_0191_async_streaming_io/index.html    |   4 +-
 .../rfcs/rfc_0203_remove_credential/index.html     |   4 +-
 .../docs/rfcs/rfc_0221_create_dir/index.html       |   4 +-
 .../docs/rfcs/rfc_0247_retryable_error/index.html  |   4 +-
 .../docs/rfcs/rfc_0293_object_id/index.html        |   4 +-
 .../docs/rfcs/rfc_0337_dir_entry/index.html        |   4 +-
 .../rfcs/rfc_0409_accessor_capabilities/index.html |   4 +-
 .../opendal/docs/rfcs/rfc_0413_presign/index.html  |   4 +-
 .../rfc_0423_command_line_interface/index.html     |   4 +-
 .../docs/rfcs/rfc_0429_init_from_iter/index.html   |   4 +-
 .../docs/rfcs/rfc_0438_multipart/index.html        |   4 +-
 .../opendal/docs/rfcs/rfc_0443_gateway/index.html  |   4 +-
 .../docs/rfcs/rfc_0501_new_builder/index.html      |   4 +-
 .../docs/rfcs/rfc_0554_write_refactor/index.html   |   4 +-
 .../rfcs/rfc_0561_list_metadata_reuse/index.html   |   4 +-
 .../docs/rfcs/rfc_0599_blocking_api/index.html     |   4 +-
 .../docs/rfcs/rfc_0623_redis_service/index.html    |   4 +-
 .../rfcs/rfc_0627_split_capabilities/index.html    |   4 +-
 .../docs/rfcs/rfc_0661_path_in_accessor/index.html |   4 +-
 .../rfcs/rfc_0793_generic_kv_services/index.html   |   4 +-
 .../docs/rfcs/rfc_0926_object_reader/index.html    |   4 +-
 .../docs/rfcs/rfc_0977_refactor_error/index.html   |   4 +-
 .../docs/rfcs/rfc_1085_object_handler/index.html   |   4 +-
 .../rfcs/rfc_1391_object_metadataer/index.html     |   4 +-
 .../rfcs/rfc_1398_query_based_metadata/index.html  |   4 +-
 .../docs/rfcs/rfc_1420_object_writer/index.html    |   4 +-
 .../rfcs/rfc_1477_remove_object_concept/index.html |   4 +-
 docs/rust/opendal/docs/upgrade/index.html          |  20 +-
 docs/rust/opendal/enum.EntryMode.html              |  28 +--
 docs/rust/opendal/enum.ErrorKind.html              |  28 +--
 docs/rust/opendal/enum.Metakey.html                |  24 +--
 docs/rust/opendal/enum.Scheme.html                 |  34 ++--
 docs/rust/opendal/index.html                       |   4 +-
 docs/rust/opendal/layers/index.html                |   4 +-
 docs/rust/opendal/layers/struct.ChaosLayer.html    |  20 +-
 .../layers/struct.ConcurrentLimitLayer.html        |  20 +-
 .../opendal/layers/struct.ImmutableIndexLayer.html |  22 +--
 docs/rust/opendal/layers/struct.LoggingLayer.html  |  22 +--
 docs/rust/opendal/layers/struct.MetricsLayer.html  |  18 +-
 docs/rust/opendal/layers/struct.RetryLayer.html    |  30 +--
 docs/rust/opendal/layers/struct.TracingLayer.html  |  18 +-
 docs/rust/opendal/ops/enum.BatchOperations.html    |  30 +--
 docs/rust/opendal/ops/enum.PresignOperation.html   |  22 +--
 docs/rust/opendal/ops/index.html                   |   4 +-
 docs/rust/opendal/ops/struct.OpBatch.html          |  24 +--
 docs/rust/opendal/ops/struct.OpCreate.html         |  22 +--
 docs/rust/opendal/ops/struct.OpDelete.html         |  20 +-
 docs/rust/opendal/ops/struct.OpList.html           |  24 +--
 docs/rust/opendal/ops/struct.OpPresign.html        |  24 +--
 docs/rust/opendal/ops/struct.OpRead.html           |  24 +--
 docs/rust/opendal/ops/struct.OpScan.html           |  24 +--
 docs/rust/opendal/ops/struct.OpStat.html           |  20 +-
 docs/rust/opendal/ops/struct.OpWrite.html          |  28 +--
 docs/rust/opendal/raw/adapters/index.html          |   4 +-
 docs/rust/opendal/raw/adapters/kv/index.html       |   4 +-
 .../opendal/raw/adapters/kv/struct.Backend.html    |  32 ++--
 .../opendal/raw/adapters/kv/struct.Metadata.html   |  26 +--
 .../opendal/raw/adapters/kv/trait.Adapter.html     |  40 ++--
 docs/rust/opendal/raw/constant.VERSION.html        |   4 +-
 docs/rust/opendal/raw/enum.AccessorCapability.html |  24 +--
 docs/rust/opendal/raw/enum.AccessorHint.html       |  24 +--
 docs/rust/opendal/raw/enum.AsyncBody.html          |  24 +--
 docs/rust/opendal/raw/enum.BatchedResults.html     |  32 ++--
 docs/rust/opendal/raw/enum.Body.html               |  54 +++---
 docs/rust/opendal/raw/enum.Operation.html          |  30 +--
 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 |   4 +-
 .../opendal/raw/fn.new_json_serialize_error.html   |   4 +-
 .../opendal/raw/fn.new_request_build_error.html    |   4 +-
 .../opendal/raw/fn.new_request_sign_error.html     |   4 +-
 .../opendal/raw/fn.new_xml_deserialize_error.html  |   4 +-
 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 |   4 +-
 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                   |   4 +-
 docs/rust/opendal/raw/oio/enum.PageOperation.html  |  28 +--
 docs/rust/opendal/raw/oio/enum.ReadOperation.html  |  28 +--
 docs/rust/opendal/raw/oio/enum.WriteOperation.html |  28 +--
 .../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               |   4 +-
 .../raw/oio/into_blocking_reader/fn.from_fd.html   |   4 +-
 .../raw/oio/into_blocking_reader/index.html        |   4 +-
 .../oio/into_blocking_reader/struct.FdReader.html  |  20 +-
 .../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   |   4 +-
 .../raw/oio/into_reader/struct.FdReader.html       |  20 +-
 .../raw/oio/into_reader/struct.RangeReader.html    |  18 +-
 docs/rust/opendal/raw/oio/struct.Cursor.html       |  22 +--
 docs/rust/opendal/raw/oio/struct.Entry.html        |  34 ++--
 .../raw/oio/struct.IntoStreamableReader.html       |  18 +-
 docs/rust/opendal/raw/oio/struct.ToFlatPager.html  |  18 +-
 .../opendal/raw/oio/struct.ToHierarchyPager.html   |  18 +-
 docs/rust/opendal/raw/oio/trait.BlockingPage.html  |  10 +-
 docs/rust/opendal/raw/oio/trait.BlockingRead.html  |  24 +--
 docs/rust/opendal/raw/oio/trait.BlockingWrite.html |  20 +-
 docs/rust/opendal/raw/oio/trait.Page.html          |  10 +-
 docs/rust/opendal/raw/oio/trait.Read.html          |  24 +--
 docs/rust/opendal/raw/oio/trait.ReadExt.html       |  16 +-
 docs/rust/opendal/raw/oio/trait.Write.html         |  20 +-
 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     |  38 ++--
 .../rust/opendal/raw/struct.BytesContentRange.html |  40 ++--
 docs/rust/opendal/raw/struct.BytesRange.html       |  36 ++--
 docs/rust/opendal/raw/struct.ErrorResponse.html    |  24 +--
 docs/rust/opendal/raw/struct.HttpClient.html       |  32 ++--
 .../rust/opendal/raw/struct.IncomingAsyncBody.html |  24 +--
 docs/rust/opendal/raw/struct.PresignedRequest.html |  26 +--
 docs/rust/opendal/raw/struct.RpBatch.html          |  24 +--
 docs/rust/opendal/raw/struct.RpCreate.html         |  18 +-
 docs/rust/opendal/raw/struct.RpDelete.html         |  18 +-
 docs/rust/opendal/raw/struct.RpList.html           |  18 +-
 docs/rust/opendal/raw/struct.RpPresign.html        |  22 +--
 docs/rust/opendal/raw/struct.RpRead.html           |  26 +--
 docs/rust/opendal/raw/struct.RpScan.html           |  18 +-
 docs/rust/opendal/raw/struct.RpStat.html           |  24 +--
 docs/rust/opendal/raw/struct.RpWrite.html          |  20 +-
 docs/rust/opendal/raw/trait.Accessor.html          |  92 ++++-----
 docs/rust/opendal/raw/trait.Layer.html             |  10 +-
 docs/rust/opendal/raw/trait.LayeredAccessor.html   |  40 ++--
 docs/rust/opendal/raw/type.FusedAccessor.html      |   4 +-
 docs/rust/opendal/services/index.html              |   4 +-
 docs/rust/opendal/services/struct.Azblob.html      |  34 ++--
 docs/rust/opendal/services/struct.Azdfs.html       |  30 +--
 docs/rust/opendal/services/struct.Dashmap.html     |  18 +-
 docs/rust/opendal/services/struct.Fs.html          |  24 +--
 docs/rust/opendal/services/struct.Ftp.html         |  26 +--
 docs/rust/opendal/services/struct.Gcs.html         |  36 ++--
 docs/rust/opendal/services/struct.Ghac.html        |  26 +--
 docs/rust/opendal/services/struct.Hdfs.html        |  22 +--
 docs/rust/opendal/services/struct.Http.html        |  30 +--
 docs/rust/opendal/services/struct.Ipfs.html        |  26 +--
 docs/rust/opendal/services/struct.Ipmfs.html       |  24 +--
 docs/rust/opendal/services/struct.Memcached.html   |  24 +--
 docs/rust/opendal/services/struct.Memory.html      |  18 +-
 docs/rust/opendal/services/struct.Moka.html        |  30 +--
 docs/rust/opendal/services/struct.Obs.html         |  30 +--
 docs/rust/opendal/services/struct.Oss.html         |  34 ++--
 docs/rust/opendal/services/struct.Redis.html       |  30 +--
 docs/rust/opendal/services/struct.Rocksdb.html     |  22 +--
 docs/rust/opendal/services/struct.S3.html          |  62 +++---
 docs/rust/opendal/services/struct.Sled.html        |  20 +-
 docs/rust/opendal/services/struct.Webdav.html      |  30 +--
 docs/rust/opendal/services/struct.Webhdfs.html     |  26 +--
 docs/rust/opendal/struct.BlockingLister.html       |  86 ++++-----
 docs/rust/opendal/struct.BlockingOperator.html     |  52 ++---
 docs/rust/opendal/struct.BlockingReader.html       | 110 +++++------
 docs/rust/opendal/struct.BlockingWriter.html       |  32 ++--
 docs/rust/opendal/struct.Entry.html                |  24 +--
 docs/rust/opendal/struct.Error.html                |  40 ++--
 docs/rust/opendal/struct.Lister.html               | 148 +++++++-------
 docs/rust/opendal/struct.Metadata.html             |  76 ++++----
 docs/rust/opendal/struct.Operator.html             |  86 ++++-----
 docs/rust/opendal/struct.OperatorBuilder.html      |  24 +--
 docs/rust/opendal/struct.OperatorInfo.html         |  38 ++--
 docs/rust/opendal/struct.Reader.html               | 212 ++++++++++-----------
 docs/rust/opendal/struct.Writer.html               |  28 +--
 docs/rust/opendal/trait.Builder.html               |  26 +--
 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 |   4 +-
 docs/rust/src/opendal/docs/concepts.rs.html        |   4 +-
 .../src/opendal/docs/internals/accessor.rs.html    |   4 +-
 docs/rust/src/opendal/docs/internals/layer.rs.html |   4 +-
 docs/rust/src/opendal/docs/internals/mod.rs.html   |   4 +-
 docs/rust/src/opendal/docs/mod.rs.html             |   4 +-
 docs/rust/src/opendal/docs/rfcs/mod.rs.html        |   4 +-
 docs/rust/src/opendal/layers/chaos.rs.html         |   4 +-
 docs/rust/src/opendal/layers/complete.rs.html      |   4 +-
 .../src/opendal/layers/concurrent_limit.rs.html    |   4 +-
 docs/rust/src/opendal/layers/error_context.rs.html |   4 +-
 .../src/opendal/layers/immutable_index.rs.html     |   4 +-
 docs/rust/src/opendal/layers/logging.rs.html       |   4 +-
 docs/rust/src/opendal/layers/metrics.rs.html       |   4 +-
 docs/rust/src/opendal/layers/mod.rs.html           |   4 +-
 docs/rust/src/opendal/layers/retry.rs.html         |   4 +-
 docs/rust/src/opendal/layers/tracing.rs.html       |   4 +-
 docs/rust/src/opendal/layers/type_eraser.rs.html   |   4 +-
 docs/rust/src/opendal/lib.rs.html                  |   4 +-
 docs/rust/src/opendal/raw/accessor.rs.html         |   4 +-
 docs/rust/src/opendal/raw/adapters/kv/api.rs.html  |   4 +-
 .../src/opendal/raw/adapters/kv/backend.rs.html    |   4 +-
 docs/rust/src/opendal/raw/adapters/kv/mod.rs.html  |   4 +-
 docs/rust/src/opendal/raw/adapters/mod.rs.html     |   4 +-
 docs/rust/src/opendal/raw/http_util/body.rs.html   |   4 +-
 .../raw/http_util/bytes_content_range.rs.html      |   4 +-
 .../src/opendal/raw/http_util/bytes_range.rs.html  |   4 +-
 docs/rust/src/opendal/raw/http_util/client.rs.html |   4 +-
 docs/rust/src/opendal/raw/http_util/dns.rs.html    |   4 +-
 docs/rust/src/opendal/raw/http_util/error.rs.html  |   4 +-
 docs/rust/src/opendal/raw/http_util/header.rs.html |   4 +-
 docs/rust/src/opendal/raw/http_util/mod.rs.html    |   4 +-
 docs/rust/src/opendal/raw/http_util/uri.rs.html    |   4 +-
 docs/rust/src/opendal/raw/layer.rs.html            |   4 +-
 docs/rust/src/opendal/raw/mod.rs.html              |   4 +-
 docs/rust/src/opendal/raw/oio/cursor.rs.html       |   4 +-
 docs/rust/src/opendal/raw/oio/entry.rs.html        |   4 +-
 .../raw/oio/into_blocking_reader/from_fd.rs.html   |   4 +-
 .../raw/oio/into_blocking_reader/mod.rs.html       |   4 +-
 .../opendal/raw/oio/into_reader/by_range.rs.html   |   4 +-
 .../opendal/raw/oio/into_reader/from_fd.rs.html    |   4 +-
 .../src/opendal/raw/oio/into_reader/mod.rs.html    |   4 +-
 .../src/opendal/raw/oio/into_streamable.rs.html    |   4 +-
 docs/rust/src/opendal/raw/oio/mod.rs.html          |   4 +-
 docs/rust/src/opendal/raw/oio/page.rs.html         |   4 +-
 docs/rust/src/opendal/raw/oio/read.rs.html         |   4 +-
 .../rust/src/opendal/raw/oio/to_flat_pager.rs.html |   4 +-
 .../src/opendal/raw/oio/to_hierarchy_pager.rs.html |   4 +-
 docs/rust/src/opendal/raw/oio/write.rs.html        |   4 +-
 docs/rust/src/opendal/raw/operation.rs.html        |   4 +-
 docs/rust/src/opendal/raw/path.rs.html             |   4 +-
 docs/rust/src/opendal/raw/rps.rs.html              |  10 +-
 docs/rust/src/opendal/raw/serde_util.rs.html       |   4 +-
 docs/rust/src/opendal/raw/version.rs.html          |   4 +-
 .../src/opendal/services/azblob/backend.rs.html    |   4 +-
 .../rust/src/opendal/services/azblob/error.rs.html |   4 +-
 docs/rust/src/opendal/services/azblob/mod.rs.html  |   4 +-
 .../rust/src/opendal/services/azblob/pager.rs.html |   4 +-
 .../src/opendal/services/azblob/writer.rs.html     |   4 +-
 .../src/opendal/services/azdfs/backend.rs.html     |   4 +-
 docs/rust/src/opendal/services/azdfs/error.rs.html |   4 +-
 docs/rust/src/opendal/services/azdfs/mod.rs.html   |   4 +-
 docs/rust/src/opendal/services/azdfs/pager.rs.html |   4 +-
 .../rust/src/opendal/services/azdfs/writer.rs.html |   4 +-
 .../src/opendal/services/dashmap/backend.rs.html   |   4 +-
 docs/rust/src/opendal/services/dashmap/mod.rs.html |   4 +-
 docs/rust/src/opendal/services/fs/backend.rs.html  |   4 +-
 docs/rust/src/opendal/services/fs/error.rs.html    |   4 +-
 docs/rust/src/opendal/services/fs/mod.rs.html      |   4 +-
 docs/rust/src/opendal/services/fs/pager.rs.html    |   4 +-
 docs/rust/src/opendal/services/fs/writer.rs.html   |   4 +-
 docs/rust/src/opendal/services/ftp/backend.rs.html |   4 +-
 docs/rust/src/opendal/services/ftp/err.rs.html     |   4 +-
 docs/rust/src/opendal/services/ftp/mod.rs.html     |   4 +-
 docs/rust/src/opendal/services/ftp/pager.rs.html   |   4 +-
 docs/rust/src/opendal/services/ftp/util.rs.html    |   4 +-
 docs/rust/src/opendal/services/ftp/writer.rs.html  |   4 +-
 docs/rust/src/opendal/services/gcs/backend.rs.html |   4 +-
 docs/rust/src/opendal/services/gcs/error.rs.html   |   4 +-
 docs/rust/src/opendal/services/gcs/mod.rs.html     |   4 +-
 docs/rust/src/opendal/services/gcs/pager.rs.html   |   4 +-
 docs/rust/src/opendal/services/gcs/uri.rs.html     |   4 +-
 docs/rust/src/opendal/services/gcs/writer.rs.html  |   4 +-
 .../rust/src/opendal/services/ghac/backend.rs.html |   4 +-
 docs/rust/src/opendal/services/ghac/error.rs.html  |   4 +-
 docs/rust/src/opendal/services/ghac/mod.rs.html    |   4 +-
 docs/rust/src/opendal/services/ghac/writer.rs.html |   4 +-
 .../rust/src/opendal/services/hdfs/backend.rs.html |   4 +-
 docs/rust/src/opendal/services/hdfs/error.rs.html  |   4 +-
 docs/rust/src/opendal/services/hdfs/mod.rs.html    |   4 +-
 docs/rust/src/opendal/services/hdfs/pager.rs.html  |   4 +-
 docs/rust/src/opendal/services/hdfs/writer.rs.html |   4 +-
 .../rust/src/opendal/services/http/backend.rs.html |   4 +-
 docs/rust/src/opendal/services/http/error.rs.html  |   4 +-
 docs/rust/src/opendal/services/http/mod.rs.html    |   4 +-
 .../rust/src/opendal/services/ipfs/backend.rs.html |   6 +-
 docs/rust/src/opendal/services/ipfs/error.rs.html  |   4 +-
 docs/rust/src/opendal/services/ipfs/ipld.rs.html   |   4 +-
 docs/rust/src/opendal/services/ipfs/mod.rs.html    |   4 +-
 .../src/opendal/services/ipmfs/backend.rs.html     |   4 +-
 .../src/opendal/services/ipmfs/builder.rs.html     |   4 +-
 docs/rust/src/opendal/services/ipmfs/error.rs.html |   4 +-
 docs/rust/src/opendal/services/ipmfs/mod.rs.html   |   4 +-
 docs/rust/src/opendal/services/ipmfs/pager.rs.html |   4 +-
 .../rust/src/opendal/services/ipmfs/writer.rs.html |   4 +-
 .../src/opendal/services/memcached/ascii.rs.html   |   4 +-
 .../src/opendal/services/memcached/backend.rs.html |   4 +-
 .../src/opendal/services/memcached/mod.rs.html     |   4 +-
 .../src/opendal/services/memory/backend.rs.html    |   4 +-
 docs/rust/src/opendal/services/memory/mod.rs.html  |   4 +-
 docs/rust/src/opendal/services/mod.rs.html         |   4 +-
 .../rust/src/opendal/services/moka/backend.rs.html |   4 +-
 docs/rust/src/opendal/services/moka/mod.rs.html    |   4 +-
 docs/rust/src/opendal/services/obs/backend.rs.html |   4 +-
 docs/rust/src/opendal/services/obs/error.rs.html   |   4 +-
 docs/rust/src/opendal/services/obs/mod.rs.html     |   4 +-
 docs/rust/src/opendal/services/obs/pager.rs.html   |   4 +-
 docs/rust/src/opendal/services/obs/writer.rs.html  |   4 +-
 docs/rust/src/opendal/services/oss/backend.rs.html |   4 +-
 docs/rust/src/opendal/services/oss/error.rs.html   |   4 +-
 docs/rust/src/opendal/services/oss/mod.rs.html     |   4 +-
 docs/rust/src/opendal/services/oss/pager.rs.html   |   4 +-
 docs/rust/src/opendal/services/oss/writer.rs.html  |   4 +-
 .../src/opendal/services/redis/backend.rs.html     |   4 +-
 docs/rust/src/opendal/services/redis/mod.rs.html   |   4 +-
 .../src/opendal/services/rocksdb/backend.rs.html   |   4 +-
 docs/rust/src/opendal/services/rocksdb/mod.rs.html |   4 +-
 docs/rust/src/opendal/services/s3/backend.rs.html  |   4 +-
 docs/rust/src/opendal/services/s3/error.rs.html    |   4 +-
 docs/rust/src/opendal/services/s3/mod.rs.html      |   4 +-
 docs/rust/src/opendal/services/s3/pager.rs.html    |   4 +-
 docs/rust/src/opendal/services/s3/writer.rs.html   |   4 +-
 .../rust/src/opendal/services/sled/backend.rs.html |   4 +-
 docs/rust/src/opendal/services/sled/mod.rs.html    |   4 +-
 .../src/opendal/services/webdav/backend.rs.html    |   4 +-
 .../rust/src/opendal/services/webdav/error.rs.html |   4 +-
 .../opendal/services/webdav/list_response.rs.html  |   4 +-
 docs/rust/src/opendal/services/webdav/mod.rs.html  |   4 +-
 .../rust/src/opendal/services/webdav/pager.rs.html |   4 +-
 .../src/opendal/services/webdav/writer.rs.html     |   4 +-
 .../src/opendal/services/webhdfs/backend.rs.html   |   4 +-
 .../src/opendal/services/webhdfs/error.rs.html     |   4 +-
 .../src/opendal/services/webhdfs/message.rs.html   |   4 +-
 docs/rust/src/opendal/services/webhdfs/mod.rs.html |   4 +-
 .../src/opendal/services/webhdfs/pager.rs.html     |   4 +-
 .../src/opendal/services/webhdfs/writer.rs.html    |   4 +-
 docs/rust/src/opendal/types/builder.rs.html        |   4 +-
 docs/rust/src/opendal/types/entry.rs.html          |   4 +-
 docs/rust/src/opendal/types/error.rs.html          |   4 +-
 docs/rust/src/opendal/types/list.rs.html           |   4 +-
 docs/rust/src/opendal/types/metadata.rs.html       |   4 +-
 docs/rust/src/opendal/types/mod.rs.html            |   4 +-
 docs/rust/src/opendal/types/mode.rs.html           |   4 +-
 .../types/operator/blocking_operator.rs.html       |   4 +-
 .../src/opendal/types/operator/builder.rs.html     |   4 +-
 .../src/opendal/types/operator/metadata.rs.html    |   4 +-
 docs/rust/src/opendal/types/operator/mod.rs.html   |   4 +-
 .../src/opendal/types/operator/operator.rs.html    |   4 +-
 docs/rust/src/opendal/types/ops.rs.html            |   4 +-
 docs/rust/src/opendal/types/reader.rs.html         |   4 +-
 docs/rust/src/opendal/types/scheme.rs.html         |   4 +-
 docs/rust/src/opendal/types/writer.rs.html         |   4 +-
 docs/rust/static.files/ayu-65289d5d067c7c66.css    |   1 +
 docs/rust/static.files/ayu-8af5e100b21cd173.css    |   1 -
 docs/rust/static.files/dark-0e1b889528bd466b.css   |   1 +
 docs/rust/static.files/dark-f23faae4a2daf9a6.css   |   1 -
 docs/rust/static.files/light-4743e13df3dfe8c4.css  |   1 +
 docs/rust/static.files/light-ebce58d0a40c3431.css  |   1 -
 docs/rust/static.files/main-3367e395607fafc1.js    |   8 +
 docs/rust/static.files/main-c55e1eb52e1886b4.js    |   8 -
 .../rust/static.files/rustdoc-6827029ac823cab7.css |   1 -
 .../rust/static.files/rustdoc-93196c7a1c3542a8.css |   1 +
 docs/rust/static.files/search-444266647c4dba98.js  |   1 -
 docs/rust/static.files/search-98d53477a794af0b.js  |   1 +
 .../static.files/settings-08ddfdda51b8ee2e.css     |   3 +
 .../static.files/settings-af96d9e2fc13e081.css     |   3 -
 ...e96e00e4617.js => settings-c3c521c753752a1a.js} |   4 +-
 .../static.files/source-script-5cf2e01a42cc9858.js |   1 -
 .../static.files/source-script-ea63cb6500f71309.js |   1 +
 index.html                                         |  12 +-
 sitemap.xml                                        |   2 +-
 420 files changed, 2280 insertions(+), 2280 deletions(-)

diff --git a/404.html b/404.html
index bef33afb..9f7ae068 100644
--- a/404.html
+++ b/404.html
@@ -3,14 +3,14 @@
 <head>
 <meta charset="UTF-8">
 <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.databend.rs/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-r [...]
-<link rel="preload" href="/assets/js/runtime~main.22dfcbc7.js" as="script">
-<link rel="preload" href="/assets/js/main.33c219a8.js" as="script">
+<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="preload" href="/assets/js/runtime~main.cdb342b4.js" as="script">
+<link rel="preload" href="/assets/js/main.7720ffc7.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.22dfcbc7.js"></script>
-<script src="/assets/js/main.33c219a8.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.cdb342b4.js"></script>
+<script src="/assets/js/main.7720ffc7.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/js/1db64337.94f59b4d.js b/assets/js/1db64337.08fc4214.js
similarity index 96%
rename from assets/js/1db64337.94f59b4d.js
rename to assets/js/1db64337.08fc4214.js
index 8db4f976..96bf8f62 100644
--- a/assets/js/1db64337.94f59b4d.js
+++ b/assets/js/1db64337.08fc4214.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[372],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>v});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}retur [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[372],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>v});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}retur [...]
\ No newline at end of file
diff --git a/assets/js/main.33c219a8.js b/assets/js/main.7720ffc7.js
similarity index 98%
rename from assets/js/main.33c219a8.js
rename to assets/js/main.7720ffc7.js
index f24095d0..5704236e 100644
--- a/assets/js/main.33c219a8.js
+++ b/assets/js/main.7720ffc7.js
@@ -1,2 +1,2 @@
-/*! For license information please see main.33c219a8.js.LICENSE.txt */
-(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={17896441:[()=>Promise.all([n.e(532),n.e(918)]).then(n.bind(n,3771)),"@theme/DocItem",3771],"1be78505":[()=>Promise.all([n.e(532),n.e(514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1db64337":[()=>n.e(372).then(n.bind(n,6777)),"@site/docs/overview.md",6777],"3806ecb0":[()=>n.e(661).then(n.t.bind(n [...]
\ No newline at end of file
+/*! For license information please see main.7720ffc7.js.LICENSE.txt */
+(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={17896441:[()=>Promise.all([n.e(532),n.e(918)]).then(n.bind(n,3771)),"@theme/DocItem",3771],"1be78505":[()=>Promise.all([n.e(532),n.e(514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1db64337":[()=>n.e(372).then(n.bind(n,6777)),"@site/docs/overview.md",6777],"3806ecb0":[()=>n.e(661).then(n.t.bind(n [...]
\ No newline at end of file
diff --git a/assets/js/main.33c219a8.js.LICENSE.txt b/assets/js/main.7720ffc7.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.33c219a8.js.LICENSE.txt
rename to assets/js/main.7720ffc7.js.LICENSE.txt
diff --git a/assets/js/runtime~main.22dfcbc7.js b/assets/js/runtime~main.cdb342b4.js
similarity index 96%
rename from assets/js/runtime~main.22dfcbc7.js
rename to assets/js/runtime~main.cdb342b4.js
index 24b5c231..c0183e20 100644
--- a/assets/js/runtime~main.22dfcbc7.js
+++ b/assets/js/runtime~main.cdb342b4.js
@@ -1 +1 @@
-(()=>{"use strict";var e,t,r,o,n,a={},i={};function f(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return a[e].call(r.exports,r,r.exports,f),r.exports}f.m=a,e=[],f.O=(t,r,o,n)=>{if(!r){var a=1/0;for(c=0;c<e.length;c++){r=e[c][0],o=e[c][1],n=e[c][2];for(var i=!0,u=0;u<r.length;u++)(!1&n||a>=n)&&Object.keys(f.O).every((e=>f.O[e](r[u])))?r.splice(u--,1):(i=!1,n<a&&(a=n));if(i){e.splice(c--,1);var l=o();void 0!==l&&(t=l)}}return t}n=n||0;for(var c=e.length;c>0&&e[c-1] [...]
\ No newline at end of file
+(()=>{"use strict";var e,t,r,o,n,a={},i={};function f(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return a[e].call(r.exports,r,r.exports,f),r.exports}f.m=a,e=[],f.O=(t,r,o,n)=>{if(!r){var a=1/0;for(c=0;c<e.length;c++){r=e[c][0],o=e[c][1],n=e[c][2];for(var i=!0,u=0;u<r.length;u++)(!1&n||a>=n)&&Object.keys(f.O).every((e=>f.O[e](r[u])))?r.splice(u--,1):(i=!1,n<a&&(a=n));if(i){e.splice(c--,1);var l=o();void 0!==l&&(t=l)}}return t}n=n||0;for(var c=e.length;c>0&&e[c-1] [...]
\ No newline at end of file
diff --git a/docs/overview/index.html b/docs/overview/index.html
index 6058ffe9..99fe07ad 100644
--- a/docs/overview/index.html
+++ b/docs/overview/index.html
@@ -3,14 +3,14 @@
 <head>
 <meta charset="UTF-8">
 <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.databend.rs/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 dat [...]
-<link rel="preload" href="/assets/js/runtime~main.22dfcbc7.js" as="script">
-<link rel="preload" href="/assets/js/main.33c219a8.js" as="script">
+<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="preload" href="/assets/js/runtime~main.cdb342b4.js" as="script">
+<link rel="preload" href="/assets/js/main.7720ffc7.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.22dfcbc7.js"></script>
-<script src="/assets/js/main.33c219a8.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.cdb342b4.js"></script>
+<script src="/assets/js/main.7720ffc7.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/rust/help.html b/docs/rust/help.html
index 48a4ae1c..30a0c5cc 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 12e1c7a6..1965b470 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.67.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.67.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\" [...]
+"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\" [...]
 };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 56559b33..d915c888 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.67.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.67.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 [...]
+"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 [...]
 };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 012ad5e8..d3af87e3 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.67.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.67.1/core/cmp/trait.PartialEq.html\" title=\"trait c [...]
+"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 [...]
 };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 77d000c7..2efb02dd 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.67.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.67.1/core/convert/trait.From.html\" title=\"trait core:: [...]
+"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:: [...]
 };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 2210eade..cf233067 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.67.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.67.1/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.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 [...]
 };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 3993060d..f5e4c3fb 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.67.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>"]]
+"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>"]]
 };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 2f380de2..d794739a 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.67.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.67.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</ [...]
+"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</ [...]
 };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 6b6d5270..e6913968 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.67.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.67.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 [...]
+"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 [...]
 };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 70cb3c79..a68d3406 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.67.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.67.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 [...]
+"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 [...]
 };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 0b6f20a8..6f90a812 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.67.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.67.1/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.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\"> [...]
 };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 b4d3a853..3f2b9cd7 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.67.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.67.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 [...]
+"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 [...]
 };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 469718ec..2bf6d1d7 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.67.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.67.1/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.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 [...]
 };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 32ccd19c..c353acdc 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.67.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.67.1/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.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 [...]
 };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 74d6189d..0175f3c5 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.67.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.67.1/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.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 [...]
 };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 b9a32797..acd2234c 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.67.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.67.1/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.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 [...]
 };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 b5bc6e1d..f1551bf9 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.67.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.67.1/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.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 [...]
 };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 7a4974c1..312e9086 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.67.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.67.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 [...]
+"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 [...]
 };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 882c55ee..7c30f270 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.67.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.67.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 [...]
+"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 [...]
 };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 d0ed4a23..f2e41f35 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.67.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.67.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 [...]
+"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 [...]
 };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 009b4c75..e57171af 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.67.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.67.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\"  [...]
+"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\"  [...]
 };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 0ab9274d..16485d4c 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.67.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.67.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 [...]
+"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 [...]
 };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 c602f9c8..c0faa1be 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.67.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.67.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: [...]
+"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: [...]
 };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 72bda8c7..438cd8c1 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.67.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.67.1/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.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 [...]
 };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 c3f6c4b1..ebfd1dc9 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.67.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.67.1/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.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:: [...]
 };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 4de37f1b..e65b7083 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.67.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.67.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 [...]
+"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 [...]
 };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 243d2c60..6128c154 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.67.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.67.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 [...]
+"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 [...]
 };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 c2e09c33..6b9ae9f0 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.67.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.67.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 [...]
+"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 [...]
 };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 c9e6d99f..4e5f8744 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.67.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>"]]
+"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>"]]
 };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 a08716f2..e1f2b473 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 8935be6f..c76a5b9d 100644
--- a/docs/rust/opendal/docs/changelog/index.html
+++ b/docs/rust/opendal/docs/changelog/index.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="Changes log for all OpenDAL released versions."><meta name="keywords" content="rust, rustlang, rust-lang, changelog"><title>opendal::docs::changelog - 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="Changes log for all OpenDAL released versions."><meta name="keywords" content="rust, rustlang, rust-lang, changelog"><title>opendal::docs::changelog - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72 [...]
 <h2 id="change-log"><a href="#change-log">Change Log</a></h2>
 <p>All notable changes to this project will be documented in this file.</p>
 <p>The format is based on <a href="https://keepachangelog.com/">Keep a Changelog</a>
@@ -1263,7 +1263,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
 <ul>
 <li>docs: Cover all public types and functions (#128)</li>
 <li>docs: Update README (#129)</li>
-<li>ci: Generate main docs to &lt;opendal.databend.rs&gt; (#132)</li>
+<li>ci: Generate main docs to &lt;opendal.apache.org&gt; (#132)</li>
 <li>docs: Enrich README (#133)</li>
 <li>Add examples for object (#135)</li>
 </ul>
@@ -1360,4 +1360,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-77"><a href="#added-77">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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/docs/comparisons/index.html b/docs/rust/opendal/docs/comparisons/index.html
index e03e46de..c3cd1c4c 100644
--- a/docs/rust/opendal/docs/comparisons/index.html
+++ b/docs/rust/opendal/docs/comparisons/index.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="Compare opendal with other projects to find out the differences and areas that opendal can improve."><meta name="keywords" content="rust, rustlang, rust-lang, comparisons"><title>opendal::docs::comparisons - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href=".. [...]
+<!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="Compare opendal with other projects to find out the differences and areas that opendal can improve."><meta name="keywords" content="rust, rustlang, rust-lang, comparisons"><title>opendal::docs::comparisons - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href=".. [...]
 <p>All documents listed should be treated as highly biased. Because:</p>
 <ul>
 <li>OpenDAL’s maintainers and contributors write them.</li>
@@ -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 42739f79..1a286e8e 100644
--- a/docs/rust/opendal/docs/comparisons/vs_object_store/index.html
+++ b/docs/rust/opendal/docs/comparisons/vs_object_store/index.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="OpenDAL vs object_store"><meta name="keywords" content="rust, rustlang, rust-lang, vs_object_store"><title>opendal::docs::comparisons::vs_object_store - 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="OpenDAL vs object_store"><meta name="keywords" content="rust, rustlang, rust-lang, vs_object_store"><title>opendal::docs::comparisons::vs_object_store - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176 [...]
 <blockquote>
 <p>NOTE: This document is written by OpenDAL’s maintainers and not reviewed by
 object_store’s maintainers. So it could not be very objective.</p>
@@ -127,4 +127,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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/docs/concepts/index.html b/docs/rust/opendal/docs/concepts/index.html
index d53e3dd0..d38e8044 100644
--- a/docs/rust/opendal/docs/concepts/index.html
+++ b/docs/rust/opendal/docs/concepts/index.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="The core concepts of OpenDAL’s public API."><meta name="keywords" content="rust, rustlang, rust-lang, concepts"><title>opendal::docs::concepts - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
+<!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 core concepts of OpenDAL’s public API."><meta name="keywords" content="rust, rustlang, rust-lang, concepts"><title>opendal::docs::concepts - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
 <p>OpenDAL provides a unified abstraction for all storage services.</p>
 <p>There are three core concepts in OpenDAL:</p>
 <ul>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/docs/features/index.html b/docs/rust/opendal/docs/features/index.html
index 5585f114..f990ee1e 100644
--- a/docs/rust/opendal/docs/features/index.html
+++ b/docs/rust/opendal/docs/features/index.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="All features that provided by OpenDAL."><meta name="keywords" content="rust, rustlang, rust-lang, features"><title>opendal::docs::features - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
+<!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="All features that provided by OpenDAL."><meta name="keywords" content="rust, rustlang, rust-lang, features"><title>opendal::docs::features - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
 <p>default feature: <code>rustls</code>, which enable rustls support.</p>
 <h3 id="layer-features"><a href="#layer-features">Layer Features</a></h3>
 <ul>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/docs/index.html b/docs/rust/opendal/docs/index.html
index e257f5bf..33466013 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 [...]
+<!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 3b2a97a4..1170dc6f 100644
--- a/docs/rust/opendal/docs/internals/accessor/index.html
+++ b/docs/rust/opendal/docs/internals/accessor/index.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="The internal implement details of `Accessor`."><meta name="keywords" content="rust, rustlang, rust-lang, accessor"><title>opendal::docs::internals::accessor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d5 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The internal implement details of `Accessor`."><meta name="keywords" content="rust, rustlang, rust-lang, accessor"><title>opendal::docs::internals::accessor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d5 [...]
 <p><a href="../../../raw/trait.Accessor.html"><code>Accessor</code></a> is the core trait of OpenDAL’s raw API. We operate
 underlying storage services via APIs provided by <a href="../../../raw/trait.Accessor.html"><code>Accessor</code></a>.</p>
 <h2 id="introduction"><a href="#introduction">Introduction</a></h2>
@@ -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.67.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.67.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.67.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.67.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><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><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/datafuselabs/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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/docs/internals/index.html b/docs/rust/opendal/docs/internals/index.html
index 7aec25bc..563da6d7 100644
--- a/docs/rust/opendal/docs/internals/index.html
+++ b/docs/rust/opendal/docs/internals/index.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="The internal implement details of OpenDAL."><meta name="keywords" content="rust, rustlang, rust-lang, internals"><title>opendal::docs::internals - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The internal implement details of OpenDAL."><meta name="keywords" content="rust, rustlang, rust-lang, internals"><title>opendal::docs::internals - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf [...]
 <p>OpenDAL has provides unified abstraction via two-level API sets:</p>
 <ul>
 <li>Public API like <a href="../../struct.Operator.html"><code>Operator</code></a> provides user level API.</li>
@@ -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 6e856a8e..9bedaff8 100644
--- a/docs/rust/opendal/docs/internals/layer/index.html
+++ b/docs/rust/opendal/docs/internals/layer/index.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="The internal implement details of `Layer`."><meta name="keywords" content="rust, rustlang, rust-lang, layer"><title>opendal::docs::internals::layer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The internal implement details of `Layer`."><meta name="keywords" content="rust, rustlang, rust-lang, layer"><title>opendal::docs::internals::layer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f [...]
 <p><a href="../../../raw/trait.Layer.html"><code>Layer</code></a> itself is quiet simple:</p>
 
 <div class="example-wrap ignore"><div class='tooltip'>ⓘ</div><pre class="rust rust-example-rendered"><code><span class="kw">pub trait </span>Layer&lt;A: Accessor&gt; {
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/docs/rfcs/index.html b/docs/rust/opendal/docs/rfcs/index.html
index 9a4a8bbc..22efdbed 100644
--- a/docs/rust/opendal/docs/rfcs/index.html
+++ b/docs/rust/opendal/docs/rfcs/index.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="RFCs power OpenDAL’s development."><meta name="keywords" content="rust, rustlang, rust-lang, rfcs"><title>opendal::docs::rfcs - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel=" [...]
+<!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="RFCs power OpenDAL’s development."><meta name="keywords" content="rust, rustlang, rust-lang, rfcs"><title>opendal::docs::rfcs - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel=" [...]
 <p>To add new features and big refactors:</p>
 <ul>
 <li>Start a new RFCs with the template <a href="rfc_0000_example/index.html" title="rfc_0000_example"><code>rfc_0000_example</code></a>.</li>
@@ -147,4 +147,4 @@
 <li>Start Date: <code>2023-03-05</code></li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/1477">datafuselabs/opendal#1477</a></li>
 <li>Tracking Issue: <a href="https://github.com/datafuselabs/opendal/issues/0000">datafuselabs/opendal#0000</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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 b40e8bf5..c53bbaa5 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0000_example/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0000_example/index.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="Proposal Name: (fill me in with a unique ident, `my_awesome_feature`)Start Date: (fill me in with today’s date, YYYY-MM-DD)RFC PR: datafuselabs/opendal#0000Tracking Issue: datafuselabs/opendal#0000Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0000_example"><title [...]
+<!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="Proposal Name: (fill me in with a unique ident, `my_awesome_feature`)Start Date: (fill me in with today’s date, YYYY-MM-DD)RFC PR: datafuselabs/opendal#0000Tracking Issue: datafuselabs/opendal#0000Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0000_example"><title [...]
 <li>Proposal Name: (fill me in with a unique ident, <code>my_awesome_feature</code>)</li>
 <li>Start Date: (fill me in with today’s date, YYYY-MM-DD)</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/0000">datafuselabs/opendal#0000</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 fe1921c1..36963fe7 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
@@ -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="Proposal Name: `object_native_api`Start Date: 2022-02-18RFC PR: datafuselabs/opendal#41Tracking Issue: datafuselabs/opendal#35Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0041_object_native_api"><title>opendal::docs::rfcs::rfc_0041_object_native_api - Rust</titl [...]
+<!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="Proposal Name: `object_native_api`Start Date: 2022-02-18RFC PR: datafuselabs/opendal#41Tracking Issue: datafuselabs/opendal#35Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0041_object_native_api"><title>opendal::docs::rfcs::rfc_0041_object_native_api - Rust</titl [...]
 <li>Proposal Name: <code>object_native_api</code></li>
 <li>Start Date: 2022-02-18</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/41">datafuselabs/opendal#41</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 7293e6cf..7c29c7ee 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
@@ -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="Proposal Name: `error_handle`Start Date: 2022-02-23RFC PR: datafuselabs/opendal#44Tracking Issue: datafuselabs/opendal#43Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0044_error_handle"><title>opendal::docs::rfcs::rfc_0044_error_handle - Rust</title><link rel="pr [...]
+<!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="Proposal Name: `error_handle`Start Date: 2022-02-23RFC PR: datafuselabs/opendal#44Tracking Issue: datafuselabs/opendal#43Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0044_error_handle"><title>opendal::docs::rfcs::rfc_0044_error_handle - Rust</title><link rel="pr [...]
 <li>Proposal Name: <code>error_handle</code></li>
 <li>Start Date: 2022-02-23</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/44">datafuselabs/opendal#44</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 c1588b2a..9e8b9786 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
@@ -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="Proposal Name: `auto_region`Start Date: 2022-02-24RFC PR: datafuselabs/opendal#57Tracking Issue: datafuselabs/opendal#58Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0057_auto_region"><title>opendal::docs::rfcs::rfc_0057_auto_region - Rust</title><link rel="prelo [...]
+<!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="Proposal Name: `auto_region`Start Date: 2022-02-24RFC PR: datafuselabs/opendal#57Tracking Issue: datafuselabs/opendal#58Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0057_auto_region"><title>opendal::docs::rfcs::rfc_0057_auto_region - Rust</title><link rel="prelo [...]
 <li>Proposal Name: <code>auto_region</code></li>
 <li>Start Date: 2022-02-24</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/57">datafuselabs/opendal#57</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 3ba26b99..c62aa790 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
@@ -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="Proposal Name: `object_stream`Start Date: 2022-02-25RFC PR: datafuselabs/opendal#69Tracking Issue: datafuselabs/opendal#69Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0069_object_stream"><title>opendal::docs::rfcs::rfc_0069_object_stream - Rust</title><link rel= [...]
+<!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="Proposal Name: `object_stream`Start Date: 2022-02-25RFC PR: datafuselabs/opendal#69Tracking Issue: datafuselabs/opendal#69Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0069_object_stream"><title>opendal::docs::rfcs::rfc_0069_object_stream - Rust</title><link rel= [...]
 <li>Proposal Name: <code>object_stream</code></li>
 <li>Start Date: 2022-02-25</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/69">datafuselabs/opendal#69</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 f6b9d7ed..a6c7446f 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
@@ -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="Proposal Name: `limited_reader`Start Date: 2022-03-02RFC PR: datafuselabs/opendal#0090Tracking Issue: datafuselabs/opendal#0090Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0090_limited_reader"><title>opendal::docs::rfcs::rfc_0090_limited_reader - Rust</title><li [...]
+<!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="Proposal Name: `limited_reader`Start Date: 2022-03-02RFC PR: datafuselabs/opendal#0090Tracking Issue: datafuselabs/opendal#0090Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0090_limited_reader"><title>opendal::docs::rfcs::rfc_0090_limited_reader - Rust</title><li [...]
 <li>Proposal Name: <code>limited_reader</code></li>
 <li>Start Date: 2022-03-02</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/0090">datafuselabs/opendal#0090</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 01e77b78..f075b4e9 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
@@ -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="Proposal Name: `path-normalization`Start Date: 2022-03-08RFC PR: datafuselabs/opendal#112Tracking Issue: datafuselabs/opendal#112Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0112_path_normalization"><title>opendal::docs::rfcs::rfc_0112_path_normalization - Rust< [...]
+<!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="Proposal Name: `path-normalization`Start Date: 2022-03-08RFC PR: datafuselabs/opendal#112Tracking Issue: datafuselabs/opendal#112Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0112_path_normalization"><title>opendal::docs::rfcs::rfc_0112_path_normalization - Rust< [...]
 <li>Proposal Name: <code>path-normalization</code></li>
 <li>Start Date: 2022-03-08</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/112">datafuselabs/opendal#112</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 c30292cf..ca942639 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
@@ -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="Proposal Name: `async_streaming_io`Start Date: 2022-03-28RFC PR: datafuselabs/opendal#191Tracking Issue: datafuselabs/opendal#190Reverted"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0191_async_streaming_io"><title>opendal::docs::rfcs::rfc_0191_async_streaming_io - Rust [...]
+<!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="Proposal Name: `async_streaming_io`Start Date: 2022-03-28RFC PR: datafuselabs/opendal#191Tracking Issue: datafuselabs/opendal#190Reverted"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0191_async_streaming_io"><title>opendal::docs::rfcs::rfc_0191_async_streaming_io - Rust [...]
 <li>Proposal Name: <code>async_streaming_io</code></li>
 <li>Start Date: 2022-03-28</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/191">datafuselabs/opendal#191</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 98e60e87..fe2ac7d0 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
@@ -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="Proposal Name: `remove_credential`Start Date: 2022-04-02RFC PR: datafuselabs/opendal#203Tracking Issue: datafuselabs/opendal#203Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0203_remove_credential"><title>opendal::docs::rfcs::rfc_0203_remove_credential - Rust</ti [...]
+<!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="Proposal Name: `remove_credential`Start Date: 2022-04-02RFC PR: datafuselabs/opendal#203Tracking Issue: datafuselabs/opendal#203Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0203_remove_credential"><title>opendal::docs::rfcs::rfc_0203_remove_credential - Rust</ti [...]
 <li>Proposal Name: <code>remove_credential</code></li>
 <li>Start Date: 2022-04-02</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/203">datafuselabs/opendal#203</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 64074a41..06c9acbd 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
@@ -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="Proposal Name: `create-dir`Start Date: 2022-04-06RFC PR: datafuselabs/opendal#221Tracking Issue: datafuselabs/opendal#222Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0221_create_dir"><title>opendal::docs::rfcs::rfc_0221_create_dir - Rust</title><link rel="preloa [...]
+<!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="Proposal Name: `create-dir`Start Date: 2022-04-06RFC PR: datafuselabs/opendal#221Tracking Issue: datafuselabs/opendal#222Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0221_create_dir"><title>opendal::docs::rfcs::rfc_0221_create_dir - Rust</title><link rel="preloa [...]
 <li>Proposal Name: <code>create-dir</code></li>
 <li>Start Date: 2022-04-06</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/221">datafuselabs/opendal#221</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 f5a2b132..be84318c 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
@@ -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="Proposal Name: `retryable_error`Start Date: 2022-04-12RFC PR: datafuselabs/opendal#247Tracking Issue: datafuselabs/opendal#248Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0247_retryable_error"><title>opendal::docs::rfcs::rfc_0247_retryable_error - Rust</title><l [...]
+<!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="Proposal Name: `retryable_error`Start Date: 2022-04-12RFC PR: datafuselabs/opendal#247Tracking Issue: datafuselabs/opendal#248Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0247_retryable_error"><title>opendal::docs::rfcs::rfc_0247_retryable_error - Rust</title><l [...]
 <li>Proposal Name: <code>retryable_error</code></li>
 <li>Start Date: 2022-04-12</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/247">datafuselabs/opendal#247</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 dc7a90c5..64519469 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
@@ -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="Proposal Name: `object_id`Start Date: 2022-05-27RFC PR: datafuselabs/opendal#293Tracking Issue: datafuselabs/opendal#294Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0293_object_id"><title>opendal::docs::rfcs::rfc_0293_object_id - Rust</title><link rel="preload"  [...]
+<!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="Proposal Name: `object_id`Start Date: 2022-05-27RFC PR: datafuselabs/opendal#293Tracking Issue: datafuselabs/opendal#294Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0293_object_id"><title>opendal::docs::rfcs::rfc_0293_object_id - Rust</title><link rel="preload"  [...]
 <li>Proposal Name: <code>object_id</code></li>
 <li>Start Date: 2022-05-27</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/293">datafuselabs/opendal#293</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 2e5eef4b..dfce5166 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
@@ -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="Proposal Name: `dir_entry`Start Date: 2022-06-08RFC PR: datafuselabs/opendal#337Tracking Issue: datafuselabs/opendal#338Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0337_dir_entry"><title>opendal::docs::rfcs::rfc_0337_dir_entry - Rust</title><link rel="preload"  [...]
+<!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="Proposal Name: `dir_entry`Start Date: 2022-06-08RFC PR: datafuselabs/opendal#337Tracking Issue: datafuselabs/opendal#338Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0337_dir_entry"><title>opendal::docs::rfcs::rfc_0337_dir_entry - Rust</title><link rel="preload"  [...]
 <li>Proposal Name: <code>dir_entry</code></li>
 <li>Start Date: 2022-06-08</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/337">datafuselabs/opendal#337</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 1f3ba9b4..17d8bb8a 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
@@ -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="Proposal Name: `accessor_capabilities`Start Date: 2022-06-29RFC PR: datafuselabs/opendal#409Tracking Issue: datafuselabs/opendal#410Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0409_accessor_capabilities"><title>opendal::docs::rfcs::rfc_0409_accessor_capabilitie [...]
+<!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="Proposal Name: `accessor_capabilities`Start Date: 2022-06-29RFC PR: datafuselabs/opendal#409Tracking Issue: datafuselabs/opendal#410Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0409_accessor_capabilities"><title>opendal::docs::rfcs::rfc_0409_accessor_capabilitie [...]
 <li>Proposal Name: <code>accessor_capabilities</code></li>
 <li>Start Date: 2022-06-29</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/409">datafuselabs/opendal#409</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 42c98105..6360fb26 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0413_presign/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0413_presign/index.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="Proposal Name: `presign`Start Date: 2022-06-30RFC PR: datafuselabs/opendal#0413Tracking Issue: datafuselabs/opendal#394Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0413_presign"><title>opendal::docs::rfcs::rfc_0413_presign - Rust</title><link rel="preload" as="f [...]
+<!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="Proposal Name: `presign`Start Date: 2022-06-30RFC PR: datafuselabs/opendal#0413Tracking Issue: datafuselabs/opendal#394Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0413_presign"><title>opendal::docs::rfcs::rfc_0413_presign - Rust</title><link rel="preload" as="f [...]
 <li>Proposal Name: <code>presign</code></li>
 <li>Start Date: 2022-06-30</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/413">datafuselabs/opendal#0413</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 18e897ac..01c7c037 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
@@ -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="Proposal Name: `command_line_interface`Start Date: 2022-07-08RFC PR: datafuselabs/opendal#423Tracking Issue: datafuselabs/opendal#422Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0423_command_line_interface"><title>opendal::docs::rfcs::rfc_0423_command_line_inter [...]
+<!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="Proposal Name: `command_line_interface`Start Date: 2022-07-08RFC PR: datafuselabs/opendal#423Tracking Issue: datafuselabs/opendal#422Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0423_command_line_interface"><title>opendal::docs::rfcs::rfc_0423_command_line_inter [...]
 <li>Proposal Name: <code>command_line_interface</code></li>
 <li>Start Date: 2022-07-08</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/423">datafuselabs/opendal#423</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 cb04259d..9f3c63f8 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
@@ -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="Proposal Name: `init_from_iter`Start Date: 2022-07-10RFC PR: datafuselabs/opendal#429Tracking Issue: datafuselabs/opendal#430Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0429_init_from_iter"><title>opendal::docs::rfcs::rfc_0429_init_from_iter - Rust</title><link [...]
+<!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="Proposal Name: `init_from_iter`Start Date: 2022-07-10RFC PR: datafuselabs/opendal#429Tracking Issue: datafuselabs/opendal#430Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0429_init_from_iter"><title>opendal::docs::rfcs::rfc_0429_init_from_iter - Rust</title><link [...]
 <li>Proposal Name: <code>init_from_iter</code></li>
 <li>Start Date: 2022-07-10</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/429">datafuselabs/opendal#429</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 0a1c0adb..6b173d96 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0438_multipart/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0438_multipart/index.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="Proposal Name: `multipart`Start Date: 2022-07-11RFC PR: datafuselabs/opendal#438Tracking Issue: datafuselabs/opendal#439Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0438_multipart"><title>opendal::docs::rfcs::rfc_0438_multipart - Rust</title><link rel="preload"  [...]
+<!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="Proposal Name: `multipart`Start Date: 2022-07-11RFC PR: datafuselabs/opendal#438Tracking Issue: datafuselabs/opendal#439Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0438_multipart"><title>opendal::docs::rfcs::rfc_0438_multipart - Rust</title><link rel="preload"  [...]
 <li>Proposal Name: <code>multipart</code></li>
 <li>Start Date: 2022-07-11</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/438">datafuselabs/opendal#438</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 b1eba4b2..ab0c3c73 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0443_gateway/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0443_gateway/index.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="Proposal Name: `gateway`Start Date: 2022-07-18RFC PR: datafuselabs/opendal#443Tracking Issue: datafuselabs/opendal#444Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0443_gateway"><title>opendal::docs::rfcs::rfc_0443_gateway - Rust</title><link rel="preload" as="fo [...]
+<!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="Proposal Name: `gateway`Start Date: 2022-07-18RFC PR: datafuselabs/opendal#443Tracking Issue: datafuselabs/opendal#444Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0443_gateway"><title>opendal::docs::rfcs::rfc_0443_gateway - Rust</title><link rel="preload" as="fo [...]
 <li>Proposal Name: <code>gateway</code></li>
 <li>Start Date: 2022-07-18</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/443">datafuselabs/opendal#443</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 f2e6d380..e99a3687 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
@@ -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="Proposal Name: `new_builder`Start Date: 2022-08-03RFC PR: datafuselabs/opendal#501Tracking Issue: datafuselabs/opendal#502Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0501_new_builder"><title>opendal::docs::rfcs::rfc_0501_new_builder - Rust</title><link rel="pre [...]
+<!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="Proposal Name: `new_builder`Start Date: 2022-08-03RFC PR: datafuselabs/opendal#501Tracking Issue: datafuselabs/opendal#502Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0501_new_builder"><title>opendal::docs::rfcs::rfc_0501_new_builder - Rust</title><link rel="pre [...]
 <li>Proposal Name: <code>new_builder</code></li>
 <li>Start Date: 2022-08-03</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/501">datafuselabs/opendal#501</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 5e33673b..2880d2bb 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
@@ -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="Proposal Name: `write_refactor`Start Date: 2022-08-22RFC PR: datafuselabs/opendal#554Tracking Issue: datafuselabs/opendal#555Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0554_write_refactor"><title>opendal::docs::rfcs::rfc_0554_write_refactor - Rust</title><link [...]
+<!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="Proposal Name: `write_refactor`Start Date: 2022-08-22RFC PR: datafuselabs/opendal#554Tracking Issue: datafuselabs/opendal#555Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0554_write_refactor"><title>opendal::docs::rfcs::rfc_0554_write_refactor - Rust</title><link [...]
 <li>Proposal Name: <code>write_refactor</code></li>
 <li>Start Date: 2022-08-22</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/554">datafuselabs/opendal#554</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 4a5fe095..1f15b3c7 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
@@ -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="Proposal Name: `list_metadata_reuse`Start Date: 2022-08-23RFC PR: datafuselabs/opendal#561Tracking Issue: datafuselabs/opendal#570Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0561_list_metadata_reuse"><title>opendal::docs::rfcs::rfc_0561_list_metadata_reuse - Ru [...]
+<!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="Proposal Name: `list_metadata_reuse`Start Date: 2022-08-23RFC PR: datafuselabs/opendal#561Tracking Issue: datafuselabs/opendal#570Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0561_list_metadata_reuse"><title>opendal::docs::rfcs::rfc_0561_list_metadata_reuse - Ru [...]
 <li>Proposal Name: <code>list_metadata_reuse</code></li>
 <li>Start Date: 2022-08-23</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/561">datafuselabs/opendal#561</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 b1dab1e3..3ea55dbe 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
@@ -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="Proposal Name: `blocking_api`Start Date: 2022-08-30RFC PR: datafuselabs/opendal#599Tracking Issue: datafuselabs/opendal#601Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0599_blocking_api"><title>opendal::docs::rfcs::rfc_0599_blocking_api - Rust</title><link rel=" [...]
+<!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="Proposal Name: `blocking_api`Start Date: 2022-08-30RFC PR: datafuselabs/opendal#599Tracking Issue: datafuselabs/opendal#601Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0599_blocking_api"><title>opendal::docs::rfcs::rfc_0599_blocking_api - Rust</title><link rel=" [...]
 <li>Proposal Name: <code>blocking_api</code></li>
 <li>Start Date: 2022-08-30</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/599">datafuselabs/opendal#599</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 41dbc7f1..15d718bf 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
@@ -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="Proposal Name: `redis_service`Start Date: 2022-08-31RFC PR: datafuselabs/opendal#0623Tracking Issue: datafuselabs/opendal#641Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0623_redis_service"><title>opendal::docs::rfcs::rfc_0623_redis_service - Rust</title><link r [...]
+<!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="Proposal Name: `redis_service`Start Date: 2022-08-31RFC PR: datafuselabs/opendal#0623Tracking Issue: datafuselabs/opendal#641Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0623_redis_service"><title>opendal::docs::rfcs::rfc_0623_redis_service - Rust</title><link r [...]
 <li>Proposal Name: <code>redis_service</code></li>
 <li>Start Date: 2022-08-31</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/0623">datafuselabs/opendal#0623</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 2e5e0301..b85a257f 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
@@ -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="Proposal Name: `split-capabilities`Start Date: 2022-09-04RFC PR: datafuselabs/opendal#627Tracking Issue: datafuselabs/opendal#628Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0627_split_capabilities"><title>opendal::docs::rfcs::rfc_0627_split_capabilities - Rust< [...]
+<!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="Proposal Name: `split-capabilities`Start Date: 2022-09-04RFC PR: datafuselabs/opendal#627Tracking Issue: datafuselabs/opendal#628Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0627_split_capabilities"><title>opendal::docs::rfcs::rfc_0627_split_capabilities - Rust< [...]
 <li>Proposal Name: <code>split-capabilities</code></li>
 <li>Start Date: 2022-09-04</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/627">datafuselabs/opendal#627</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 c7d6e68d..3f81dbcb 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
@@ -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="Proposal Name: `path_in_accessor`Start Date: 2022-09-12RFC PR: datafuselabs/opendal#661Tracking Issue: datafuselabs/opendal#662Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0661_path_in_accessor"><title>opendal::docs::rfcs::rfc_0661_path_in_accessor - Rust</title [...]
+<!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="Proposal Name: `path_in_accessor`Start Date: 2022-09-12RFC PR: datafuselabs/opendal#661Tracking Issue: datafuselabs/opendal#662Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0661_path_in_accessor"><title>opendal::docs::rfcs::rfc_0661_path_in_accessor - Rust</title [...]
 <li>Proposal Name: <code>path_in_accessor</code></li>
 <li>Start Date: 2022-09-12</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/661">datafuselabs/opendal#661</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 664db1bb..7d1bb7d8 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
@@ -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="Proposal Name: `generic-kv-services`Start Date: 2022-10-03RFC PR: datafuselabs/opendal#793Tracking Issue: datafuselabs/opendal#794Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0793_generic_kv_services"><title>opendal::docs::rfcs::rfc_0793_generic_kv_services - Ru [...]
+<!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="Proposal Name: `generic-kv-services`Start Date: 2022-10-03RFC PR: datafuselabs/opendal#793Tracking Issue: datafuselabs/opendal#794Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0793_generic_kv_services"><title>opendal::docs::rfcs::rfc_0793_generic_kv_services - Ru [...]
 <li>Proposal Name: <code>generic-kv-services</code></li>
 <li>Start Date: 2022-10-03</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/793">datafuselabs/opendal#793</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 495fb473..dd5d17e5 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
@@ -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="Proposal Name: `object_reader`Start Date: 2022-11-13RFC PR: datafuselabs/opendal#926Tracking Issue: datafuselabs/opendal#927Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0926_object_reader"><title>opendal::docs::rfcs::rfc_0926_object_reader - Rust</title><link re [...]
+<!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="Proposal Name: `object_reader`Start Date: 2022-11-13RFC PR: datafuselabs/opendal#926Tracking Issue: datafuselabs/opendal#927Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0926_object_reader"><title>opendal::docs::rfcs::rfc_0926_object_reader - Rust</title><link re [...]
 <li>Proposal Name: <code>object_reader</code></li>
 <li>Start Date: 2022-11-13</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/926">datafuselabs/opendal#926</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 900c0c2e..85f18e1a 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
@@ -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="Proposal Name: `refactor-error`Start Date: 2022-11-21RFC PR: datafuselabs/opendal#977Tracking Issue: datafuselabs/opendal#976Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0977_refactor_error"><title>opendal::docs::rfcs::rfc_0977_refactor_error - Rust</title><link [...]
+<!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="Proposal Name: `refactor-error`Start Date: 2022-11-21RFC PR: datafuselabs/opendal#977Tracking Issue: datafuselabs/opendal#976Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_0977_refactor_error"><title>opendal::docs::rfcs::rfc_0977_refactor_error - Rust</title><link [...]
 <li>Proposal Name: <code>refactor-error</code></li>
 <li>Start Date: 2022-11-21</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/977">datafuselabs/opendal#977</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 7720654b..3fcab3a2 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
@@ -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="Proposal Name: `object_handler`Start Date: 2022-12-19RFC PR: datafuselabs/opendal#1085Tracking Issue: datafuselabs/opendal#1085Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_1085_object_handler"><title>opendal::docs::rfcs::rfc_1085_object_handler - Rust</title><li [...]
+<!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="Proposal Name: `object_handler`Start Date: 2022-12-19RFC PR: datafuselabs/opendal#1085Tracking Issue: datafuselabs/opendal#1085Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_1085_object_handler"><title>opendal::docs::rfcs::rfc_1085_object_handler - Rust</title><li [...]
 <li>Proposal Name: <code>object_handler</code></li>
 <li>Start Date: 2022-12-19</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/1085">datafuselabs/opendal#1085</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 234344ab..a574016f 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
@@ -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="Proposal Name: `object_metadataer`Start Date: 2023-02-21RFC PR: datafuselabs/opendal#1391Tracking Issue: datafuselabs/opendal#1393Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_1391_object_metadataer"><title>opendal::docs::rfcs::rfc_1391_object_metadataer - Rust</ [...]
+<!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="Proposal Name: `object_metadataer`Start Date: 2023-02-21RFC PR: datafuselabs/opendal#1391Tracking Issue: datafuselabs/opendal#1393Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_1391_object_metadataer"><title>opendal::docs::rfcs::rfc_1391_object_metadataer - Rust</ [...]
 <li>Proposal Name: <code>object_metadataer</code></li>
 <li>Start Date: 2023-02-21</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/1391">datafuselabs/opendal#1391</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 9217c7b7..fb3b222d 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
@@ -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="Proposal Name: `query_based_metadata`Start Date: 2022-02-22RFC PR: datafuselabs/opendal#1398Tracking Issue: datafuselabs/opendal#1398Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_1398_query_based_metadata"><title>opendal::docs::rfcs::rfc_1398_query_based_metadata [...]
+<!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="Proposal Name: `query_based_metadata`Start Date: 2022-02-22RFC PR: datafuselabs/opendal#1398Tracking Issue: datafuselabs/opendal#1398Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_1398_query_based_metadata"><title>opendal::docs::rfcs::rfc_1398_query_based_metadata [...]
 <li>Proposal Name: <code>query_based_metadata</code></li>
 <li>Start Date: 2022-02-22</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/1398">datafuselabs/opendal#1398</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 69c93953..71f98ebe 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
@@ -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="Proposal Name: `object_writer`Start Date: 2023-02-27RFC PR: datafuselabs/opendal#1420Tracking Issue: datafuselabs/opendal#1421Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_1420_object_writer"><title>opendal::docs::rfcs::rfc_1420_object_writer - Rust</title><link  [...]
+<!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="Proposal Name: `object_writer`Start Date: 2023-02-27RFC PR: datafuselabs/opendal#1420Tracking Issue: datafuselabs/opendal#1421Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_1420_object_writer"><title>opendal::docs::rfcs::rfc_1420_object_writer - Rust</title><link  [...]
 <li>Proposal Name: <code>object_writer</code></li>
 <li>Start Date: 2023-02-27</li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/1420">datafuselabs/opendal#1420</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 5dfbfe8d..2d0f6831 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
@@ -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="Proposal Name: `remove_object_concept`Start Date: `2023-03-05`RFC PR: datafuselabs/opendal#1477Tracking Issue: datafuselabs/opendal#0000Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_1477_remove_object_concept"><title>opendal::docs::rfcs::rfc_1477_remove_object_co [...]
+<!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="Proposal Name: `remove_object_concept`Start Date: `2023-03-05`RFC PR: datafuselabs/opendal#1477Tracking Issue: datafuselabs/opendal#0000Summary"><meta name="keywords" content="rust, rustlang, rust-lang, rfc_1477_remove_object_concept"><title>opendal::docs::rfcs::rfc_1477_remove_object_co [...]
 <li>Proposal Name: <code>remove_object_concept</code></li>
 <li>Start Date: <code>2023-03-05</code></li>
 <li>RFC PR: <a href="https://github.com/datafuselabs/opendal/pull/1477">datafuselabs/opendal#1477</a></li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/docs/upgrade/index.html b/docs/rust/opendal/docs/upgrade/index.html
index 45f71659..f63192a8 100644
--- a/docs/rust/opendal/docs/upgrade/index.html
+++ b/docs/rust/opendal/docs/upgrade/index.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="Upgrade and migrate procedures while OpenDAL meets breaking changes."><meta name="keywords" content="rust, rustlang, rust-lang, upgrade"><title>opendal::docs::upgrade - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regula [...]
+<!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="Upgrade and migrate procedures while OpenDAL meets breaking changes."><meta name="keywords" content="rust, rustlang, rust-lang, upgrade"><title>opendal::docs::upgrade - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regula [...]
 <h2 id="upgrade-to-v030"><a href="#upgrade-to-v030">Upgrade to v0.30</a></h2>
 <p>In version 0.30, we made significant breaking changes by removing objects. Our goal in doing so was to provide our users with APIs that are easier to understand and maintain.</p>
 <p>More detailes could be found at <a href="../rfcs/rfc_1477_remove_object_concept/index.html" title="crate::docs::rfcs::rfc_1477_remove_object_concept">RFC: Remove Object Concept</a>.</p>
@@ -157,8 +157,8 @@ w.close()</code></pre></div>
 <p>v0.21 is an internal refactor version of OpenDAL. In this version, we refactored our error handling and our <code>Accessor</code> APIs. Thanks to those internal changes, we added an object-level metadata cache, making it nearly zero cost to reuse existing metadata continuously.</p>
 <p>Let’s start with our errors.</p>
 <h3 id="error-handling"><a href="#error-handling">Error Handling</a></h3>
-<p>As described in <a href="https://opendal.databend.rs/rfcs/0977-refactor-error.html">RFC-0977: Refactor Error</a>, we refactor opendal error by a new error
-called <a href="https://opendal.databend.rs/opendal/struct.Error.html"><code>opendal::Error</code></a>.</p>
+<p>As described in <a href="https://opendal.apache.org/rfcs/0977-refactor-error.html">RFC-0977: Refactor Error</a>, we refactor opendal error by a new error
+called <a href="https://opendal.apache.org/opendal/struct.Error.html"><code>opendal::Error</code></a>.</p>
 <p>This change will affect all APIs that are used to return <code>io::Error</code>.</p>
 <p>To migrate this, please replace <code>std::io::Error</code> with <code>opendal::Error</code>:</p>
 <div class="example-wrap"><pre class="language-diff"><code>- use std::io::Result;
@@ -199,7 +199,7 @@ called <a href="https://opendal.databend.rs/opendal/struct.Error.html"><code>ope
 <p>Sorry for introducing too much breaking change in a single version. This version can be a solid version for preparing OpenDAL v1.0.</p>
 <h2 id="upgrade-to-v020"><a href="#upgrade-to-v020">Upgrade to v0.20</a></h2>
 <p>v0.20 is a big release that we introduce a lot of performance related changes.</p>
-<p>To make the best of information from <code>read</code> operation, we propose and implemented <a href="https://opendal.databend.rs/rfcs/0926-object-reader.html">RFC-0926: Object Reader</a>. By this RFC, we can fetch content length from <code>ObjectReader</code> now!</p>
+<p>To make the best of information from <code>read</code> operation, we propose and implemented <a href="https://opendal.apache.org/rfcs/0926-object-reader.html">RFC-0926: Object Reader</a>. By this RFC, we can fetch content length from <code>ObjectReader</code> now!</p>
 
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">pub struct </span>ObjectReader {
     inner: BytesReader
@@ -260,7 +260,7 @@ called <a href="https://opendal.databend.rs/opendal/struct.Error.html"><code>ope
 <div class="example-wrap"><pre class="language-diff"><code>- async fn read(&amp;self, args: OpRead) -&gt; Result&lt;BytesReader&gt;
 + async fn read(&amp;self, path: &amp;str, args: OpRead) -&gt; Result&lt;BytesReader&gt;
 </code></pre></div>
-<p>For more information about this change, please refer to <a href="https://opendal.databend.rs/rfcs/0661-path-in-accessor.html">RFC-0661: Path In Accessor</a>.</p>
+<p>For more information about this change, please refer to <a href="https://opendal.apache.org/rfcs/0661-path-in-accessor.html">RFC-0661: Path In Accessor</a>.</p>
 <p>And since OpenDAL v0.17, we will use <code>rustls</code> as default tls engine for our underlying http client. Since this release, we will not depend on <code>openssl</code> anymore.</p>
 <h2 id="upgrade-to-v016"><a href="#upgrade-to-v016">Upgrade to v0.16</a></h2>
 <p>OpenDAL v0.16 refactor the internal implementation of <code>http</code> service. Since v0.16, http service can be used directly without enabling <code>services-http</code> feature. Accompany by these changes, http service has the following breaking changes:</p>
@@ -283,7 +283,7 @@ called <a href="https://opendal.databend.rs/opendal/struct.Error.html"><code>ope
 
     <span class="kw">let </span>op = Operator::from_env(Scheme::Http)<span class="question-mark">?</span>.layer(iil);
 }</code></pre></div>
-<p>For more information about this change, please refer to <a href="https://opendal.databend.rs/rfcs/0627-split-capabilities.html">RFC-0627: Split Capabilities</a>.</p>
+<p>For more information about this change, please refer to <a href="https://opendal.apache.org/rfcs/0627-split-capabilities.html">RFC-0627: Split Capabilities</a>.</p>
 <h2 id="upgrade-to-v014"><a href="#upgrade-to-v014">Upgrade to v0.14</a></h2>
 <p>OpenDAL v0.14 removed all deprecated APIs in previous versions, including:</p>
 <ul>
@@ -305,10 +305,10 @@ called <a href="https://opendal.databend.rs/opendal/struct.Error.html"><code>ope
 <li><code>Object::write_from</code> has been added to support write from a reader.</li>
 <li>All layers should be refactored to adapt new <code>Accessor</code> trait.</li>
 </ul>
-<p>For more information about this change, please refer to <a href="https://opendal.databend.rs/rfcs/0554-write-refactor.html">RFC-0554: Write Refactor</a>.</p>
+<p>For more information about this change, please refer to <a href="https://opendal.apache.org/rfcs/0554-write-refactor.html">RFC-0554: Write Refactor</a>.</p>
 <h2 id="upgrade-to-v013"><a href="#upgrade-to-v013">Upgrade to v0.13</a></h2>
 <p>OpenDAL deprecate <code>Operator::with_backoff</code> since v0.13.</p>
-<p>Please use <a href="https://opendal.databend.rs/opendal/layers/struct.RetryLayer.html"><code>RetryLayer</code></a> instead:</p>
+<p>Please use <a href="https://opendal.apache.org/opendal/layers/struct.RetryLayer.html"><code>RetryLayer</code></a> instead:</p>
 
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>anyhow::Result;
 <span class="kw">use </span>backon::ExponentialBackoff;
@@ -331,7 +331,7 @@ called <a href="https://opendal.databend.rs/opendal/struct.Error.html"><code>ope
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>builder = fs::Builder::default();
 <span class="kw">let </span>op: Operator = Operator::new(builder.build()<span class="question-mark">?</span>);</code></pre></div>
 <p>Along with these changes, <code>Operator::from_iter</code> and <code>Operator::from_env</code> now is a blocking API too.</p>
-<p>For more information about this change, please refer to <a href="https://opendal.databend.rs/rfcs/0501-new-builder.html">RFC-0501: New Builder</a>.</p>
+<p>For more information about this change, please refer to <a href="https://opendal.apache.org/rfcs/0501-new-builder.html">RFC-0501: New Builder</a>.</p>
 <p>The following APIs have been deprecated:</p>
 <ul>
 <li>All services <code>Builder::finish()</code> (replaced by <code>Builder::build()</code>)</li>
@@ -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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/enum.EntryMode.html b/docs/rust/opendal/enum.EntryMode.html
index fb49c261..df2daee5 100644
--- a/docs/rust/opendal/enum.EntryMode.html
+++ b/docs/rust/opendal/enum.EntryMode.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="EntryMode represents the mode."><meta name="keywords" content="rust, rustlang, rust-lang, EntryMode"><title>EntryMode in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pre [...]
+<!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="EntryMode represents the mode."><meta name="keywords" content="rust, rustlang, rust-lang, EntryMode"><title>EntryMode in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pre [...]
     FILE,
     DIR,
     Unknown,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>EntryMode represents the mode.</p>
+}</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>EntryMode represents the mode.</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.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="rustdoc-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" titl [...]
-</div></details><details class="rustdoc-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.67.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="rustdoc-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 [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></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.67.1/core/marker [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-EntryMode" class="anchor">§</a><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-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></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= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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" [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/enum.ErrorKind.html b/docs/rust/opendal/enum.ErrorKind.html
index d52c88dd..c154963d 100644
--- a/docs/rust/opendal/enum.ErrorKind.html
+++ b/docs/rust/opendal/enum.ErrorKind.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="ErrorKind is all kinds of Error of opendal."><meta name="keywords" content="rust, rustlang, rust-lang, ErrorKind"><title>ErrorKind in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
+<!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="ErrorKind is all kinds of Error of opendal."><meta name="keywords" content="rust, rustlang, rust-lang, ErrorKind"><title>ErrorKind in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
 pub enum ErrorKind {
     Unexpected,
     Unsupported,
@@ -9,8 +9,8 @@ pub enum ErrorKind {
     NotADirectory,
     AlreadyExists,
     RateLimited,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>ErrorKind is all kinds of Error of opendal.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants (Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details class="rustdoc-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 [...]
+}</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>ErrorKind is all kinds of Error of opendal.</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 [...]
 returning it back. For example, s3 returns an internal service error.</p>
 </div><section id="variant.Unsupported" class="variant"><a href="#variant.Unsupported" class="anchor">§</a><h3 class="code-header">Unsupported</h3></section><div class="docblock"><p>Underlying service doesn’t support this operation.</p>
 </div><section id="variant.ConfigInvalid" class="variant"><a href="#variant.ConfigInvalid" class="anchor">§</a><h3 class="code-header">ConfigInvalid</h3></section><div class="docblock"><p>The config for backend is invalid.</p>
@@ -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="rustdoc-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" tit [...]
-</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="rustdoc-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 clas [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></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.67.1/core/marke [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ErrorKind" class="anchor">§</a><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-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></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= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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" [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/enum.Metakey.html b/docs/rust/opendal/enum.Metakey.html
index 2c16c51e..460f2c6e 100644
--- a/docs/rust/opendal/enum.Metakey.html
+++ b/docs/rust/opendal/enum.Metakey.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="Metakey describes the metadata keys that can be stored or queried."><meta name="keywords" content="rust, rustlang, rust-lang, Metakey"><title>Metakey in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b17 [...]
+<!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="Metakey describes the metadata keys that can be stored or queried."><meta name="keywords" content="rust, rustlang, rust-lang, Metakey"><title>Metakey in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b17 [...]
     Complete,
     Mode,
     ContentDisposition,
@@ -8,7 +8,7 @@
     ContentType,
     Etag,
     LastModified,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Metakey describes the metadata keys that can be stored
+}</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Metakey describes the metadata keys that can be stored
 or queried.</p>
 <h3 id="for-store"><a href="#for-store">For store</a></h3>
 <p>Internally, we will store a flag set of Metakey to check
@@ -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="rustdoc-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="cod [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-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="co [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Metakey" class="anchor">§</a><h3 cl [...]
+</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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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">§</ [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/enum.Scheme.html b/docs/rust/opendal/enum.Scheme.html
index 000462c1..cb18eef4 100644
--- a/docs/rust/opendal/enum.Scheme.html
+++ b/docs/rust/opendal/enum.Scheme.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="Services that OpenDAL supports"><meta name="keywords" content="rust, rustlang, rust-lang, Scheme"><title>Scheme in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload"  [...]
+<!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 that OpenDAL supports"><meta name="keywords" content="rust, rustlang, rust-lang, Scheme"><title>Scheme in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload"  [...]
 pub enum Scheme {
-<details class="rustdoc-toggle type-contents-toggle"><summary class="hideme"><span>Show 23 variants</span></summary>    Azblob,
+<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 23 variants</span></summary>    Azblob,
     Azdfs,
     Dashmap,
     Fs,
@@ -22,15 +22,15 @@ pub enum Scheme {
     Sled,
     Webdav,
     Webhdfs,
-    Custom(&amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>),
-</details>}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Services that OpenDAL supports</p>
+    Custom(&amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.68.0/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>
 <li>Scheme is <code>non_exhaustive</code>, new variant COULD be added at any time.</li>
 <li>New variant SHOULD be added in alphabet orders,</li>
 <li>Users MUST NOT relay on its order.</li>
 </ul>
-</div></details><h2 id="variants" class="variants small-section-header">Variants (Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details class="rustdoc-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 [...]
+</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.Azdfs" class="variant"><a href="#variant.Azdfs" class="anchor">§</a><h3 class="code-header">Azdfs</h3></section><div class="docblock"><p><a href="services/struct.Azdfs.html" title="crate::services::Azdfs">azdfs</a>: Azure Data Lake Storage Gen2.</p>
 </div><section id="variant.Dashmap" class="variant"><a href="#variant.Dashmap" class="anchor">§</a><h3 class="code-header">Dashmap</h3></section><div class="docblock"><p><a href="services/struct.Dashmap.html" title="crate::services::Dashmap">dashmap</a>: dashmap backend support.</p>
 </div><section id="variant.Fs" class="variant"><a href="#variant.Fs" class="anchor">§</a><h3 class="code-header">Fs</h3></section><div class="docblock"><p><a href="services/struct.Fs.html" title="crate::services::Fs">fs</a>: POSIX alike file system.</p>
@@ -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.67.1/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.0/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="rustdoc-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="enu [...]
-</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="rustdoc-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="co [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></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.67.1/core/marker/tra [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Scheme" class="anchor">§</a><h3 clas [...]
+</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></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- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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> [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/index.html b/docs/rust/opendal/index.html
index c0ddbc6b..a278a127 100644
--- a/docs/rust/opendal/index.html
+++ b/docs/rust/opendal/index.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="OpenDAL is the Open Data Access Layer to freely, painlessly, and efficiently access data."><meta name="keywords" content="rust, rustlang, rust-lang, opendal"><title>opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regula [...]
+<!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="OpenDAL is the Open Data Access Layer to freely, painlessly, and efficiently access data."><meta name="keywords" content="rust, rustlang, rust-lang, opendal"><title>opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regula [...]
 <ul>
 <li>Documentation: All docs are carried byself, visit <a href="docs/index.html" title="docs"><code>docs</code></a> for more.</li>
 <li>Services: All supported services could be found at <a href="services/index.html" title="services"><code>services</code></a>.</li>
@@ -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 08101b1f..28c47dbd 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
+<!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
diff --git a/docs/rust/opendal/layers/struct.ChaosLayer.html b/docs/rust/opendal/layers/struct.ChaosLayer.html
index 9003c7e0..5767b662 100644
--- a/docs/rust/opendal/layers/struct.ChaosLayer.html
+++ b/docs/rust/opendal/layers/struct.ChaosLayer.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="Inject chaos into underlying services for robustness test."><meta name="keywords" content="rust, rustlang, rust-lang, ChaosLayer"><title>ChaosLayer in opendal::layers - 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="Inject chaos into underlying services for robustness test."><meta name="keywords" content="rust, rustlang, rust-lang, ChaosLayer"><title>ChaosLayer in opendal::layers - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1 [...]
 <h2 id="chaos"><a href="#chaos">Chaos</a></h2>
 <p>Chaos tests is a part of stress test. By generating errors at specified
 error ratio, we can reproduce underlying services error more reliable.</p>
@@ -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="rustdoc-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.Chaos [...]
+</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="rustdoc-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><h [...]
-</div></details></div></details><details class="rustdoc-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: [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ChaosLayer" class="anchor">§</a> [...]
+</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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html b/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html
index c0817071..c94832c5 100644
--- a/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html
+++ b/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.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="Add concurrent request limit."><meta name="keywords" content="rust, rustlang, rust-lang, ConcurrentLimitLayer"><title>ConcurrentLimitLayer in opendal::layers - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b17 [...]
+<!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="Add concurrent request limit."><meta name="keywords" content="rust, rustlang, rust-lang, ConcurrentLimitLayer"><title>ConcurrentLimitLayer in opendal::layers - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b17 [...]
 <h2 id="notes"><a href="#notes">Notes</a></h2>
 <p>Users can control how many concurrent connections could be established
 between OpenDAL and underlying storage services.</p>
@@ -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="rustdoc-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 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="rustdoc-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-ConcurrentLim [...]
-</div></details></div></details><details class="rustdoc-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" t [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#as [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html b/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html
index fc41d12e..3c401ecc 100644
--- a/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html
+++ b/docs/rust/opendal/layers/struct.ImmutableIndexLayer.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="Add an immutable in-memory index for underlying storage services."><meta name="keywords" content="rust, rustlang, rust-lang, ImmutableIndexLayer"><title>ImmutableIndexLayer in opendal::layers - 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="Add an immutable in-memory index for underlying storage services."><meta name="keywords" content="rust, rustlang, rust-lang, ImmutableIndexLayer"><title>ImmutableIndexLayer in opendal::layers - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.fil [...]
 <p>Especially useful for services without list capability like HTTP.</p>
 <h2 id="examples"><a href="#examples">Examples</a></h2>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>opendal::layers::ImmutableIndexLayer;
@@ -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="rustdoc-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 [...]
-</div></details><details class="rustdoc-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.67.1/core/iter/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="rustdoc-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-ImmutableIndexL [...]
-</div></details></div></details><details class="rustdoc-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" 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-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.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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/layers/struct.LoggingLayer.html b/docs/rust/opendal/layers/struct.LoggingLayer.html
index 98321258..33fde1df 100644
--- a/docs/rust/opendal/layers/struct.LoggingLayer.html
+++ b/docs/rust/opendal/layers/struct.LoggingLayer.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="Add log for every operations."><meta name="keywords" content="rust, rustlang, rust-lang, LoggingLayer"><title>LoggingLayer in opendal::layers - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
+<!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="Add log for every operations."><meta name="keywords" content="rust, rustlang, rust-lang, LoggingLayer"><title>LoggingLayer in opendal::layers - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
 <h2 id="logging"><a href="#logging">Logging</a></h2>
 <ul>
 <li>OpenDAL will log in structural way.</li>
@@ -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="rustdoc-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= [...]
+</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="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a cla [...]
+</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 [...]
 <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="rustdoc-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">§ [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-LoggingLayer" 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-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  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/layers/struct.MetricsLayer.html b/docs/rust/opendal/layers/struct.MetricsLayer.html
index 622d6926..ed2c6b64 100644
--- a/docs/rust/opendal/layers/struct.MetricsLayer.html
+++ b/docs/rust/opendal/layers/struct.MetricsLayer.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="Add metrics for every operations."><meta name="keywords" content="rust, rustlang, rust-lang, MetricsLayer"><title>MetricsLayer in opendal::layers - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
+<!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="Add metrics for every operations."><meta name="keywords" content="rust, rustlang, rust-lang, MetricsLayer"><title>MetricsLayer in opendal::layers - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
 <h2 id="metrics"><a href="#metrics">Metrics</a></h2>
 <ul>
 <li><code>opendal_requests_total</code>: Total request numbers.</li>
@@ -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="rustdoc-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-h [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MetricsLayer" class="anchor">§ [...]
+</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  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/layers/struct.RetryLayer.html b/docs/rust/opendal/layers/struct.RetryLayer.html
index cb4ec0d0..b837e093 100644
--- a/docs/rust/opendal/layers/struct.RetryLayer.html
+++ b/docs/rust/opendal/layers/struct.RetryLayer.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="Add retry for temporary failed operations."><meta name="keywords" content="rust, rustlang, rust-lang, RetryLayer"><title>RetryLayer in opendal::layers - 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="Add retry for temporary failed operations."><meta name="keywords" content="rust, rustlang, rust-lang, RetryLayer"><title>RetryLayer in opendal::layers - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72. [...]
 <h2 id="notes"><a href="#notes">Notes</a></h2>
 <p>This layer will retry failed operations when <a href="../struct.Error.html#method.is_temporary" title="Error::is_temporary"><code>Error::is_temporary</code></a>
 returns true. If operation still failed, this layer will set error to
@@ -15,7 +15,7 @@ returns true. If operation still failed, this layer will set error to
     .expect(<span class="string">&quot;must init&quot;</span>)
     .layer(RetryLayer::new())
     .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="rustdoc-toggle implementors-toggle" open><summary><section id="impl-RetryLayer" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/retry.rs.html#71-130">source</a><a href="#impl-RetryLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Retr [...]
+</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-RetryLayer" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/layers/retry.rs.html#71-130">source</a><a href="#impl-RetryLayer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RetryLayer.h [...]
 <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>anyhow::Result;
 <span class="kw">use </span>opendal::layers::RetryLayer;
@@ -26,23 +26,23 @@ returns true. If operation still failed, this layer will set error to
 <span class="kw">let _ </span>= Operator::new(services::Memory::default())
     .expect(<span class="string">&quot;must init&quot;</span>)
     .layer(RetryLayer::new());</code></pre></div>
-</div></details><details class="rustdoc-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>
+</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="rustdoc-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.67.1/std/primitive.f32.html">f32</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set fact [...]
+</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 [...]
 <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="rustdoc-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.67.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; Self [...]
-</div></details><details class="rustdoc-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.67.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; Self [...]
+</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 [...]
 <p>Delay will not increasing if current delay is larger than max_delay.</p>
-</div></details><details class="rustdoc-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.67.1/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docbl [...]
+</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> [...]
 <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="rustdoc-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><h [...]
-</div></details></div></details><details class="rustdoc-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: [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RetryLayer" class="anchor">§</a> [...]
+</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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/layers/struct.TracingLayer.html b/docs/rust/opendal/layers/struct.TracingLayer.html
index 17e53caf..72a9ff76 100644
--- a/docs/rust/opendal/layers/struct.TracingLayer.html
+++ b/docs/rust/opendal/layers/struct.TracingLayer.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="Add tracing for every operations."><meta name="keywords" content="rust, rustlang, rust-lang, TracingLayer"><title>TracingLayer in opendal::layers - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
+<!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="Add tracing for every operations."><meta name="keywords" content="rust, rustlang, rust-lang, TracingLayer"><title>TracingLayer in opendal::layers - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
 <h2 id="examples"><a href="#examples">Examples</a></h2><h3 id="basic-setup"><a href="#basic-setup">Basic Setup</a></h3>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>anyhow::Result;
 <span class="kw">use </span>opendal::layers::TracingLayer;
@@ -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="rustdoc-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 [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-TracingLayer" class="anchor">§ [...]
+</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  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/ops/enum.BatchOperations.html b/docs/rust/opendal/ops/enum.BatchOperations.html
index ec57f678..26a66ed1 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. [...]
+<!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.67.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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 [...]
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-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.Batc [...]
-</div></details><details class="rustdoc-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.67.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="rustdoc-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.67.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return if given operations  [...]
-</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="rustdoc-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" [...]
-</div></details></div></details><details class="rustdoc-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="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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BatchOperations" class="anc [...]
+    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;),
+}</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></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></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">§</ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/ops/enum.PresignOperation.html b/docs/rust/opendal/ops/enum.PresignOperation.html
index 654d5f37..e6a2bb98 100644
--- a/docs/rust/opendal/ops/enum.PresignOperation.html
+++ b/docs/rust/opendal/ops/enum.PresignOperation.html
@@ -1,18 +1,18 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Presign operation used for presign."><meta name="keywords" content="rust, rustlang, rust-lang, PresignOperation"><title>PresignOperation in opendal::ops - 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="Presign operation used for presign."><meta name="keywords" content="rust, rustlang, rust-lang, PresignOperation"><title>PresignOperation in opendal::ops - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f7 [...]
 pub enum PresignOperation {
     Stat(<a class="struct" href="struct.OpStat.html" title="struct opendal::ops::OpStat">OpStat</a>),
     Read(<a class="struct" href="struct.OpRead.html" title="struct opendal::ops::OpRead">OpRead</a>),
     Write(<a class="struct" href="struct.OpWrite.html" title="struct opendal::ops::OpWrite">OpWrite</a>),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Presign operation used for presign.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants (Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details class="rustdoc-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 [...]
+}</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Presign operation used for presign.</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.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="rustdoc-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-he [...]
-</div></details></div></details><details class="rustdoc-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="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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PresignOperation" class="a [...]
+</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">§ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associated [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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"  [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/ops/index.html b/docs/rust/opendal/ops/index.html
index 5b1f53f2..ba614b57 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 [...]
+<!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 31979204..f9fe9439 100644
--- a/docs/rust/opendal/ops/struct.OpBatch.html
+++ b/docs/rust/opendal/ops/struct.OpBatch.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 `batch` operation."><meta name="keywords" content="rust, rustlang, rust-lang, OpBatch"><title>OpBatch 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="rustdoc-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 [...]
-</div></details><details class="rustdoc-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>G [...]
-</div></details><details class="rustdoc-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" [...]
-</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="rustdoc-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= [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpBatch" class="anchor">§</a><h3 cl [...]
+<!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 `batch` operation."><meta name="keywords" content="rust, rustlang, rust-lang, OpBatch"><title>OpBatch 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-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><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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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">§</ [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/ops/struct.OpCreate.html b/docs/rust/opendal/ops/struct.OpCreate.html
index 4d0c4398..f7f85cb2 100644
--- a/docs/rust/opendal/ops/struct.OpCreate.html
+++ b/docs/rust/opendal/ops/struct.OpCreate.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 `create` operation."><meta name="keywords" content="rust, rustlang, rust-lang, OpCreate"><title>OpCreate in opendal::ops - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel= [...]
+<!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 `create` operation."><meta name="keywords" content="rust, rustlang, rust-lang, OpCreate"><title>OpCreate 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="rustdoc-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.htm [...]
-</div></details><details class="rustdoc-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="rustdoc-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 [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpCreate" class="anchor">§</a><h3  [...]
+</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><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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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">§ [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/ops/struct.OpDelete.html b/docs/rust/opendal/ops/struct.OpDelete.html
index 2ae5227e..f01be915 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= [...]
+<!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="rustdoc-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.htm [...]
-</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="rustdoc-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 [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpDelete" class="anchor">§</a><h3  [...]
+</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><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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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">§ [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/ops/struct.OpList.html b/docs/rust/opendal/ops/struct.OpList.html
index 880a3e2d..f4921801 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="rustdoc-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" tit [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Change the li [...]
-</div></details><details class="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang [...]
-</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="rustdoc-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="co [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpList" class="anchor">§</a><h3 clas [...]
+<!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></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- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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> [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/ops/struct.OpPresign.html b/docs/rust/opendal/ops/struct.OpPresign.html
index f050e273..345de00b 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 [...]
+<!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="rustdoc-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.OpPresig [...]
-</div></details><details class="rustdoc-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">< [...]
-</div></details><details class="rustdoc-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="rustdoc-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 cl [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpPresign" class="anchor">§</a><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-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><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= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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" [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/ops/struct.OpRead.html b/docs/rust/opendal/ops/struct.OpRead.html
index 03896784..e7249681 100644
--- a/docs/rust/opendal/ops/struct.OpRead.html
+++ b/docs/rust/opendal/ops/struct.OpRead.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 `read` operation."><meta name="keywords" content="rust, rustlang, rust-lang, OpRead"><title>OpRead 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="rustdoc-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" t [...]
-</div></details><details class="rustdoc-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"> [...]
-</div></details><details class="rustdoc-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="rustdoc-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="c [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpRead" class="anchor">§</a><h3 clas [...]
+<!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 `read` operation."><meta name="keywords" content="rust, rustlang, rust-lang, OpRead"><title>OpRead 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-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><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- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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> [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/ops/struct.OpScan.html b/docs/rust/opendal/ops/struct.OpScan.html
index a8da97ff..14105bbf 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="rustdoc-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" ti [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Change the  [...]
-</div></details><details class="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-la [...]
-</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="rustdoc-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="co [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpScan" class="anchor">§</a><h3 clas [...]
+<!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></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- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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> [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/ops/struct.OpStat.html b/docs/rust/opendal/ops/struct.OpStat.html
index 30dcbaf5..c01e9ed3 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="rustdoc-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" 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="rustdoc-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="c [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpStat" class="anchor">§</a><h3 clas [...]
+<!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><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- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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> [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/ops/struct.OpWrite.html b/docs/rust/opendal/ops/struct.OpWrite.html
index 7170f99a..8a1d2559 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="rustdoc-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 [...]
+<!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="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div cl [...]
-</div></details><details class="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; Self</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="rustdoc-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= [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OpWrite" class="anchor">§</a><h3 cl [...]
+</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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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">§</ [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/adapters/index.html b/docs/rust/opendal/raw/adapters/index.html
index bbb04efa..26d74d9b 100644
--- a/docs/rust/opendal/raw/adapters/index.html
+++ b/docs/rust/opendal/raw/adapters/index.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="Providing adapters and its implementations."><meta name="keywords" content="rust, rustlang, rust-lang, adapters"><title>opendal::raw::adapters - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
+<!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="Providing adapters and its implementations."><meta name="keywords" content="rust, rustlang, rust-lang, adapters"><title>opendal::raw::adapters - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
 <p>Adapters in OpenDAL means services that shares similar behaviors. We use
 adapter to make those services been implemented more easily. For example,
 with <a href="kv/trait.Adapter.html" title="kv::Adapter"><code>kv::Adapter</code></a>, users only need to implement <code>get</code>, <code>set</code> for a service.</p>
@@ -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 a506f7be..161a2a04 100644
--- a/docs/rust/opendal/raw/adapters/kv/index.html
+++ b/docs/rust/opendal/raw/adapters/kv/index.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="Providing Key Value Adapter for OpenDAL."><meta name="keywords" content="rust, rustlang, rust-lang, kv"><title>opendal::raw::adapters::kv - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.wof [...]
+<!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="Providing Key Value Adapter for OpenDAL."><meta name="keywords" content="rust, rustlang, rust-lang, kv"><title>opendal::raw::adapters::kv - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.wof [...]
 <p>Any services that implement <code>Adapter</code> can be used an OpenDAL Service.</p>
 <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 9a3833ad..23d421b9 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="rustdoc-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 [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock" [...]
-</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="rustdoc-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-Bac [...]
-<code>blocking_read</code> operation. <a href="../../trait.Accessor.html#associatedtype.BlockingReader">Read more</a></div></details><details class="rustdoc-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='d [...]
-<code>blocking_write</code> operation. <a href="../../trait.Accessor.html#associatedtype.BlockingWriter">Read more</a></div></details><details class="rustdoc-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'>Page [...]
-<code>blocking_list</code> or <code>scan</code> operation. <a href="../../trait.Accessor.html#associatedtype.BlockingPager">Read more</a></div></details><details class="rustdoc-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#ty [...]
-<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="rustdoc-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="cod [...]
-written size if operate successful. <a href="../../trait.Accessor.html#method.write">Read more</a></div></details><details class="rustdoc-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_wri [...]
-</div></details></div></details><details class="rustdoc-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  [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Backend%3CS%3E" class="ancho [...]
+<!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></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 [...]
+</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> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/adapters/kv/struct.Metadata.html b/docs/rust/opendal/raw/adapters/kv/struct.Metadata.html
index f75feeba..8bb5dd52 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="rustdoc-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#116-144">source</a><a href="#impl-Metadata" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="s [...]
-</div></details><details class="rustdoc-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#131-133">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="rustdoc-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#136-138">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.67.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Get the name.</p>
-</div></details><details class="rustdoc-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#141-143">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;< [...]
-</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="rustdoc-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#146-155">source</a><a href="#impl-From%3CMeta [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Metadata" class="anchor">§</a><h3  [...]
+<!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#116-144">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#131-133">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#136-138">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.capabilities" class="method has-srclink"><a class="srclink rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#141-143">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#146-155">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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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">§ [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/adapters/kv/trait.Adapter.html b/docs/rust/opendal/raw/adapters/kv/trait.Adapter.html
index 787af8dc..b72c2dfc 100644
--- a/docs/rust/opendal/raw/adapters/kv/trait.Adapter.html
+++ b/docs/rust/opendal/raw/adapters/kv/trait.Adapter.html
@@ -1,34 +1,34 @@
-<!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.67.1/std/primitive.str.html">str</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.67.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.67.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.67.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.67.1/std/primitive.str.html">str</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.67.1/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.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 [...]
 
-    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.67.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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.67.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.67.1/std/primitive.str.html">str</a>, value: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.67.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.67.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.67.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.67.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.67.1/std/primitive.str.html">str</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.67.1/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.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: [...]
     { ... }
-<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.67.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.67.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1. [...]
-}</code></pre></div><details class="rustdoc-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>
+<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. [...]
+}</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="rustdoc-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="stru [...]
-</div></details><details class="rustdoc-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.67.1/std/ [...]
+</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 [...]
 <ul>
 <li>return <code>Ok(None)</code> if this key is not exist.</li>
 </ul>
-</div></details><details class="rustdoc-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.6 [...]
-</div></details><details class="rustdoc-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. [...]
+</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 [...]
 <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="rustdoc-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, pat [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>, value: &amp;[<a class="primitive" href="https://do [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../../../type [...]
+</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. [...]
 <ul>
 <li>return <code>Ok(())</code> even if this key is not exist.</li>
 </ul>
-</div></details><details class="rustdoc-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.67.1/st [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="../../../type.Resu [...]
+</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" [...]
 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.67.1 (d [...]
\ 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.0 (2 [...]
\ 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 7624ddbd..8fe7f532 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/enum.AccessorCapability.html b/docs/rust/opendal/raw/enum.AccessorCapability.html
index cff78229..4553a215 100644
--- a/docs/rust/opendal/raw/enum.AccessorCapability.html
+++ b/docs/rust/opendal/raw/enum.AccessorCapability.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="AccessorCapability describes accessor’s advanced capability."><meta name="keywords" content="rust, rustlang, rust-lang, AccessorCapability"><title>AccessorCapability in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceS [...]
+<!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="AccessorCapability describes accessor’s advanced capability."><meta name="keywords" content="rust, rustlang, rust-lang, AccessorCapability"><title>AccessorCapability in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceS [...]
     Read,
     Write,
     List,
@@ -6,7 +6,7 @@
     Presign,
     Blocking,
     Batch,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>AccessorCapability describes accessor’s advanced capability.</p>
+}</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>AccessorCapability describes accessor’s advanced capability.</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.Read" class="variant"><a href="#variant.Read" class="anchor">§</a><h3 class="code-header">Read</h3></section><div class="docblock"><p>Add this capability if service supports <code>read</code> and <code>stat</code></p>
 </div><section id="variant.Write" class="variant"><a href="#variant.Write" class="anchor">§</a><h3 class="code-header">Write</h3></section><div class="docblock"><p>Add this capability if service supports <code>write</code> and <code>delete</code></p>
 </div><section id="variant.List" class="variant"><a href="#variant.List" class="anchor">§</a><h3 class="code-header">List</h3></section><div class="docblock"><p>Add this capability if service supports <code>list</code></p>
@@ -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="rustdoc-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#505-523">source</a><a href="#impl-BitAnd%3CR%3E-for-AccessorCapability" class="anch [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-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#505-523">source</a><a href="#impl-Rem%3CR%3E-for-AccessorCapability" class="anc [...]
-</div></details></div></details><details class="rustdoc-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 [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AccessorCapability" clas [...]
+</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#505-523">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#505-523">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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/enum.AccessorHint.html b/docs/rust/opendal/raw/enum.AccessorHint.html
index 0e84f5d2..e2a2225a 100644
--- a/docs/rust/opendal/raw/enum.AccessorHint.html
+++ b/docs/rust/opendal/raw/enum.AccessorHint.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="AccessorHint describes accessor’s hint."><meta name="keywords" content="rust, rustlang, rust-lang, AccessorHint"><title>AccessorHint in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.tt [...]
+<!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="AccessorHint describes accessor’s hint."><meta name="keywords" content="rust, rustlang, rust-lang, AccessorHint"><title>AccessorHint in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.tt [...]
     ReadSeekable,
     ReadStreamable,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>AccessorHint describes accessor’s hint.</p>
+}</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>AccessorHint describes accessor’s hint.</p>
 <p>Hint means developers can do optimize for this accessor.</p>
 <p>All hints are internal used only and will not be exposed to users.</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.ReadSeekable" class="variant"><a href="#variant.ReadSeekable" class="anchor">§</a><h3 class="code-header">ReadSeekable</h3></section><div class="docblock"><p>Read seekable means the underlying read is seekable.</p>
 <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="rustdoc-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#525-541">source</a><a href="#impl-BitAnd%3CR%3E-for-AccessorHint" class="anchor">§</a><h3 [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-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#525-541">source</a><a href="#impl-Rem%3CR%3E-for-AccessorHint" class="anchor">§</a><h [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AccessorHint" class="anchor">§ [...]
+</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#525-541">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#525-541">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></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  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/enum.AsyncBody.html b/docs/rust/opendal/raw/enum.AsyncBody.html
index 2d11959d..5f9e92d0 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 [...]
+<!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.67.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,&nbsp;Bytes),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Body used in async HTTP requests.</p>
+    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),
+}</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.67.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>
+</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>
 <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="rustdoc-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- [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AsyncBody" class="anchor">§</a><h [...]
+</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= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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" [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/enum.BatchedResults.html b/docs/rust/opendal/raw/enum.BatchedResults.html
index 61b625f0..7d0291f6 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.67.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.67.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="rustdoc-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.67.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.67.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="rustdoc-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.BatchedR [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return if given results is em [...]
-</div></details><details class="rustdoc-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.67.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="rustdoc-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.67.1/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Return the length of error res [...]
-</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.67.1/core/panic/unwind_safe/trait.R [...]
-</div></details></div></details><details class="rustdoc-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  [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BatchedResults" class="ancho [...]
+<!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;),
+}</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></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> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/enum.Body.html b/docs/rust/opendal/raw/enum.Body.html
index 1730957f..7e4c3c6f 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= [...]
+<!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.67.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.67.1/std/io/trait.Read.html" title="trait std::io::Read">Read</a> + <a class="trait" href="https://doc.rust-lang.org/1.67.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>&gt;),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Body used in blocking HTTP requests.</p>
+    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;),
+}</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.67.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.67.1/std/io/trait.Read.html" title="trait std::io::Read">Read</a> + <a class="trait" href="https://doc.rust-lang.org/1.67.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="rustdoc-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="e [...]
-</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="rustdoc-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>< [...]
-how many bytes were read. <a href="https://doc.rust-lang.org/1.67.1/std/io/trait.Read.html#tymethod.read">Read more</a></div></details><details class="rustdoc-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.67.1/src/std/io/mod.rs.html#645">source</a></span><a href="#method.rea [...]
-implementation. <a href="https://doc.rust-lang.org/1.67.1/std/io/trait.Read.html#method.is_read_vectored">Read more</a></div></details><details class="rustdoc-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.67.1/src/std/io/mod.rs.html#709">source</a></span><a href="#method.read_to [...]
-</div></details></div></details><details class="rustdoc-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: [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Body" class="anchor">§</a><h3 class="c [...]
+</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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="a [...]
-the underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-l [...]
-the underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.u16.html">u16</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1 [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.u32.html">u32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/en [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.u64.html">u64</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/en [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.u128.html">u128</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/resu [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.i8.html">i8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.i32.html">i32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/en [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.i64.html">i64</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/en [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.i128.html">i128</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/resu [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.f32.html">f32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/en [...]
-point numbers from the underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.f32.html">f32</a>]) -&gt; <a cl [...]
-point numbers from the underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.f64.html">f64</a>]) -&gt; <a 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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/enum.Operation.html b/docs/rust/opendal/raw/enum.Operation.html
index 96ba5d4e..20dea8b2 100644
--- a/docs/rust/opendal/raw/enum.Operation.html
+++ b/docs/rust/opendal/raw/enum.Operation.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="Operation is the name for APIs in `Accessor`."><meta name="keywords" content="rust, rustlang, rust-lang, Operation"><title>Operation in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.tt [...]
+<!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="Operation is the name for APIs in `Accessor`."><meta name="keywords" content="rust, rustlang, rust-lang, Operation"><title>Operation in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.tt [...]
 pub enum Operation {
-<details class="rustdoc-toggle type-contents-toggle"><summary class="hideme"><span>Show 17 variants</span></summary>    Info,
+<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 17 variants</span></summary>    Info,
     Create,
     Read,
     Write,
@@ -17,8 +17,8 @@ pub enum Operation {
     BlockingDelete,
     BlockingList,
     BlockingScan,
-</details>}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Operation is the name for APIs in <code>Accessor</code>.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants (Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details class="rustdoc-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 [...]
+</details>}</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Operation is the name for APIs in <code>Accessor</code>.</p>
+</div></details><h2 id="variants" class="variants 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.Create" class="variant"><a href="#variant.Create" class="anchor">§</a><h3 class="code-header">Create</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.create" title="crate::raw::Accessor::create"><code>crate::raw::Accessor::create</code></a></p>
 </div><section id="variant.Read" class="variant"><a href="#variant.Read" class="anchor">§</a><h3 class="code-header">Read</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.read" title="crate::raw::Accessor::read"><code>crate::raw::Accessor::read</code></a></p>
 </div><section id="variant.Write" class="variant"><a href="#variant.Write" class="anchor">§</a><h3 class="code-header">Write</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.write" title="crate::raw::Accessor::write"><code>crate::raw::Accessor::write</code></a></p>
@@ -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="rustdoc-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 [...]
-</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="rustdoc-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 [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></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.67.1/core/ [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Operation" class="anchor">§</a><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-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></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= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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" [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/fn.build_abs_path.html b/docs/rust/opendal/raw/fn.build_abs_path.html
index 555a97a0..b9f41a00 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.build_rel_path.html b/docs/rust/opendal/raw/fn.build_rel_path.html
index f8f1ea71..8681cdc6 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 f41934e0..162d6303 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 89927af3..dc0ecff8 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 e0c7261d..52fbc58b 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.format_content_md5.html b/docs/rust/opendal/raw/fn.format_content_md5.html
index 7e40ae47..ea3f4728 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.get_basename.html b/docs/rust/opendal/raw/fn.get_basename.html
index 56040b37..c8004a28 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.get_parent.html b/docs/rust/opendal/raw/fn.get_parent.html
index c09b0ba1..9d667e51 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 3a00fc61..80f318a4 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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 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
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 61ca0ae8..44118887 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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 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
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 ef5abb9a..c3e7d944 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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="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
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 b2557fee..c504cc81 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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="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
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 d7091251..c792c36e 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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 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
diff --git a/docs/rust/opendal/raw/fn.normalize_path.html b/docs/rust/opendal/raw/fn.normalize_path.html
index 9cd8bfc6..26e36984 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.normalize_root.html b/docs/rust/opendal/raw/fn.normalize_root.html
index 0f9b308b..c9418d28 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.parse_content_disposition.html b/docs/rust/opendal/raw/fn.parse_content_disposition.html
index e9fa4375..94e973db 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.parse_content_length.html b/docs/rust/opendal/raw/fn.parse_content_length.html
index da84ebe3..4ccbc160 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.parse_content_md5.html b/docs/rust/opendal/raw/fn.parse_content_md5.html
index 074cb5f0..0a6aecb9 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.parse_content_range.html b/docs/rust/opendal/raw/fn.parse_content_range.html
index 67ef15c4..e2a52a6a 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.parse_content_type.html b/docs/rust/opendal/raw/fn.parse_content_type.html
index 754ed716..a2788b0d 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.parse_error_response.html b/docs/rust/opendal/raw/fn.parse_error_response.html
index 439a9a0f..ecac3c66 100644
--- a/docs/rust/opendal/raw/fn.parse_error_response.html
+++ b/docs/rust/opendal/raw/fn.parse_error_response.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="parse_error_response will parse response into `ErrorResponse`."><meta name="keywords" content="rust, rustlang, rust-lang, parse_error_response"><title>parse_error_response 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="parse_error_response will parse response into `ErrorResponse`."><meta name="keywords" content="rust, rustlang, rust-lang, parse_error_response"><title>parse_error_response in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/S [...]
 <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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.parse_etag.html b/docs/rust/opendal/raw/fn.parse_etag.html
index f79a87a1..35fdba6d 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.parse_into_metadata.html b/docs/rust/opendal/raw/fn.parse_into_metadata.html
index 29ab30a8..197babe1 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.parse_last_modified.html b/docs/rust/opendal/raw/fn.parse_last_modified.html
index 9b6e6c34..bc583a88 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.parse_location.html b/docs/rust/opendal/raw/fn.parse_location.html
index 33524257..88d766b0 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.percent_encode_path.html b/docs/rust/opendal/raw/fn.percent_encode_path.html
index 029bc349..4827aac1 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/fn.validate_path.html b/docs/rust/opendal/raw/fn.validate_path.html
index fc7e2916..ac8306de 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/index.html b/docs/rust/opendal/raw/index.html
index e78ddfb7..405ffe9c 100644
--- a/docs/rust/opendal/raw/index.html
+++ b/docs/rust/opendal/raw/index.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="Raw modules provide raw APIs that used by underlying services"><meta name="keywords" content="rust, rustlang, rust-lang, raw"><title>opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
+<!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="Raw modules provide raw APIs that used by underlying services"><meta name="keywords" content="rust, rustlang, rust-lang, raw"><title>opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
 <h3 id="notes"><a href="#notes">Notes</a></h3>
 <ul>
 <li>Only developers who want to develop new services or layers need to
@@ -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 4de77a15..bc59db19 100644
--- a/docs/rust/opendal/raw/oio/enum.PageOperation.html
+++ b/docs/rust/opendal/raw/oio/enum.PageOperation.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="PageOperation is the name for APIs of pager."><meta name="keywords" content="rust, rustlang, rust-lang, PageOperation"><title>PageOperation in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d [...]
+<!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="PageOperation is the name for APIs of pager."><meta name="keywords" content="rust, rustlang, rust-lang, PageOperation"><title>PageOperation in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d [...]
 pub enum PageOperation {
     Next,
     BlockingNext,
-}</code></pre></div><details class="rustdoc-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="rustdoc-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 [...]
+}</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="rustdoc-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.Page [...]
-</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="rustdoc-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 [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></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. [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PageOperation" class="anchor" [...]
+</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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconsta [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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= [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/oio/enum.ReadOperation.html b/docs/rust/opendal/raw/oio/enum.ReadOperation.html
index 0db2c753..23e4eb3b 100644
--- a/docs/rust/opendal/raw/oio/enum.ReadOperation.html
+++ b/docs/rust/opendal/raw/oio/enum.ReadOperation.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="PageOperation is the name for APIs of pager."><meta name="keywords" content="rust, rustlang, rust-lang, ReadOperation"><title>ReadOperation in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d [...]
+<!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="PageOperation is the name for APIs of pager."><meta name="keywords" content="rust, rustlang, rust-lang, ReadOperation"><title>ReadOperation in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d [...]
 pub enum ReadOperation {
     Read,
     Seek,
@@ -6,22 +6,22 @@ pub enum ReadOperation {
     BlockingRead,
     BlockingSeek,
     BlockingNext,
-}</code></pre></div><details class="rustdoc-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="rustdoc-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 [...]
+}</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.Seek" class="variant"><a href="#variant.Seek" class="anchor">§</a><h3 class="code-header">Seek</h3></section><div class="docblock"><p>Operation for <a href="trait.Read.html#tymethod.poll_seek" title="Read::poll_seek"><code>Read::poll_seek</code></a></p>
 </div><section id="variant.Next" class="variant"><a href="#variant.Next" class="anchor">§</a><h3 class="code-header">Next</h3></section><div class="docblock"><p>Operation for <a href="trait.Read.html#tymethod.poll_next" title="Read::poll_next"><code>Read::poll_next</code></a></p>
 </div><section id="variant.BlockingRead" class="variant"><a href="#variant.BlockingRead" class="anchor">§</a><h3 class="code-header">BlockingRead</h3></section><div class="docblock"><p>Operation for <a href="trait.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="rustdoc-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.Read [...]
-</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="rustdoc-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 [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></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. [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ReadOperation" class="anchor" [...]
+</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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconsta [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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= [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/oio/enum.WriteOperation.html b/docs/rust/opendal/raw/oio/enum.WriteOperation.html
index 0b2fadb5..a653738f 100644
--- a/docs/rust/opendal/raw/oio/enum.WriteOperation.html
+++ b/docs/rust/opendal/raw/oio/enum.WriteOperation.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="WriteOperation is the name for APIs of Writer."><meta name="keywords" content="rust, rustlang, rust-lang, WriteOperation"><title>WriteOperation in opendal::raw::oio - 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="WriteOperation is the name for APIs of Writer."><meta name="keywords" content="rust, rustlang, rust-lang, WriteOperation"><title>WriteOperation in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular- [...]
 pub enum WriteOperation {
     Write,
     Append,
@@ -6,22 +6,22 @@ pub enum WriteOperation {
     BlockingWrite,
     BlockingAppend,
     BlockingClose,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>WriteOperation is the name for APIs of Writer.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants (Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details class="rustdoc-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 [...]
+}</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>WriteOperation is the name for APIs of Writer.</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.Append" class="variant"><a href="#variant.Append" class="anchor">§</a><h3 class="code-header">Append</h3></section><div class="docblock"><p>Operation for <a href="trait.Write.html#tymethod.append" title="Write::append"><code>Write::append</code></a></p>
 </div><section id="variant.Close" class="variant"><a href="#variant.Close" class="anchor">§</a><h3 class="code-header">Close</h3></section><div class="docblock"><p>Operation for <a href="trait.Write.html#tymethod.close" title="Write::close"><code>Write::close</code></a></p>
 </div><section id="variant.BlockingWrite" class="variant"><a href="#variant.BlockingWrite" class="anchor">§</a><h3 class="code-header">BlockingWrite</h3></section><div class="docblock"><p>Operation for <a href="trait.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="rustdoc-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.W [...]
-</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="rustdoc-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="anc [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></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 [...]
-</div></details></div></details><details class="rustdoc-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  [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-WriteOperation" class="ancho [...]
+</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></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> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
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 dac1fee0..ae672c07 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 25760d90..8caa95d5 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 0dc27240..509aac3c 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/oio/index.html b/docs/rust/opendal/raw/oio/index.html
index cd63bf15..27b946e0 100644
--- a/docs/rust/opendal/raw/oio/index.html
+++ b/docs/rust/opendal/raw/oio/index.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="`oio` provides OpenDAL’s raw traits and types that opendal returns as output."><meta name="keywords" content="rust, rustlang, rust-lang, oio"><title>opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regula [...]
+<!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="`oio` provides OpenDAL’s raw traits and types that opendal returns as output."><meta name="keywords" content="rust, rustlang, rust-lang, oio"><title>opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regula [...]
 output.</p>
 <p>Those types should only be used internally and we don’t want users to
 depend on them. So we should also implement trait like <code>AsyncRead</code> for
@@ -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 65b70fe2..65785d79 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 735bf1ca..09396b5f 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 [...]
+<!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 bf9ea476..0efa0fe4 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="rustdoc-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-FdR [...]
+<!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="rustdoc-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.67.1/ [...]
-</div></details></div></details><details class="rustdoc-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="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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FdReader%3CR%3E" class="anc [...]
+</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></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">§</ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
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 4115a98d..7f66d84e 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 102c9b7e..77b99115 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/oio/into_reader/index.html b/docs/rust/opendal/raw/oio/into_reader/index.html
index 0a80e474..33e8099d 100644
--- a/docs/rust/opendal/raw/oio/into_reader/index.html
+++ b/docs/rust/opendal/raw/oio/into_reader/index.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="into_reader will provide different implementations to convert into [`oio::Read`][crate::raw::oio::Read]"><meta name="keywords" content="rust, rustlang, rust-lang, into_reader"><title>opendal::raw::oio::into_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin  [...]
+<!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_reader will provide different implementations to convert into [`oio::Read`][crate::raw::oio::Read]"><meta name="keywords" content="rust, rustlang, rust-lang, into_reader"><title>opendal::raw::oio::into_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin  [...]
 <a href="../trait.Read.html" title="crate::raw::oio::Read"><code>oio::Read</code></a></p>
 <ul>
 <li>(Some(offset), Some(size)) =&gt; by_range</li>
@@ -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 1828f889..92253442 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="rustdoc-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="anch [...]
+<!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="rustdoc-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 c [...]
-</div></details></div></details><details class="rustdoc-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="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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FdReader%3CR%3E" class="anc [...]
+</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">§</ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
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 82d75076..9d45b9b7 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="rustdoc-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" cla [...]
-</div></details></div></details><details class="rustdoc-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 [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RangeReader%3CA%3E" clas [...]
+<!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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/oio/struct.Cursor.html b/docs/rust/opendal/raw/oio/struct.Cursor.html
index 5ee20c68..cf28868c 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="rustdoc-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.h [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.u8.html">u8</a>] <a href="#" class="notable-traits" data-ty="&a [...]
-</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="rustdoc-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=" [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Cursor" class="anchor">§</a><h3 clas [...]
+<!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></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- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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;mut [<a class=\"primitive\" href=\"https://doc.rust-lang.org/1.67.1/std/primitive.u8. [...]
\ No newline at end of file
+<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> [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/oio/struct.Entry.html b/docs/rust/opendal/raw/oio/struct.Entry.html
index fd0f2b1b..848f20d9 100644
--- a/docs/rust/opendal/raw/oio/struct.Entry.html
+++ b/docs/rust/opendal/raw/oio/struct.Entry.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="Entry is returned by `Page` or `BlockingPage` during list operations."><meta name="keywords" content="rust, rustlang, rust-lang, Entry"><title>Entry in opendal::raw::oio - 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="Entry is returned by `Page` or `BlockingPage` during list operations."><meta name="keywords" content="rust, rustlang, rust-lang, Entry"><title>Entry in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Reg [...]
 <h2 id="notes"><a href="#notes">Notes</a></h2>
 <p>Differences between <code>crate::Entry</code> and <code>oio::Entry</code>:</p>
 <ul>
 <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="rustdoc-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" [...]
-</div></details><details class="rustdoc-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.67.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, meta: <a class="struct" href="../../struct.Metada [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67 [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Get the path of entry.</p>
-</div></details><details class="rustdoc-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.67.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-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 [...]
 <h5 id="note"><a href="#note">Note</a></h5>
 <p>Please use this function carefully.</p>
-</div></details><details class="rustdoc-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="rustdoc-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 clas [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></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.67.1/core/cmp/trait [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Entry" class="anchor">§</a><h3 class= [...]
+</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><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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/oio/struct.IntoStreamableReader.html b/docs/rust/opendal/raw/oio/struct.IntoStreamableReader.html
index 56eb6301..dab551d5 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="rustdoc-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-IntoStre [...]
-</div></details></div></details><details class="rustdoc-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.Inst [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-IntoStreamableR [...]
+<!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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/oio/struct.ToFlatPager.html b/docs/rust/opendal/raw/oio/struct.ToFlatPager.html
index 8d6ef47e..c17cb87c 100644
--- a/docs/rust/opendal/raw/oio/struct.ToFlatPager.html
+++ b/docs/rust/opendal/raw/oio/struct.ToFlatPager.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="ToFlatPager will walk dir in bottom up way:"><meta name="keywords" content="rust, rustlang, rust-lang, ToFlatPager"><title>ToFlatPager in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b1 [...]
+<!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="ToFlatPager will walk dir in bottom up way:"><meta name="keywords" content="rust, rustlang, rust-lang, ToFlatPager"><title>ToFlatPager in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b1 [...]
 <ul>
 <li>List nested dir first</li>
 <li>Go back into parent dirs one by one</li>
@@ -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="rustdoc-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-ToFlatPage [...]
-</div></details></div></details><details class="rustdoc-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.Instrume [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ToFlatPager%3CA%2 [...]
+</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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/oio/struct.ToHierarchyPager.html b/docs/rust/opendal/raw/oio/struct.ToHierarchyPager.html
index 1d24e110..44e952a5 100644
--- a/docs/rust/opendal/raw/oio/struct.ToHierarchyPager.html
+++ b/docs/rust/opendal/raw/oio/struct.ToHierarchyPager.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="ToHierarchyPager will convert a flat page to hierarchy by filter not needed entries."><meta name="keywords" content="rust, rustlang, rust-lang, ToHierarchyPager"><title>ToHierarchyPager in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href=". [...]
+<!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="ToHierarchyPager will convert a flat page to hierarchy by filter not needed entries."><meta name="keywords" content="rust, rustlang, rust-lang, ToHierarchyPager"><title>ToHierarchyPager in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href=". [...]
 not needed entries.</p>
 <h2 id="notes"><a href="#notes">Notes</a></h2>
 <p>ToHierarchyPager filter entries after fetch entries. So it’s possible
 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="rustdoc-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-ToHiera [...]
-</div></details></div></details><details class="rustdoc-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.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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ToHierarchyPager%3C [...]
+</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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a hre [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/oio/trait.BlockingPage.html b/docs/rust/opendal/raw/oio/trait.BlockingPage.html
index 29b2417c..88767dd0 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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="../../typ [...]
+<!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:: [...]
+}</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 [...]
 <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="rustdoc-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.B [...]
\ 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 9be8e762..28b7f10b 100644
--- a/docs/rust/opendal/raw/oio/trait.BlockingRead.html
+++ b/docs/rust/opendal/raw/oio/trait.BlockingRead.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="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.67.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.67.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.67.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.67.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.67.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="rustdoc-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>
+<!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;;
+}</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>
 <li><code>Read</code></li>
@@ -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="rustdoc-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" h [...]
-</div></details><details class="rustdoc-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.67.1/std/io/enum.SeekFrom.html" title="enum std::io::SeekFrom">SeekFrom</a>) -&gt; <a class="type" href="../../type.Result.html [...]
-</div></details><details class="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="type" href="../../type.Result.htm [...]
-</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="rustdoc-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="a [...]
-how many bytes were read. <a href="https://doc.rust-lang.org/1.67.1/std/io/trait.Read.html#tymethod.read">Read more</a></div></details><details class="rustdoc-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.67.1/src/std/io/mod.rs.html#645">source</a></span><a href="#method.rea [...]
-implementation. <a href="https://doc.rust-lang.org/1.67.1/std/io/trait.Read.html#method.is_read_vectored">Read more</a></div></details><details class="rustdoc-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.67.1/src/std/io/mod.rs.html#709">source</a></span><a href="#method.read_to [...]
+</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 [...]
 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.67.1/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.0/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 78eca9a9..b0af5de1 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.67.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.67.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.67.1/std/primitive.unit.html">()</a>&gt;;
-}</code></pre></div><details class="rustdoc-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="rustdoc-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"  [...]
-</div></details><details class="rustdoc-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.67.1/std/primi [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.unit.html [...]
-</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="rustdoc-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="trai [...]
+<!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;;
+}</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 [...]
 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.67 [...]
\ 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 6efbf01e..de6f35df 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.67.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.67.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="rustdoc-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>
+<!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 [...]
+}</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="rustdoc-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;&nb [...]
+</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="rustdoc-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="t [...]
\ 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 c06e2507..63458776 100644
--- a/docs/rust/opendal/raw/oio/trait.Read.html
+++ b/docs/rust/opendal/raw/oio/trait.Read.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="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.67.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.67.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.67.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.67. [...]
-<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.67.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.67.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.67.1/core/option/enum. [...]
-}</code></pre></div><details class="rustdoc-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>
+<!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. [...]
+}</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>
 <li><code>AsyncRead</code></li>
@@ -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="rustdoc-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 s [...]
-</div></details><details class="rustdoc-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.67.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt; [...]
+</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: < [...]
 <p>Returns <code>Unsupported</code> error if underlying reader doesn’t support seek.</p>
-</div></details><details class="rustdoc-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.67.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&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.0/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="rustdoc-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><h [...]
-IO operations. <a>Read more</a></div></details></div></details><details class="rustdoc-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 [...]
+</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="rustdoc-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.67.1/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/ [...]
+<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 [...]
 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.67.1/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.0/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 1e13f60b..209e825d 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.67.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.67.1/std/io/enum.SeekFrom.html" title="enum std::io::SeekFrom">SeekFrom</a>) -&gt; SeekFuture&lt;'_, Self&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="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; { ... }
 <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="rustdoc-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="rustdoc-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 cla [...]
-</div></details><details class="rustdoc-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.67.1/std/io/enum.SeekFrom.html" title="enum std::io::SeekFrom">SeekFrom</a>) -&gt; SeekFuture&lt;'_, Self&gt;</h4></section></s [...]
-</div></details><details class="rustdoc-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>
+}</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><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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/oio/trait.Write.html b/docs/rust/opendal/raw/oio/trait.Write.html
index 3b78aa34..b69e954a 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.67.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.67.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.67.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.67.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.67.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.67.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="t [...]
-}</code></pre></div><details class="rustdoc-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="rustdoc-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 [...]
+<!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 [...]
+}</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;& [...]
 <p>To append multiple bytes together, use <code>append</code> instead.</p>
-</div></details><details class="rustdoc-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.67.1/core/pin [...]
+</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. [...]
 <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="rustdoc-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.67.1/core/pin/struct.Pin.html" title="struct core::pin [...]
-</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="rustdoc-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" tit [...]
+</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 [...]
 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 cea8df17..a1f891f9 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="rustdoc-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">§ [...]
\ 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 ce00f19f..ea60c957 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/oio/type.BlockingWriter.html b/docs/rust/opendal/raw/oio/type.BlockingWriter.html
index 3fec3986..488f9dfd 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/oio/type.Pager.html b/docs/rust/opendal/raw/oio/type.Pager.html
index 6f7eee72..b2e5ea44 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="rustdoc-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 < [...]
\ 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 c117729a..933b0dbe 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/oio/type.Writer.html b/docs/rust/opendal/raw/oio/type.Writer.html
index da5efd7e..47a74dac 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/opendal/raw/struct.AccessorInfo.html b/docs/rust/opendal/raw/struct.AccessorInfo.html
index aaeb7537..eb782a0d 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="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#438-503">source</a><a href="#impl-AccessorInfo" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct [...]
-</div></details><details class="rustdoc-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#445-448">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.67.1/std/p [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#451-453">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.67.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Root of backend, will be in forma [...]
-</div></details><details class="rustdoc-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#458-461">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.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="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#438-503">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#445-448">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#451-453">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#458-461">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 [...]
 <p>Note: input root must be normalized.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#469-471">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.67.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Name of backend, could be empty i [...]
+</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#469-471">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 [...]
 <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="rustdoc-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#474-477">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1 [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.capabilities" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#480-482">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></sum [...]
-</div></details><details class="rustdoc-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#485-491">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.67.1/core/convert/tr [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hints" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#494-496">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 backe [...]
-</div></details><details class="rustdoc-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#499-502">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.67.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;FlagSet&lt;<a class="e [...]
-</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="rustdoc-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#429">source</a><a href="#impl-Clone-for-AccessorInfo" class="anchor">§< [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AccessorInfo" class="anchor">§ [...]
+</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#474-477">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.capabilities" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#480-482">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#485-491">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.hints" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#494-496">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#499-502">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#429">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  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.BytesContentRange.html b/docs/rust/opendal/raw/struct.BytesContentRange.html
index c74b26d3..ff64cb91 100644
--- a/docs/rust/opendal/raw/struct.BytesContentRange.html
+++ b/docs/rust/opendal/raw/struct.BytesContentRange.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="BytesContentRange is the content range of bytes."><meta name="keywords" content="rust, rustlang, rust-lang, BytesContentRange"><title>BytesContentRange 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="BytesContentRange is the content range of bytes."><meta name="keywords" content="rust, rustlang, rust-lang, BytesContentRange"><title>BytesContentRange in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular- [...]
 <p><code>&lt;unit&gt;</code> should always be <code>bytes</code>.</p>
 <div class="example-wrap"><pre class="language-text"><code>Content-Range: bytes &lt;range-start&gt;-&lt;range-end&gt;/&lt;size&gt;
 Content-Range: bytes &lt;range-start&gt;-&lt;range-end&gt;/*
@@ -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="rustdoc-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  [...]
+</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="rustdoc-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.67.1/std/primitive.u64.html">u64</a>) -&gt; Self</h4></section></summary><div class="docblock"> [...]
-</div></details><details class="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="htt [...]
-</div></details><details class="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href=" [...]
-</div></details><details class="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href=" [...]
-</div></details><details class="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option [...]
-</div></details><details class="rustdoc-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.67.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4>< [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.u64.html">u64</a>, range: <a class="struct" href="str [...]
-</div></details><details class="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt; [...]
-</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="rustdoc-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-BytesC [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-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 [...]
-</div></details></div></details><details class="rustdoc-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=" [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BytesContentRange" class= [...]
+</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.156/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" [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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.156/src/serde/de/mod.rs.html#604">source< [...]
\ No newline at end of file
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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.156/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 b7818c38..03f0fef5 100644
--- a/docs/rust/opendal/raw/struct.BytesRange.html
+++ b/docs/rust/opendal/raw/struct.BytesRange.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="BytesRange(offset, size) carries a range of content."><meta name="keywords" content="rust, rustlang, rust-lang, BytesRange"><title>BytesRange in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b17 [...]
+<!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="BytesRange(offset, size) carries a range of content."><meta name="keywords" content="rust, rustlang, rust-lang, BytesRange"><title>BytesRange in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b17 [...]
 <p>BytesRange implements <code>ToString</code> which can be used as <code>Range</code> HTTP header directly.</p>
 <p><code>&lt;unit&gt;</code> should always be <code>bytes</code>.</p>
 <div class="example-wrap"><pre class="language-text"><code>Range: bytes=&lt;range-start&gt;-
@@ -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="rustdoc-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 [...]
+</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="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="ht [...]
-</div></details><details class="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https:// [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if this ra [...]
+</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 [...]
 <p>If this range is full, we don’t need to specify it in http request.</p>
-</div></details><details class="rustdoc-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.67.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.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 [...]
 <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="rustdoc-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.67.1/core/ops/range/trait.RangeBounds.html" title="trait core::ops::range::RangeBounds">RangeBound [...]
-</div></details><details class="rustdoc-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="rustdoc-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="an [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></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.or [...]
-</div></details></div></details><details class="rustdoc-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: [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BytesRange" class="anchor">§</a> [...]
+</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.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><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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.ErrorResponse.html b/docs/rust/opendal/raw/struct.ErrorResponse.html
index ca141541..c0417d8c 100644
--- a/docs/rust/opendal/raw/struct.ErrorResponse.html
+++ b/docs/rust/opendal/raw/struct.ErrorResponse.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="ErrorResponse carries HTTP status code, headers and body."><meta name="keywords" content="rust, rustlang, rust-lang, ErrorResponse"><title>ErrorResponse 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="ErrorResponse carries HTTP status code, headers and body."><meta name="keywords" content="rust, rustlang, rust-lang, ErrorResponse"><title>ErrorResponse in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular [...]
 <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="rustdoc-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= [...]
-</div></details><details class="rustdoc-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= [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.u8.html">u8</a>] <a href="#" class="notable-traits" data-ty="&amp;[u8]">ⓘ</a></h4></section></ [...]
-</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="rustdoc-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" cl [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ErrorResponse" 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-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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconsta [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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;mut [<a class=\"primitive\" href=\"https://doc.rust-lang.org/1.67.1/std/primitive.u8. [...]
\ No newline at end of file
+<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= [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.HttpClient.html b/docs/rust/opendal/raw/struct.HttpClient.html
index cf38ce8d..b68df78c 100644
--- a/docs/rust/opendal/raw/struct.HttpClient.html
+++ b/docs/rust/opendal/raw/struct.HttpClient.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="HttpClient that used across opendal."><meta name="keywords" content="rust, rustlang, rust-lang, HttpClient"><title>HttpClient in opendal::raw - 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="rustdoc-toggle implementors-toggle" open><summary><section id="impl-HttpClient" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#55-279">source</a><a href="#impl-HttpClient" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="str [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#136-141">source</a><h4 class="code-header">pub fn <a href="#method.with_client" class="fn">with_client</a>(async_client: <a class="struct" href="https://docs.rs/reqwest/0.11.13/reqwest/async_impl/client/struct.Client.html" title="struct reqwest::async_impl::client::Client"> [...]
+<!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="HttpClient that used across opendal."><meta name="keywords" content="rust, rustlang, rust-lang, HttpClient"><title>HttpClient in opendal::raw - 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-HttpClient" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#55-279">source</a><a href="#impl-HttpClient" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Http [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#136-141">source</a><h4 class="code-header">pub fn <a href="#method.with_client" class="fn">with_client</a>(async_client: <a class="struct" href="https://docs.rs/reqwest/0.11.13/reqwest/async_impl/client/struct.Client.html" title="struct reqwest::async_impl::client::Client">Client</ [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>By using this method, it’s caller’s duty to make sure everything
 configured correctly. Like proxy, dns resolver and so on.</p>
@@ -17,17 +17,17 @@ Auto redirect may cause OpenDAL to fail.</p>
 <p>For ureq client, please make sure your client’s redirect count is <code>0</code>:</p>
 
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>_client = ureq::AgentBuilder::new().redirects(<span class="number">0</span>).build();</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.async_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#144-146">source</a><h4 class="code-header">pub fn <a href="#method.async_client" class="fn">async_client</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/reqwest/0.11.13/reqwest/async_impl/client/struct.Client.html" title="struct reqwest::async_impl::client::Cl [...]
-</div></details><details class="rustdoc-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="rustdoc-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.ht [...]
-</div></details><details class="rustdoc-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="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="rustdoc-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" [...]
-</div><div class="impl-items"><details class="rustdoc-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.67.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.o [...]
-</div></details></div></details><details class="rustdoc-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: [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-HttpClient" class="anchor">§</a> [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.async_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#144-146">source</a><h4 class="code-header">pub fn <a href="#method.async_client" class="fn">async_client</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/reqwest/0.11.13/reqwest/async_impl/client/struct.Client.html" title="struct reqwest::async_impl::client::Client">Cl [...]
+</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><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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.IncomingAsyncBody.html b/docs/rust/opendal/raw/struct.IncomingAsyncBody.html
index 8cb4fef9..1979c722 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 [...]
+<!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="rustdoc-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="stru [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.uni [...]
-</div></details><details class="rustdoc-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  [...]
+</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><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="rustdoc-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" [...]
-</div></details></div></details><details class="rustdoc-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=" [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-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" [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.PresignedRequest.html b/docs/rust/opendal/raw/struct.PresignedRequest.html
index 09a1783f..a00f5688 100644
--- a/docs/rust/opendal/raw/struct.PresignedRequest.html
+++ b/docs/rust/opendal/raw/struct.PresignedRequest.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="PresignedRequest is a presigned request return by `presign`."><meta name="keywords" content="rust, rustlang, rust-lang, PresignedRequest"><title>PresignedRequest in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif [...]
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PresignedRequest" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#64-88">source</a><a href="#impl-PresignedRequest" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struc [...]
-</div></details><details class="rustdoc-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" [...]
-</div></details><details class="rustdoc-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="rustdoc-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><di [...]
-</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="rustdoc-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"> [...]
-</div></details></div></details><details class="rustdoc-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="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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PresignedRequest" class="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="PresignedRequest is a presigned request return by `presign`."><meta name="keywords" content="rust, rustlang, rust-lang, PresignedRequest"><title>PresignedRequest in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif [...]
+</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-PresignedRequest" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/rps.rs.html#64-88">source</a><a href="#impl-PresignedRequest" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Presig [...]
+</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><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">§ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associated [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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"  [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.RpBatch.html b/docs/rust/opendal/raw/struct.RpBatch.html
index bd54af8e..d08fceac 100644
--- a/docs/rust/opendal/raw/struct.RpBatch.html
+++ b/docs/rust/opendal/raw/struct.RpBatch.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 `batch` operation."><meta name="keywords" content="rust, rustlang, rust-lang, RpBatch"><title>RpBatch 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="rustdoc-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"  [...]
-</div></details><details class="rustdoc-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 resu [...]
-</div></details><details class="rustdoc-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 [...]
-</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.67.1/core/panic/unwind_safe/trait.RefUnwindSafe.h [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpBatch" class="anchor">§</a><h3 cl [...]
+<!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 `batch` operation."><meta name="keywords" content="rust, rustlang, rust-lang, RpBatch"><title>RpBatch 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-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><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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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">§</ [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.RpCreate.html b/docs/rust/opendal/raw/struct.RpCreate.html
index 8d4b61ff..fad46f8f 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="rustdoc-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 c [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpCreate" class="anchor">§</a><h3  [...]
+<!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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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">§ [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.RpDelete.html b/docs/rust/opendal/raw/struct.RpDelete.html
index 55725b54..e6e1b90b 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="rustdoc-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 c [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpDelete" class="anchor">§</a><h3  [...]
+<!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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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">§ [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.RpList.html b/docs/rust/opendal/raw/struct.RpList.html
index 39ce7c43..218ce74f 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="rustdoc-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 [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpList" class="anchor">§</a><h3 clas [...]
+<!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></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- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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> [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.RpPresign.html b/docs/rust/opendal/raw/struct.RpPresign.html
index b393fd25..2fc81e6d 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="rustdoc-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.ht [...]
-</div></details><details class="rustdoc-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></ [...]
-</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="rustdoc-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 [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpPresign" class="anchor">§</a><h [...]
+<!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><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= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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" [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.RpRead.html b/docs/rust/opendal/raw/struct.RpRead.html
index 652a3e96..f79dd62b 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="rustdoc-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" tit [...]
-</div></details><details class="rustdoc-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 [...]
-</div></details><details class="rustdoc-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="rustdoc-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 g [...]
-</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="rustdoc-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="cod [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpRead" class="anchor">§</a><h3 clas [...]
+<!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><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><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- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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> [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.RpScan.html b/docs/rust/opendal/raw/struct.RpScan.html
index cf90226a..24aa95ec 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="rustdoc-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 [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpScan" class="anchor">§</a><h3 clas [...]
+<!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></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- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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> [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.RpStat.html b/docs/rust/opendal/raw/struct.RpStat.html
index 6753c4a2..b8f92fb4 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="rustdoc-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" tit [...]
-</div></details><details class="rustdoc-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.67.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="struct" [...]
-</div></details><details class="rustdoc-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  [...]
-</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="rustdoc-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="cod [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpStat" class="anchor">§</a><h3 clas [...]
+<!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.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><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- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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> [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/struct.RpWrite.html b/docs/rust/opendal/raw/struct.RpWrite.html
index ad854a66..d5f2e65a 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="rustdoc-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"  [...]
-</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="rustdoc-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="c [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RpWrite" class="anchor">§</a><h3 cl [...]
+<!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><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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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">§</ [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/raw/trait.Accessor.html b/docs/rust/opendal/raw/trait.Accessor.html
index 84c03089..33ea8d71 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>;
@@ -6,33 +6,33 @@
     type <a href="#associatedtype.Pager" class="associatedtype">Pager</a>: <a class="trait" href="oio/trait.Page.html" title="trait opendal::raw::oio::Page">Page</a>;
     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="rustdoc-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>;
+<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.67.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; [...]
+    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; [...]
     { ... }
-<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.67.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.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.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.67.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.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.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.67.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.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.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.67.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.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.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.67.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.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.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.67.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.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.presign" class="fn">presign</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.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.67.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.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.blocking_create" class="fn">blocking_create</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.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.67.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.67.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.67.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.67.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.67.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.67.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="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Underlying trait of all backends for implementors.</p>
+<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 [...]
+</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>
 <h2 id="operations"><a href="#operations">Operations</a></h2>
@@ -59,16 +59,16 @@ basic operations.
 </ul>
 </li>
 </ul>
-</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="rustdoc-toggle method-toggle" open><summary><section id="associatedtype.Reader" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#52">source</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</ [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="associatedtype.BlockingReader" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#55">source</a><h4 class="code-header">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></h4></section></summary><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.Reader" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#52">source</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a>: <a class="trait" h [...]
+</div></details><details class="toggle" open><summary><section id="associatedtype.BlockingReader" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#55">source</a><h4 class="code-header">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></h4></section></summary><div class="docblock"><p>Bl [...]
 <code>blocking_read</code> operation.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="associatedtype.Writer" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#57">source</a><h4 class="code-header">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></h4></section></summary><div class="docblock"><p>Reader is the associated  [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="associatedtype.BlockingWriter" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#60">source</a><h4 class="code-header">type <a href="#associatedtype.BlockingWriter" class="associatedtype">BlockingWriter</a>: <a class="trait" href="oio/trait.BlockingWrite.html" title="trait opendal::raw::oio::BlockingWrite">BlockingWrite</a></h4></section></summary><d [...]
+</div></details><details class="toggle" open><summary><section id="associatedtype.Writer" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#57">source</a><h4 class="code-header">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></h4></section></summary><div class="docblock"><p>Reader is the associated writer the could retur [...]
+</div></details><details class="toggle" open><summary><section id="associatedtype.BlockingWriter" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#60">source</a><h4 class="code-header">type <a href="#associatedtype.BlockingWriter" class="associatedtype">BlockingWriter</a>: <a class="trait" href="oio/trait.BlockingWrite.html" title="trait opendal::raw::oio::BlockingWrite">BlockingWrite</a></h4></section></summary><div class="docblock"><p [...]
 <code>blocking_write</code> operation.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="associatedtype.Pager" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#62">source</a><h4 class="code-header">type <a href="#associatedtype.Pager" class="associatedtype">Pager</a>: <a class="trait" href="oio/trait.Page.html" title="trait opendal::raw::oio::Page">Page</a></h4></section></summary><div class="docblock"><p>Pager is the associated page th [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="associatedtype.BlockingPager" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#65">source</a><h4 class="code-header">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></h4></section></summary><div cla [...]
+</div></details><details class="toggle" open><summary><section id="associatedtype.Pager" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#62">source</a><h4 class="code-header">type <a href="#associatedtype.Pager" class="associatedtype">Pager</a>: <a class="trait" href="oio/trait.Page.html" title="trait opendal::raw::oio::Page">Page</a></h4></section></summary><div class="docblock"><p>Pager is the associated page that return in <code>lis [...]
+</div></details><details class="toggle" open><summary><section id="associatedtype.BlockingPager" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#65">source</a><h4 class="code-header">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></h4></section></summary><div class="docblock"><p>Block [...]
 <code>blocking_list</code> or <code>scan</code> operation.</p>
-</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="rustdoc-toggle method-toggle" open><summary><section id="tymethod.info" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#79">source</a><h4 class="code-header">fn <a href="#tymethod.info" class="fn">info</a>(&amp;self) -&gt; <a class="struct" href="struct.Ac [...]
+</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.info" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#79">source</a><h4 class="code-header">fn <a href="#tymethod.info" class="fn">info</a>(&amp;self) -&gt; <a class="struct" href="struct.AccessorIn [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>This function is required to be implemented.</p>
 <p>By returning AccessorInfo, underlying services can declare
@@ -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="rustdoc-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 [...]
+</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="rustdoc-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.67.1/std/primitive [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primit [...]
+</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. [...]
 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="rustdoc-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.67.1/std/primitive [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/pri [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive [...]
+</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 [...]
 <p>Require <a href="enum.AccessorCapability.html#variant.Scan" title="AccessorCapability::Scan"><code>AccessorCapability::Scan</code></a></p>
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpPresign.html" title="struct op [...]
+</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 [...]
 <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.67.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>
+<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>
 </ul>
-</div></details><details class="rustdoc-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">O [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpCreate [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>,<br> [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>,< [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpStat.html" t [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>, args: <a class="struct" href="../ops/struct.OpDelete [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>,<br> [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>,<br> [...]
+</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 [...]
 <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="rustdoc-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-344">source</a><a href="#impl-Accessor-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Accessor.htm [...]
-</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.67.1/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-344">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 [...]
 <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 242095bf..aaaec1d6 100644
--- a/docs/rust/opendal/raw/trait.Layer.html
+++ b/docs/rust/opendal/raw/trait.Layer.html
@@ -1,8 +1,8 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Layer is used to intercept the operations on the underlying storage."><meta name="keywords" content="rust, rustlang, rust-lang, Layer"><title>Layer in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Layer is used to intercept the operations on the underlying storage."><meta name="keywords" content="rust, rustlang, rust-lang, Layer"><title>Layer in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d [...]
     type <a href="#associatedtype.LayeredAccessor" class="associatedtype">LayeredAccessor</a>: <a class="trait" href="trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a>;
 
     fn <a href="#tymethod.layer" class="fn">layer</a>(&amp;self, inner: A) -&gt; Self::<a class="associatedtype" href="trait.Layer.html#associatedtype.LayeredAccessor" title="type opendal::raw::Layer::LayeredAccessor">LayeredAccessor</a>;
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Layer is used to intercept the operations on the underlying storage.</p>
+}</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Layer is used to intercept the operations on the underlying storage.</p>
 <p>Struct that implement this trait must accept input <code>Arc&lt;dyn Accessor&gt;</code> as inner,
 and returns a new <code>Arc&lt;dyn Accessor&gt;</code> as output.</p>
 <p>All functions in <code>Accessor</code> requires <code>&amp;self</code>, so it’s implementor’s responsibility
@@ -92,6 +92,6 @@ requires <code>Send</code> and <code>Sync</code>.</p>
         TraceAccessor { inner }
     }
 }</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="rustdoc-toggle method-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="associat [...]
-</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="rustdoc-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="associ [...]
-</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="rustdoc-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 [...]
\ 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"><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
diff --git a/docs/rust/opendal/raw/trait.LayeredAccessor.html b/docs/rust/opendal/raw/trait.LayeredAccessor.html
index 0d513b43..c64fd966 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>;
@@ -7,29 +7,29 @@
     type <a href="#associatedtype.Pager" class="associatedtype">Pager</a>: <a class="trait" href="oio/trait.Page.html" title="trait opendal::raw::oio::Page">Page</a>;
     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="rustdoc-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.67.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.67.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.67.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.67.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.67.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.67.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.67.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.67.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;& [...]
+<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;& [...]
 
     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.67.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.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.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.67.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.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.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.67.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.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.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.67.1/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.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.67.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.67.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.67.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.67.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="rustdoc-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
+<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:: [...]
+</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 b9fedd0a..7a8b502b 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 Reader&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/Source [...]
-</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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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 Reader&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/Source [...]
+</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
diff --git a/docs/rust/opendal/services/index.html b/docs/rust/opendal/services/index.html
index 2662283d..59399251 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 [...]
+<!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/datafuselabs/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 e31d7495..5459aa07 100644
--- a/docs/rust/opendal/services/struct.Azblob.html
+++ b/docs/rust/opendal/services/struct.Azblob.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="Azure Storage Blob services support."><meta name="keywords" content="rust, rustlang, rust-lang, Azblob"><title>Azblob in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
+<!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="Azure Storage Blob services support."><meta name="keywords" content="rust, rustlang, rust-lang, Azblob"><title>Azblob in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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#162-329">source</a><a href="#impl-AzblobBuilder" 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-AzblobBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#162-329">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="rustdoc-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#175-179">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.r [...]
-</div></details><details class="rustdoc-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#187-194">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.67.1/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.container" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#175-179">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#187-194">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 [...]
 <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="rustdoc-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#200-206">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="h [...]
+</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#200-206">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 [...]
 <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="rustdoc-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#212-218">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https [...]
+</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#212-218">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 [...]
 <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="rustdoc-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#227-233">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.67.1/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.sas_token" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#227-233">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 [...]
 <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="rustdoc-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#241-244">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" hre [...]
+</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#241-244">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="rustdoc-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#273-328">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href= [...]
+</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#273-328">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 [...]
 <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="rustdoc-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#331-419">source</a><a href="#impl-Builder-for-AzblobBuild [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AzblobBuilder" 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-AzblobBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/azblob/backend.rs.html#331-419">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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconsta [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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= [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Azdfs.html b/docs/rust/opendal/services/struct.Azdfs.html
index f64e55fd..0805447a 100644
--- a/docs/rust/opendal/services/struct.Azdfs.html
+++ b/docs/rust/opendal/services/struct.Azdfs.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="Azure Data Lake Storage Gen2 Support."><meta name="keywords" content="rust, rustlang, rust-lang, Azdfs"><title>Azdfs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
+<!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="Azure Data Lake Storage Gen2 Support."><meta name="keywords" content="rust, rustlang, rust-lang, Azdfs"><title>Azdfs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
 <p>As known as <code>abfs</code>, <code>azdfs</code> or <code>azdls</code>.</p>
 <p>This service will visist the <a href="https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-abfs-driver">ABFS</a> URI supported by <a href="https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-introduction">Azure Data Lake Storage Gen2</a>.</p>
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
@@ -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="rustdoc-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" hr [...]
+</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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://do [...]
-</div></details><details class="rustdoc-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.67.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.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/ [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="ht [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https: [...]
+</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 [...]
 <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="rustdoc-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 [...]
+</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="rustdoc-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" [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AzdfsBuilder" 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-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  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Dashmap.html b/docs/rust/opendal/services/struct.Dashmap.html
index c71058a7..233e1cba 100644
--- a/docs/rust/opendal/services/struct.Dashmap.html
+++ b/docs/rust/opendal/services/struct.Dashmap.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="dashmap backend support."><meta name="keywords" content="rust, rustlang, rust-lang, Dashmap"><title>Dashmap in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel=" [...]
+<!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="dashmap backend support."><meta name="keywords" content="rust, rustlang, rust-lang, Dashmap"><title>Dashmap in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel=" [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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">§< [...]
-</div></details></div></details><details class="rustdoc-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  [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-DashmapBuilder" class="ancho [...]
+</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> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Fs.html b/docs/rust/opendal/services/struct.Fs.html
index 0f143609..61f96109 100644
--- a/docs/rust/opendal/services/struct.Fs.html
+++ b/docs/rust/opendal/services/struct.Fs.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="POSIX file system support."><meta name="keywords" content="rust, rustlang, rust-lang, Fs"><title>Fs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" [...]
+<!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="POSIX file system support."><meta name="keywords" content="rust, rustlang, rust-lang, Fs"><title>Fs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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 [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="ht [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summa [...]
+</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  [...]
 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="rustdoc-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="a [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FsBuilder" class="anchor">§</a><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-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= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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" [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Ftp.html b/docs/rust/opendal/services/struct.Ftp.html
index b1a81ebe..abe615e5 100644
--- a/docs/rust/opendal/services/struct.Ftp.html
+++ b/docs/rust/opendal/services/struct.Ftp.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="FTP and FTPS services support."><meta name="keywords" content="rust, rustlang, rust-lang, Ftp"><title>Ftp in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pr [...]
+<!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="FTP and FTPS services support."><meta name="keywords" content="rust, rustlang, rust-lang, Ftp"><title>Ftp in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pr [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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="st [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lan [...]
-</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="rustdoc-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 [...]
-</div></details></div></details><details class="rustdoc-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: [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FtpBuilder" class="anchor">§</a> [...]
+</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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Gcs.html b/docs/rust/opendal/services/struct.Gcs.html
index 5ac87af6..030538db 100644
--- a/docs/rust/opendal/services/struct.Gcs.html
+++ b/docs/rust/opendal/services/struct.Gcs.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="Google Cloud Storage service."><meta name="keywords" content="rust, rustlang, rust-lang, Gcs"><title>Gcs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pre [...]
+<!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="Google Cloud Storage service."><meta name="keywords" content="rust, rustlang, rust-lang, Gcs"><title>Gcs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pre [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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="st [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1. [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.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-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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive [...]
+</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=" [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lan [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc. [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="htt [...]
-</div></details><details class="rustdoc-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=" [...]
+</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:// [...]
 <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="rustdoc-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.67.1/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div cl [...]
+</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 [...]
 <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="rustdoc-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-318">source</a><a href="#impl-Builder-for-GcsBuilder" class [...]
-</div></details></div></details><details class="rustdoc-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: [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-GcsBuilder" class="anchor">§</a> [...]
+</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-318">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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Ghac.html b/docs/rust/opendal/services/struct.Ghac.html
index aaca1a92..630a9317 100644
--- a/docs/rust/opendal/services/struct.Ghac.html
+++ b/docs/rust/opendal/services/struct.Ghac.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="GitHub Action Cache Services support."><meta name="keywords" content="rust, rustlang, rust-lang, Ghac"><title>Ghac in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
+<!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="GitHub Action Cache Services support."><meta name="keywords" content="rust, rustlang, rust-lang, Ghac"><title>Ghac in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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= [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.o [...]
+</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. [...]
 <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="rustdoc-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.67.1/std/primitive.reference.html">&amp;mut </a>Sel [...]
+</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></ [...]
 <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="rustdoc-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= [...]
+</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="rustdoc-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" cl [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-GhacBuilder" 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-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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Hdfs.html b/docs/rust/opendal/services/struct.Hdfs.html
index 3cb53127..d0c718bf 100644
--- a/docs/rust/opendal/services/struct.Hdfs.html
+++ b/docs/rust/opendal/services/struct.Hdfs.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="Hadoop Distributed File System (HDFS™) support."><meta name="keywords" content="rust, rustlang, rust-lang, Hdfs"><title>Hdfs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
+<!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="Hadoop Distributed File System (HDFS™) support."><meta name="keywords" content="rust, rustlang, rust-lang, Hdfs"><title>Hdfs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
 <p>A distributed file system that provides high-throughput access to application data.</p>
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
@@ -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="rustdoc-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= [...]
+</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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rus [...]
+</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 [...]
 <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="rustdoc-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" cl [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-HdfsBuilder" 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-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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Http.html b/docs/rust/opendal/services/struct.Http.html
index 473f392f..b131a04a 100644
--- a/docs/rust/opendal/services/struct.Http.html
+++ b/docs/rust/opendal/services/struct.Http.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="HTTP Read-only service support like Nginx and Caddy."><meta name="keywords" content="rust, rustlang, rust-lang, Http"><title>Http in opendal::services - 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="HTTP Read-only service support like Nginx and Caddy."><meta name="keywords" content="rust, rustlang, rust-lang, Http"><title>Http in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72. [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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=" [...]
+</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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-la [...]
+</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 [...]
 <p>default: no password</p>
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-la [...]
+</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 [...]
 <p>default: no password</p>
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67. [...]
+</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 [...]
 <p>default: no access token</p>
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1/st [...]
-</div></details><details class="rustdoc-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= [...]
+</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:/ [...]
 <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="rustdoc-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" cl [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-HttpBuilder" 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-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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Ipfs.html b/docs/rust/opendal/services/struct.Ipfs.html
index aca40f20..1d915f75 100644
--- a/docs/rust/opendal/services/struct.Ipfs.html
+++ b/docs/rust/opendal/services/struct.Ipfs.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="IPFS file system support based on IPFS HTTP Gateway."><meta name="keywords" content="rust, rustlang, rust-lang, Ipfs"><title>Ipfs in opendal::services - 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="IPFS file system support based on IPFS HTTP Gateway."><meta name="keywords" content="rust, rustlang, rust-lang, Ipfs"><title>Ipfs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72. [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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=" [...]
+</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.databend.rs/</code> (IPNS)</li>
+<li><code>/ipns/opendal.apache.org/</code> (IPNS)</li>
 </ul>
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-la [...]
+</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 [...]
 <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="rustdoc-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= [...]
+</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="rustdoc-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" cl [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-IpfsBuilder" 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-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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Ipmfs.html b/docs/rust/opendal/services/struct.Ipmfs.html
index 7fc41920..91dea4e6 100644
--- a/docs/rust/opendal/services/struct.Ipmfs.html
+++ b/docs/rust/opendal/services/struct.Ipmfs.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="IPFS file system support based on IPFS MFS API."><meta name="keywords" content="rust, rustlang, rust-lang, Ipmfs"><title>Ipmfs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="IPFS file system support based on IPFS MFS API."><meta name="keywords" content="rust, rustlang, rust-lang, Ipmfs"><title>Ipmfs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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" hre [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lan [...]
+</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. [...]
 <p>Default: http://localhost:5001</p>
-</div></details><details class="rustdoc-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 [...]
+</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="rustdoc-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" [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-IpmfsBuilder" 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-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  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Memcached.html b/docs/rust/opendal/services/struct.Memcached.html
index bd0f8fc3..b1fbcc36 100644
--- a/docs/rust/opendal/services/struct.Memcached.html
+++ b/docs/rust/opendal/services/struct.Memcached.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="Memcached service support."><meta name="keywords" content="rust, rustlang, rust-lang, Memcached"><title>Memcached in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
+<!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="Memcached service support."><meta name="keywords" content="rust, rustlang, rust-lang, Memcached"><title>Memcached in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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= [...]
+</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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67 [...]
+</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 [...]
 <p>default: “/”</p>
-</div></details><details class="rustdoc-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.67.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -& [...]
-</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="rustdoc-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-Memca [...]
-</div></details></div></details><details class="rustdoc-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="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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MemcachedBuilder" class="a [...]
+</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></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">§ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associated [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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"  [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Memory.html b/docs/rust/opendal/services/struct.Memory.html
index af009e44..73df1425 100644
--- a/docs/rust/opendal/services/struct.Memory.html
+++ b/docs/rust/opendal/services/struct.Memory.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="In memory service support. (HashMap Based)"><meta name="keywords" content="rust, rustlang, rust-lang, Memory"><title>Memory in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.wo [...]
+<!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="In memory service support. (HashMap Based)"><meta name="keywords" content="rust, rustlang, rust-lang, Memory"><title>Memory in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.wo [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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> [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MemoryBuilder" class="anchor" [...]
+</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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconsta [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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= [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Moka.html b/docs/rust/opendal/services/struct.Moka.html
index d3dfab84..9fb37a08 100644
--- a/docs/rust/opendal/services/struct.Moka.html
+++ b/docs/rust/opendal/services/struct.Moka.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="moka backend support."><meta name="keywords" content="rust, rustlang, rust-lang, Moka"><title>Moka in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload"  [...]
+<!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="moka backend support."><meta name="keywords" content="rust, rustlang, rust-lang, Moka"><title>Moka in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload"  [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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=" [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.u64.html">u64</a>) -&gt; <a class="primitive" href="https://doc.rust-lang [...]
+</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 [...]
 <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="rustdoc-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.67.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; <a [...]
+</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=" [...]
 <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="rustdoc-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.67.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt;  [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1 [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.bool.html">bool</a>) -&gt; <a class="primitive" hr [...]
+</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 [...]
 <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="rustdoc-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" cl [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MokaBuilder" 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-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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Obs.html b/docs/rust/opendal/services/struct.Obs.html
index fca6fdb3..445b58da 100644
--- a/docs/rust/opendal/services/struct.Obs.html
+++ b/docs/rust/opendal/services/struct.Obs.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="Huawei Cloud OBS services support."><meta name="keywords" content="rust, rustlang, rust-lang, Obs"><title>Obs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
+<!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="Huawei Cloud OBS services support."><meta name="keywords" content="rust, rustlang, rust-lang, Obs"><title>Obs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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="st [...]
+</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="rustdoc-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.67.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.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. [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href=" [...]
+</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:// [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="p [...]
+</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 [...]
 <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="rustdoc-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.67.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.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 [...]
 The param is required.</p>
-</div></details><details class="rustdoc-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=" [...]
+</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="rustdoc-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-286">source</a><a href="#impl-Builder-for-ObsBuilder" class [...]
-</div></details></div></details><details class="rustdoc-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: [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ObsBuilder" class="anchor">§</a> [...]
+</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-286">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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Oss.html b/docs/rust/opendal/services/struct.Oss.html
index 0382af7a..ab56b695 100644
--- a/docs/rust/opendal/services/struct.Oss.html
+++ b/docs/rust/opendal/services/struct.Oss.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="Aliyun Object Storage Service (OSS) support"><meta name="keywords" content="rust, rustlang, rust-lang, Oss"><title>Oss in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
+<!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="Aliyun Object Storage Service (OSS) support"><meta name="keywords" content="rust, rustlang, rust-lang, Oss"><title>Oss in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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="st [...]
+</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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1. [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lan [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" hr [...]
+</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 [...]
 <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="rustdoc-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.67.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.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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href=" [...]
+</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:// [...]
 <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="rustdoc-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.67.1/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><d [...]
-</div></details><details class="rustdoc-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=" [...]
+</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:// [...]
 <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="rustdoc-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-371">source</a><a href="#impl-Builder-for-OssBuilder" class [...]
-</div></details></div></details><details class="rustdoc-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: [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OssBuilder" class="anchor">§</a> [...]
+</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-371">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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Redis.html b/docs/rust/opendal/services/struct.Redis.html
index b1a1f84b..8d8814f3 100644
--- a/docs/rust/opendal/services/struct.Redis.html
+++ b/docs/rust/opendal/services/struct.Redis.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="Redis services support."><meta name="keywords" content="rust, rustlang, rust-lang, Redis"><title>Redis in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="prelo [...]
+<!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="Redis services support."><meta name="keywords" content="rust, rustlang, rust-lang, Redis"><title>Redis in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="prelo [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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" hr [...]
+</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="rustdoc-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.67.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.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/ [...]
 <p>default: no username</p>
-</div></details><details class="rustdoc-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.67.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.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/ [...]
 <p>default: no password</p>
-</div></details><details class="rustdoc-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.67.1/std/primitive.i64.html">i64</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive. [...]
+</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 [...]
 <p>default: 0</p>
-</div></details><details class="rustdoc-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.67.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt;  [...]
+</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 [...]
 <p>If set, we will specify <code>EX</code> for write operations.</p>
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1/s [...]
+</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 [...]
 <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="rustdoc-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" [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RedisBuilder" 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-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  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Rocksdb.html b/docs/rust/opendal/services/struct.Rocksdb.html
index e5a09686..d17cd9a4 100644
--- a/docs/rust/opendal/services/struct.Rocksdb.html
+++ b/docs/rust/opendal/services/struct.Rocksdb.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="Rocksdb service support."><meta name="keywords" content="rust, rustlang, rust-lang, Rocksdb"><title>Rocksdb in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel=" [...]
+<!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="Rocksdb service support."><meta name="keywords" content="rust, rustlang, rust-lang, Rocksdb"><title>Rocksdb in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel=" [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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="struc [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.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-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 [...]
 <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="rustdoc-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-RocksdbBu [...]
-</div></details></div></details><details class="rustdoc-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  [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-RocksdbBuilder" class="ancho [...]
+</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> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.S3.html b/docs/rust/opendal/services/struct.S3.html
index 67b0a9a9..27369308 100644
--- a/docs/rust/opendal/services/struct.S3.html
+++ b/docs/rust/opendal/services/struct.S3.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="Aws S3 and compatible services (including minio, digitalocean space and so on) support"><meta name="keywords" content="rust, rustlang, rust-lang, S3"><title>S3 in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSe [...]
+<!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="Aws S3 and compatible services (including minio, digitalocean space and so on) support"><meta name="keywords" content="rust, rustlang, rust-lang, S3"><title>S3 in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSe [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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="struc [...]
+</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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.6 [...]
-</div></details><details class="rustdoc-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.67.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.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 [...]
 <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="rustdoc-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.67.1/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.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/ [...]
 <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/datafuselabs/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="rustdoc-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.67.1/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.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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="h [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1. [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-la [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="pri [...]
+</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"  [...]
 <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="rustdoc-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.67.1/std/pri [...]
+</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 [...]
 <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="rustdoc-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. [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive [...]
+</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 [...]
 <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="rustdoc-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.67.1/s [...]
+</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 [...]
 <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="rustdoc-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. [...]
+</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="rustdoc-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 [...]
+</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="rustdoc-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.67.1/std/primitive.refe [...]
+</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 [...]
 <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="rustdoc-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:  [...]
+</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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https: [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.reference.html">&amp;mut </a>Self</h4></section>< [...]
+</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 [...]
 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="rustdoc-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.67.1/std/primitive.reference.html">&amp;mut </a>Se [...]
+</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>< [...]
 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="rustdoc-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 [...]
-</div></details><details class="rustdoc-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="h [...]
+</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="rustdoc-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-1025">source</a><a href="#impl-Builder-for-S3Builder" class=" [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-S3Builder" class="anchor">§</a><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-Builder-for-S3Builder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/s3/backend.rs.html#810-1025">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= [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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" [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Sled.html b/docs/rust/opendal/services/struct.Sled.html
index b76bc688..21c8e1f9 100644
--- a/docs/rust/opendal/services/struct.Sled.html
+++ b/docs/rust/opendal/services/struct.Sled.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="Sled service support."><meta name="keywords" content="rust, rustlang, rust-lang, Sled"><title>Sled in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload"  [...]
+<!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="Sled service support."><meta name="keywords" content="rust, rustlang, rust-lang, Sled"><title>Sled in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload"  [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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="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="rustdoc-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" cla [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SledBuilder" 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-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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Webdav.html b/docs/rust/opendal/services/struct.Webdav.html
index 039b5a49..2d3e8ca9 100644
--- a/docs/rust/opendal/services/struct.Webdav.html
+++ b/docs/rust/opendal/services/struct.Webdav.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="WebDAV backend support."><meta name="keywords" content="rust, rustlang, rust-lang, Webdav"><title>Webdav in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pre [...]
+<!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="WebDAV backend support."><meta name="keywords" content="rust, rustlang, rust-lang, Webdav"><title>Webdav in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pre [...]
 <h2 id="capabilities"><a href="#capabilities">Capabilities</a></h2>
 <p>This service can be used to:</p>
 <ul>
@@ -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="rustdoc-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" [...]
+</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="rustdoc-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.67.1/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.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 [...]
 <p>default: no password</p>
-</div></details><details class="rustdoc-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.67.1/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.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 [...]
 <p>default: no password</p>
-</div></details><details class="rustdoc-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.67.1/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.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/ [...]
 <p>default: no access token</p>
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1/ [...]
-</div></details><details class="rustdoc-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" hre [...]
+</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 [...]
 <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="rustdoc-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-WebdavBuild [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-WebdavBuilder" 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-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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconsta [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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= [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/services/struct.Webhdfs.html b/docs/rust/opendal/services/struct.Webhdfs.html
index 004824a3..b134bc12 100644
--- a/docs/rust/opendal/services/struct.Webhdfs.html
+++ b/docs/rust/opendal/services/struct.Webhdfs.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="WebHDFS’s REST API support."><meta name="keywords" content="rust, rustlang, rust-lang, Webhdfs"><title>Webhdfs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
+<!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="WebHDFS’s REST API support."><meta name="keywords" content="rust, rustlang, rust-lang, Webhdfs"><title>Webhdfs in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
 <p>There two implementations of WebHDFS REST API:</p>
 <ul>
 <li>Native via HDFS Namenode and Datanode, data are transferred between nodes directly.</li>
@@ -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="rustdoc-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="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-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="rustdoc-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.67.1/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.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 [...]
 default to <code>http://127.0.0.1:9870</code></p>
 <p>Endpoints should be full uri, e.g.</p>
 <ul>
@@ -71,23 +71,23 @@ 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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https:// [...]
+</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 [...]
 used for authentication</p>
 <h5 id="note-1"><a href="#note-1">Note</a></h5>
 <p>The builder prefers using delegation token over username.
 If both are set, delegation token will be used.</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="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Builder-for-WebhdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webhdfs/backend.rs.html#184-245">source</a><a href="#impl-Builder-for-WebhdfsBu [...]
+</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-WebhdfsBuilder" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/services/webhdfs/backend.rs.html#184-245">source</a><a href="#impl-Builder-for-WebhdfsBuilder" c [...]
 <h5 id="note-2"><a href="#note-2">Note:</a></h5>
 <p>when building backend, the built backend will check if the root directory
 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="rustdoc-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::S [...]
-</div></details></div></details><details class="rustdoc-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  [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-WebhdfsBuilder" class="ancho [...]
+</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> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/struct.BlockingLister.html b/docs/rust/opendal/struct.BlockingLister.html
index 7231cdb3..8eab0c32 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 [...]
+<!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="rustdoc-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. [...]
-</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="rustdoc-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="a [...]
-</div><div class="impl-items"><details class="rustdoc-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.67.1/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" class="associatedtype">Item</a> = <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Re [...]
-the given amount at each iteration. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.step_by">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#499 [...]
-between adjacent items of the original iterator. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.intersperse_with">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/ [...]
-element. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.map">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#821-824">source</a></span><a  [...]
-should be yielded. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.filter">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#941-944">source< [...]
-the next value. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.enumerate">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#1058-1060">source< [...]
+</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 [...]
 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.67.1/core/iter/traits/iterator/trait.Iterator.html#method.peekable">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator [...]
-if the underlying iterator ends sooner. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.take">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#142 [...]
-produces a new iterator. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.scan">Read more</a></div></details><details class="rustdoc-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.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.67.1/src/core/iter/traits/iterator.rs.html#1460-1464">sou [...]
-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.67.1/core/iter/traits/iterator/trait.Iterator.html#method.is_partitioned">Read more</a></div></details><details class="rustdoc-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 [...]
-successfully, producing a single, final value. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.try_fold">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits [...]
-iterator, stopping at the first error and returning that error. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.try_for_each">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/ [...]
-returning the final result. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.fold">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#2444-2447"> [...]
-operation. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.reduce">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#2515-2520">source</a><a href="#method.try_reduce" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
-closure returns a failure, the failure is propagated back to the caller immediately. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.try_reduce">Read more</a></div></details><details class="rustdoc-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.or [...]
-the first non-none result. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.find_map">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#2772-2777">source</a><a href="#method.try_find" class="anchor">§</a><h4 class="code-header">fn <a [...]
-the first true result or the first error. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.try_find">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.r [...]
-specified function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.max_by_key">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3055-3058">so [...]
-specified comparison function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.max_by">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3082 [...]
-specified function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.min_by_key">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3115-3118">so [...]
-specified comparison function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.min_by">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3190-3194 [...]
-of another with respect to the specified comparison function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.cmp_by">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/i [...]
-of another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.partial_cmp">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3531-3535">source</a><a href="#method.partial_cmp_by" class="anchor">§</a><h4 class="code-header">fn <a [...]
-of another with respect to the specified comparison function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.partial_cmp_by">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/it [...]
-another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3589-3593">source</a><a href="#method.eq_by" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.o [...]
-another with respect to the specified equality function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.eq_by">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iter [...]
-another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.ne">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3642-3646">source</a></span><a href="# [...]
-less than those of another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.lt">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3663-3667">source</ [...]
-less or equal to those of another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.le">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3684-3688">s [...]
-greater than those of another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.gt">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3705-3709">sourc [...]
-greater than or equal to those of another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.ge">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3764-3767">source</a><a href="#method.is_sorted_by" class="anchor">§</a><h4 class=" [...]
-function. <a href="https://doc.rust-lang.org/1.67.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="rustdoc-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  [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BlockingLister" class="ancho [...]
+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" [...]
+</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> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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.67.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.67.1/core/iter/traits/collect/trait.IntoIterat [...]
-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="rustdoc-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" [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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.67.1/alloc/vec/st [...]
\ No newline at end of file
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/struct.BlockingOperator.html b/docs/rust/opendal/struct.BlockingOperator.html
index 4073357b..3d43e56d 100644
--- a/docs/rust/opendal/struct.BlockingOperator.html
+++ b/docs/rust/opendal/struct.BlockingOperator.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="BlockingOperator is the entry for all public blocking APIs."><meta name="keywords" content="rust, rustlang, rust-lang, BlockingOperator"><title>BlockingOperator in opendal - 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="BlockingOperator is the entry for all public blocking APIs."><meta name="keywords" content="rust, rustlang, rust-lang, BlockingOperator"><title>BlockingOperator in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular [...]
 <p>Read <a href="docs/concepts/index.html" title="docs::concepts"><code>concepts</code></a> for know more about <a href="struct.Operator.html" title="Operator"><code>Operator</code></a>.</p>
 <h2 id="examples"><a href="#examples">Examples</a></h2>
 <p>Read more backend init examples in <a href="services/index.html" title="services"><code>services</code></a></p>
@@ -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="rustdoc-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-107">source</a><a href="#impl-BlockingOperator" class="anchor">§</a><h3 class="code-header">impl <a cla [...]
-</div></details><details class="rustdoc-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#83-87">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.67.1/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="d [...]
+</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-107">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#83-87">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>Default: 1000</p>
-</div></details><details class="rustdoc-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#104-106">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 infor [...]
+</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#104-106">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="rustdoc-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#110-650">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></summa [...]
+</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#110-650">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="rustdoc-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#230-241">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>&n [...]
+</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#230-241">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="rustdoc-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#256-265">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title= [...]
+</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#256-265">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 [...]
 <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="rustdoc-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#291-307">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.67.1/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.create_dir" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#291-307">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 [...]
 <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="rustdoc-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#325-327">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type openda [...]
+</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#325-327">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 [...]
 <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="rustdoc-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#346-374">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.67.1/std/primitive.str.html"> [...]
+</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#346-374">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>, [...]
 <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="rustdoc-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#389-391">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.67.1/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.reader" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#389-391">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: [...]
 <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="rustdoc-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#406-421">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.67.1/std/primitive.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/blocking_operator.rs.html#406-421">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 [...]
 <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="rustdoc-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#443-445">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.67.1/std/primitive.str.html">str</a>, bs: impl <a class="trait" href="https://doc.rust-lang.org/1.6 [...]
+</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#443-445">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 [...]
 <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="rustdoc-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#468-485">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.67.1/std/primitive.str.html"> [...]
+</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#468-485">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>, [...]
 <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="rustdoc-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#510-524">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.67.1/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.writer" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#510-524">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: [...]
 <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="rustdoc-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#543-549">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.67.1/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.delete" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#543-549">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: [...]
 <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="rustdoc-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#584-599">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type openda [...]
+</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#584-599">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 [...]
 <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="rustdoc-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#634-649">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type openda [...]
+</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#634-649">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 [...]
 <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="rustdoc-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-BlockingOpe [...]
-</div></details></div></details><details class="rustdoc-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="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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BlockingOperator" class="a [...]
+</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">§ [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associated [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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"  [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/struct.BlockingReader.html b/docs/rust/opendal/struct.BlockingReader.html
index 593c7b1b..da509a26 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 [...]
+<!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="rustdoc-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> [...]
-the given amount at each iteration. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.step_by">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#4 [...]
-between adjacent items of the original iterator. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.intersperse_with">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/ [...]
-element. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.map">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#821-824">source</a></span><a  [...]
-should be yielded. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.filter">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#941-944">source< [...]
-the next value. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.enumerate">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#1058-1060">source< [...]
+</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 [...]
 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.67.1/core/iter/traits/iterator/trait.Iterator.html#method.peekable">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator [...]
-if the underlying iterator ends sooner. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.take">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#142 [...]
-produces a new iterator. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.scan">Read more</a></div></details><details class="rustdoc-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.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.67.1/src/core/iter/traits/iterator.rs.html#1460-1464">sou [...]
-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.67.1/core/iter/traits/iterator/trait.Iterator.html#method.is_partitioned">Read more</a></div></details><details class="rustdoc-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 [...]
-successfully, producing a single, final value. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.try_fold">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits [...]
-iterator, stopping at the first error and returning that error. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.try_for_each">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/ [...]
-returning the final result. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.fold">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#2444-2447"> [...]
-operation. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.reduce">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#2515-2520">source</a><a href="#method.try_reduce" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
-closure returns a failure, the failure is propagated back to the caller immediately. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.try_reduce">Read more</a></div></details><details class="rustdoc-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.or [...]
-the first non-none result. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.find_map">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#2772-2777">source</a><a href="#method.try_find" class="anchor">§</a><h4 class="code-header">fn <a [...]
-the first true result or the first error. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.try_find">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.r [...]
-specified function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.max_by_key">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3055-3058">so [...]
-specified comparison function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.max_by">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3082 [...]
-specified function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.min_by_key">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3115-3118">so [...]
-specified comparison function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.min_by">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3190-3194 [...]
-of another with respect to the specified comparison function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.cmp_by">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/i [...]
-of another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.partial_cmp">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3531-3535">source</a><a href="#method.partial_cmp_by" class="anchor">§</a><h4 class="code-header">fn <a [...]
-of another with respect to the specified comparison function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.partial_cmp_by">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/it [...]
-another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3589-3593">source</a><a href="#method.eq_by" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.o [...]
-another with respect to the specified equality function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.eq_by">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iter [...]
-another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.ne">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3642-3646">source</a></span><a href="# [...]
-less than those of another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.lt">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3663-3667">source</ [...]
-less or equal to those of another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.le">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3684-3688">s [...]
-greater than those of another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.gt">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3705-3709">sourc [...]
-greater than or equal to those of another. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.ge">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/iter/traits/iterator.rs.html#3764-3767">source</a><a href="#method.is_sorted_by" class="anchor">§</a><h4 class=" [...]
-function. <a href="https://doc.rust-lang.org/1.67.1/core/iter/traits/iterator/trait.Iterator.html#method.is_sorted_by_key">Read more</a></div></details></div></details><details class="rustdoc-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="t [...]
-how many bytes were read. <a href="https://doc.rust-lang.org/1.67.1/std/io/trait.Read.html#tymethod.read">Read more</a></div></details><details class="rustdoc-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.67.1/src/std/io/mod.rs.html#645">source</a></span><a href="#method.rea [...]
-implementation. <a href="https://doc.rust-lang.org/1.67.1/std/io/trait.Read.html#method.is_read_vectored">Read more</a></div></details><details class="rustdoc-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.67.1/src/std/io/mod.rs.html#709">source</a></span><a href="#method.read_to [...]
-</div></details></div></details><details class="rustdoc-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  [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BlockingReader" class="ancho [...]
+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 [...]
+</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> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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.67.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.67.1/core/iter/traits/collect/trait.IntoIterat [...]
-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="rustdoc-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" [...]
-the underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-l [...]
-the underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.u16.html">u16</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1 [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.u32.html">u32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/en [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.u64.html">u64</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/en [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.u128.html">u128</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/resu [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.i8.html">i8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.i32.html">i32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/en [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.i64.html">i64</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/en [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.i128.html">i128</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/resu [...]
-reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.f32.html">f32</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/en [...]
-point numbers from the underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.f32.html">f32</a>]) -&gt; <a cl [...]
-point numbers from the underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.f64.html">f64</a>]) -&gt; <a 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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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.67.1/alloc/vec/st [...]
\ No newline at end of file
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/struct.BlockingWriter.html b/docs/rust/opendal/struct.BlockingWriter.html
index 1993d094..90c01c7e 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 [...]
+<!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="rustdoc-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="struc [...]
+</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="rustdoc-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.67.1/std/primitive.unit.html">()</a>& [...]
-</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="rustdoc-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="ancho [...]
-contents reach their destination. <a href="https://doc.rust-lang.org/1.67.1/std/io/trait.Write.html#tymethod.flush">Read more</a></div></details><details class="rustdoc-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.67.1/src/std/io/mod.rs.html#1463">source</a></span><a href= [...]
-implementation. <a href="https://doc.rust-lang.org/1.67.1/std/io/trait.Write.html#method.is_write_vectored">Read more</a></div></details><details class="rustdoc-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.67.1/src/std/io/mod.rs.html#1540">source</a></span><a href="#method.write_ [...]
-encountered. <a href="https://doc.rust-lang.org/1.67.1/std/io/trait.Write.html#method.write_fmt">Read more</a></div></details><details class="rustdoc-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.67.1/src/std/io/mod.rs.html#1717-1719">source</a></span><a href="#method.by_ref" class=" [...]
-</div></details></div></details><details class="rustdoc-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  [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BlockingWriter" class="ancho [...]
+</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></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> [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-toggle implementors-toggle"><summary><section id="impl-WriteBytesExt-for-BlockingWriter" class="impl has-srclink"><a href="#impl-WriteBytesExt-for-BlockingWriter [...]
-the underlying writer. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.f64.html">f64</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result. [...]
-the underlying writer. <a>Read more</a></div></details></div></details><details class="rustdoc-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.67.1/std/io/trait.Write.html" title="trait std::io::Write"> [...]
\ No newline at end of file
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/struct.Entry.html b/docs/rust/opendal/struct.Entry.html
index de4a0f98..a7e3b188 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="rustdoc-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=" [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Path of entry. Path is relative to oper [...]
+<!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.
 Only valid in current operator.</p>
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Name of entry. Name is the last segment [...]
+</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>
 <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="rustdoc-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- [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Entry" 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-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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/struct.Error.html b/docs/rust/opendal/struct.Error.html
index e88d4165..452907ce 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="rustdoc-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 [...]
-</div></details><details class="rustdoc-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.67.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;&amp;'static <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="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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>, value: impl <a class="trait" href="https://doc.rust-lang.or [...]
-</div></details><details class="rustdoc-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.67.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://do [...]
+</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 [...]
 <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="rustdoc-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.67.1/core/ops/function/trait.FnOnce.html" title="trai [...]
-</div></details><details class="rustdoc-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="rustdoc-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>
+</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.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="rustdoc-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>
+</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="rustdoc-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="rustdoc-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.67.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if this er [...]
-</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="rustdoc-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=" [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Error" class="anchor">§</a><h3 class= [...]
+</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></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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class= [...]
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/1.67.1/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-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-head [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/struct.Lister.html b/docs/rust/opendal/struct.Lister.html
index b970e1a0..98ec6d40 100644
--- a/docs/rust/opendal/struct.Lister.html
+++ b/docs/rust/opendal/struct.Lister.html
@@ -1,94 +1,94 @@
-<!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="Lister is designed to list entries at given path in an asynchronous manner."><meta name="keywords" content="rust, rustlang, rust-lang, Lister"><title>Lister in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7 [...]
+<!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="Lister is designed to list entries at given path in an asynchronous manner."><meta name="keywords" content="rust, rustlang, rust-lang, Lister"><title>Lister in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7 [...]
 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="rustdoc-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 [...]
+</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="rustdoc-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 [...]
+</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="rustdoc-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.67.1/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/ [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Lister" class="anchor">§</a><h3 clas [...]
+<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 [...]
+</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- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
-If the stream terminates, then the next item is <a href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html#variant.None" title="None"><code>None</code></a>. <a>Read more</a></div></details><details class="rustdoc-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-newlin [...]
-the resulting type. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait core: [...]
-the next value. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/trait.FnMut.html" tit [...]
-asynchronous predicate. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/func [...]
-them to a different type according to the provided asynchronous closure. <a>Read more</a></div></details><details class="rustdoc-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.o [...]
-an asynchronous closure. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/default/trait.Default.html" title="tr [...]
-future representing the result of that computation. <a>Read more</a></div></details><details class="rustdoc-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.or [...]
-resolves to pair of containers. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait core: [...]
-destination, returning a future representing the end result. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized [...]
-collecting all the values into one final result. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/ [...]
-inner streams produced by the base stream concurrently. <a>Read more</a></div></details><details class="rustdoc-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.6 [...]
+<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 [...]
 and polls them concurrently, yielding items in any order, as they made
-available. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/trait.F [...]
-and produces a new stream. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/func [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/ [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/futu [...]
-closure for each element on the stream. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/convert/tr [...]
+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 [...]
 closure for each element on the stream concurrently as elements become
-available. <a>Read more</a></div></details><details class="rustdoc-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.67.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://do [...]
+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 [...]
 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="rustdoc-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.67.1/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div class='docblock'>Borro [...]
-into the sink and the sink has been flushed and closed. <a>Read more</a></div></details><details class="rustdoc-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" [...]
-objects. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/trait.FnMut.html" title="trait cor [...]
-of that <code>Either</code>. <a>Read more</a></div></details><details class="rustdoc-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="trai [...]
-of that <code>Either</code>. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&g [...]
-stream types. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/tra [...]
-ready. <a>Read more</a></div></details></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait core::marker::Sized" [...]
-on. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Si [...]
+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>, [...]
 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="rustdoc-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;&nbs [...]
+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="rustdoc-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= [...]
+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="rustdoc-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 [...]
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="rustdoc-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 [...]
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="rustdoc-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= [...]
+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="rustdoc-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.67.1/std/primitive.usize.html">usize</a>) -&gt; NthFuture&lt;'_, Self&gt;<span class="w [...]
-producing a single, final value. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/ [...]
-stream. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.htm [...]
-Immediately returns the error when the function returns unsuccessfully. <a>Read more</a></div></details><details class="rustdoc-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 [...]
-of another. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/tra [...]
-its index. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait core::mark [...]
-of another using ‘Ord’. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait c [...]
-not equal to those of another. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title=" [...]
-greater than or equal to those of another. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.h [...]
-equal to those of another. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trai [...]
-greater than those of another. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title=" [...]
-less or equal to those of another. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" tit [...]
-less than those of another. <a>Read more</a></div></details></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait [...]
-<code>false</code>, and then collects them into two collections. <a>Read more</a></div></details><details class="rustdoc-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.r [...]
-into the one provided. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title=" [...]
-using the provided closure. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html [...]
-using the provided closure. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/tr [...]
-results to the provided closure <code>f</code>. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core [...]
-erroneous result to the provided closure <code>f</code>. <a>Read more</a></div></details><details class="rustdoc-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/ [...]
-it on. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/trait.FnMut.html" tit [...]
-<a href="futures_core::stream::Stream"><code>Stream</code></a> <a>Read more</a></div></details><details class="rustdoc-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.67 [...]
+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/ [...]
 If an error is encountered before the next item, the error is returned
-instead. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/trait. [...]
-asynchronous closure for each element on the stream. <a>Read more</a></div></details><details class="rustdoc-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 [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="rustdoc-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 [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/convert [...]
+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 [...]
 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="rustdoc-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.67.1/core/ [...]
-returning a future representing the result of that computation. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.usize.html">usize</a>) -&gt; TryChunks&lt;Self&gt;<span class="where fm [...]
-provided asynchronous closure. <a>Read more</a></div></details><details class="rustdoc-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 [...]
+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 [...]
 simultaneously mapping them to a different type according to the
-provided asynchronous closure. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/convert/trait.Into.html" ti [...]
+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 [...]
 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="rustdoc-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 [...]
-stream, collecting all the values into one final result. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/mar [...]
-extendable destination, returning a future representing the end result. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.usize.html">usize</a>) -&gt; TryBufferUn [...]
-stream types. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" ti [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+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:: [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/struct.Metadata.html b/docs/rust/opendal/struct.Metadata.html
index 672bbeba..303f97dc 100644
--- a/docs/rust/opendal/struct.Metadata.html
+++ b/docs/rust/opendal/struct.Metadata.html
@@ -1,52 +1,52 @@
-<!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 carries all metadata associated with an path."><meta name="keywords" content="rust, rustlang, rust-lang, Metadata"><title>Metadata in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Metadata carries all metadata associated with an path."><meta name="keywords" content="rust, rustlang, rust-lang, Metadata"><title>Metadata in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf [...]
 <h2 id="notes"><a href="#notes">Notes</a></h2>
 <p>mode and content_length are required metadata that all services
 should provide during <code>stat</code> operation. But in <code>list</code> operation,
 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="rustdoc-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. [...]
-</div></details><details class="rustdoc-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="rustdoc-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.67.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if t [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if thi [...]
-</div></details><details class="rustdoc-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.67.1/std/prim [...]
-</div></details><details class="rustdoc-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="rustdoc-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.67.1/std/primitive.u64.html">u64</a></h4></section></summary><div class="docblock"><p>Content l [...]
+</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.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 [...]
 <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="rustdoc-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.67.1/std/primitive.u64.html">u64</a>) -&gt; <a class="primitive" href [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.u64.html">u64</a>) -&gt; Self</h4></section></summary><d [...]
-</div></details><details class="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive"  [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https [...]
+</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 [...]
 <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="rustdoc-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.67.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -&g [...]
+</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< [...]
 <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="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitiv [...]
+</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= [...]
 <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="rustdoc-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.67.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.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 [...]
 <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="rustdoc-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.67.1/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_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 [...]
 <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="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" hr [...]
+</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/ [...]
 <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="rustdoc-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 cl [...]
+</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="rustdoc-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></ [...]
+</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="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;OffsetDateTime&gt;</ [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.reference.html">&amp;mut </a>Sel [...]
+</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></ [...]
 <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="rustdoc-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>
+</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="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rus [...]
+</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 [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1/ [...]
+</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 [...]
 <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="rustdoc-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.67.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -&gt; Self</h4></section></summ [...]
+</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 [...]
 <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="rustdoc-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.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&a [...]
+</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 [...]
 <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="rustdoc-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.67.1/alloc/string/struct.String.html" title="struct alloc: [...]
+</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: [...]
 <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="rustdoc-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.67.1/std/primitive.str.html">str</a>) -&gt;  [...]
+</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 [...]
 <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="rustdoc-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 cla [...]
-by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-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.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></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.67.1/core/cmp/trai [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Metadata" 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-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><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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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">§ [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/struct.Operator.html b/docs/rust/opendal/struct.Operator.html
index aa62cf94..85aa5aa9 100644
--- a/docs/rust/opendal/struct.Operator.html
+++ b/docs/rust/opendal/struct.Operator.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="Operator is the entry for all public async APIs."><meta name="keywords" content="rust, rustlang, rust-lang, Operator"><title>Operator in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
+<!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="Operator is the entry for all public async APIs."><meta name="keywords" content="rust, rustlang, rust-lang, Operator"><title>Operator in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
 <p>Read <a href="docs/concepts/index.html" title="docs::concepts"><code>concepts</code></a> for know more about <a href="struct.Operator.html" title="Operator"><code>Operator</code></a>.</p>
 <h2 id="examples"><a href="#examples">Examples</a></h2>
 <p>Read more backend init examples in <a href="services/index.html" title="services"><code>services</code></a></p>
@@ -19,24 +19,24 @@
 
     <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="rustdoc-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-125">source</a><a href="#impl-Operator" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
-</div></details><details class="rustdoc-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#94-98">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.67.1/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-Operator" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#70-125">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#94-98">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 [...]
 <p>Default: 1000</p>
-</div></details><details class="rustdoc-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#115-117">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 [...]
+</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#115-117">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>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>opendal::Operator;
 
 <span class="kw">let </span>info = op.info();</code></pre></div>
-</div></details><details class="rustdoc-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#122-124">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="docbloc [...]
+</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#122-124">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="rustdoc-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#128-886">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="rustdoc-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#144-151">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.67.1/std/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#128-886">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#144-151">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 [...]
 <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="rustdoc-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#184-191">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.67.1/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.stat" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#184-191">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"> [...]
 <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="rustdoc-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#277-292">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 [...]
+</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#277-292">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="rustdoc-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#310-319">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="ty [...]
+</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#310-319">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 [...]
 <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="rustdoc-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#346-363">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" tit [...]
+</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#346-363">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 [...]
 <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="rustdoc-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#382-384">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.67.1/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.read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#382-384">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"> [...]
 <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="rustdoc-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#407-448">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.67.1/std/primitive.str.html">str [...]
+</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#407-448">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 [...]
 <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="rustdoc-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#465-467">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type ope [...]
+</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#465-467">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 [...]
 <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="rustdoc-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#487-502">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.67.1/std/primitive.str.htm [...]
+</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#487-502">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</ [...]
 <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="rustdoc-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#525-527">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.67.1/std/primitive.str.html">str</a>, bs: impl <a class="trait" href="https://doc.rust-lang.org/1.67.1 [...]
+</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#525-527">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 [...]
 <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="rustdoc-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#553-567">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type ope [...]
+</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#553-567">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 [...]
 <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="rustdoc-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#591-608">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.67.1/std/primitive.str.html">str [...]
+</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#591-608">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 [...]
 <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="rustdoc-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#628-634">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type ope [...]
+</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#628-634">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 [...]
 <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="rustdoc-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#656-658">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.67.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https:// [...]
+</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#656-658">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 [...]
 <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="rustdoc-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#686-714">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.67.1/alloc/string [...]
+</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#686-714">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. [...]
 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="rustdoc-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#736-782">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.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" tit [...]
+</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#736-782">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 [...]
 <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="rustdoc-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#817-833">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.67.1/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.list" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#817-833">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"> [...]
 <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>
@@ -228,7 +228,7 @@ delete instead.</p>
         EntryMode::Unknown =&gt; <span class="kw">continue</span>,
     }
 }</code></pre></div>
-</div></details><details class="rustdoc-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#869-885">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.67.1/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.scan" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/operator.rs.html#869-885">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"> [...]
 <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>
@@ -246,8 +246,8 @@ delete instead.</p>
         EntryMode::Unknown =&gt; <span class="kw">continue</span>,
     }
 }</code></pre></div>
-</div></details></div></details><details class="rustdoc-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#889-1023">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="rustdoc-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#911-918">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.67.1/std/primitive [...]
+</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#889-1023">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#911-918">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 [...]
 <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;
@@ -262,7 +262,7 @@ delete instead.</p>
         .uri(signed_req.uri())
         .body(())<span class="question-mark">?</span>;
 </code></pre></div>
-</div></details><details class="rustdoc-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#946-953">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.67.1/std/primitive.str.html">str [...]
+</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#946-953">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 [...]
 <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;
@@ -279,7 +279,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="rustdoc-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#981-983">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.67.1/std/p [...]
+</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#981-983">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 [...]
 <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;
@@ -296,7 +296,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="rustdoc-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#1010-1022">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 [...]
+</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#1010-1022">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;
@@ -314,7 +314,7 @@ delete instead.</p>
         .uri(signed_req.uri())
         .body(())<span class="question-mark">?</span>;
 </code></pre></div>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Operator-3" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#48-173">source</a><a href="#impl-Operator-3" 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"><h4 id="operator-build-api [...]
+</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Operator-3" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#48-173">source</a><a href="#impl-Operator-3" 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"><h4 id="operator-build-api"><a hre [...]
 <p>Operator should be built via <a href="struct.OperatorBuilder.html" title="OperatorBuilder"><code>OperatorBuilder</code></a>. We recommend to use <a href="struct.Operator.html#method.new" title="Operator::new"><code>Operator::new</code></a> to get started:</p>
 
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>opendal::services::Fs;
@@ -333,7 +333,7 @@ delete instead.</p>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#78-81">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>&lt;B:&nbsp;<a class="trait" href="trait.Builder.html" title="trait opendal::Builder">Builder</a>&gt;(ab: B) -&gt; <a class="type" href="type.Result.html" title="type opendal::Resul [...]
+</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#78-81">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>&lt;B:&nbsp;<a class="trait" href="trait.Builder.html" title="trait opendal::Builder">Builder</a>&gt;(ab: B) -&gt; <a class="type" href="type.Result.html" title="type opendal::Result">Resul [...]
 <p>OpenDAL will call <code>builder.build()</code> internally, so we don’t need
 to import <code>opendal::Builder</code> trait.</p>
 <h5 id="examples-18"><a href="#examples-18">Examples</a></h5>
@@ -355,7 +355,7 @@ to import <code>opendal::Builder</code> trait.</p>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><details class="rustdoc-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-la [...]
+</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;
 
@@ -375,15 +375,15 @@ to import <code>opendal::Builder</code> trait.</p>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><details class="rustdoc-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 [...]
+</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>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_env" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#133-136">source</a><h4 class="code-header">pub fn <a href="#method.from_env" class="fn">from_env</a>&lt;B:&nbsp;<a class="trait" href="trait.Builder.html" title="trait opendal::Builder">Builder</a>&gt;() -&gt; <a class="type" href="type.Result.html" title="type opendal::Result" [...]
+</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/operator/builder.rs.html#133-136">source</a><h4 class="code-header">pub fn <a href="#method.from_env" class="fn">from_env</a>&lt;B:&nbsp;<a class="trait" href="trait.Builder.html" title="trait opendal::Builder">Builder</a>&gt;() -&gt; <a class="type" href="type.Result.html" title="type opendal::Result">Result< [...]
 <h5 id="warning-1"><a href="#warning-1">WARNING</a></h5>
 <p>It’s better to use <code>from_map</code>. We may remove this API in the
 future.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.layer" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#168-172">source</a><h4 class="code-header">pub fn <a href="#method.layer" class="fn">layer</a>&lt;L:&nbsp;<a class="trait" href="raw/trait.Layer.html" title="trait opendal::raw::Layer">Layer</a>&lt;<a class="type" href="raw/type.FusedAccessor.html" title="type opendal::raw::FusedA [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.layer" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#168-172">source</a><h4 class="code-header">pub fn <a href="#method.layer" class="fn">layer</a>&lt;L:&nbsp;<a class="trait" href="raw/trait.Layer.html" title="trait opendal::raw::Layer">Layer</a>&lt;<a class="type" href="raw/type.FusedAccessor.html" title="type opendal::raw::FusedAccessor" [...]
 <h5 id="notes-12"><a href="#notes-12">Notes</a></h5>
 <p><code>OperatorBuilder::layer()</code> is using static dispatch which is zero
 cost. <code>Operator::layer()</code> is using dynamic dispatch which has a
@@ -399,12 +399,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="rustdoc-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">§</ [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Operator" 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-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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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">§ [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/struct.OperatorBuilder.html b/docs/rust/opendal/struct.OperatorBuilder.html
index 15dc00a5..6f4ca37d 100644
--- a/docs/rust/opendal/struct.OperatorBuilder.html
+++ b/docs/rust/opendal/struct.OperatorBuilder.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OperatorBuilder is a typed builder to builder an Operator."><meta name="keywords" content="rust, rustlang, rust-lang, OperatorBuilder"><title>OperatorBuilder in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OperatorBuilder is a typed builder to builder an Operator."><meta name="keywords" content="rust, rustlang, rust-lang, OperatorBuilder"><title>OperatorBuilder in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f [...]
 <h2 id="notes"><a href="#notes">Notes</a></h2>
 <p>OpenDAL uses static dispatch internally and only perform dynamic
 dispatch at the outmost type erase layer. OperatorBuilder is the only
@@ -35,8 +35,8 @@ public API provided by OpenDAL come with generic parameters.</p>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-OperatorBuilder%3CA%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#223-276">source</a><a href="#impl-OperatorBuilder%3CA%3E" class="anchor">§</a><h3 class="code-header">impl&lt; [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.layer" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#264-268">source</a><h4 class="code-header">pub fn <a href="#method.layer" class="fn">layer</a>&lt;L:&nbsp;<a class="trait" href="raw/trait.Layer.html" title="trait opendal::raw::Layer">Layer</a>&lt;A&gt;&gt;(self, layer: L) -&gt; <a class="struct" href="struct.OperatorBuilder.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-OperatorBuilder%3CA%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#223-276">source</a><a href="#impl-OperatorBuilder%3CA%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A:&nbsp; [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.layer" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/builder.rs.html#264-268">source</a><h4 class="code-header">pub fn <a href="#method.layer" class="fn">layer</a>&lt;L:&nbsp;<a class="trait" href="raw/trait.Layer.html" title="trait opendal::raw::Layer">Layer</a>&lt;A&gt;&gt;(self, layer: L) -&gt; <a class="struct" href="struct.OperatorBuilder.html" title= [...]
 <h5 id="notes-1"><a href="#notes-1">Notes</a></h5>
 <p><code>OperatorBuilder::layer()</code> is using static dispatch which is zero
 cost. <code>Operator::layer()</code> is using dynamic dispatch which has a
@@ -53,13 +53,13 @@ inline.</p>
     .finish();
 <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="rustdoc-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 constru [...]
-</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.67.1/core/ [...]
-</div></details></div></details><details class="rustdoc-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.htm [...]
-<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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OperatorBuilder%3CA% [...]
+</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><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 [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href= [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/struct.OperatorInfo.html b/docs/rust/opendal/struct.OperatorInfo.html
index 2b21adc1..a4c02dc9 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="rustdoc-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=" [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Root of operator, will be i [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Name of backend, could be e [...]
+<!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  [...]
 <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="rustdoc-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.67.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current b [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if curren [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current b [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if current b [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if  [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if curren [...]
-</div></details><details class="rustdoc-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.67.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check  [...]
-</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="rustdoc-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="anc [...]
-</div></details></div></details><details class="rustdoc-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 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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-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.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></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  [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+<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 [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/struct.Reader.html b/docs/rust/opendal/struct.Reader.html
index 05b1075e..3e460b65 100644
--- a/docs/rust/opendal/struct.Reader.html
+++ b/docs/rust/opendal/struct.Reader.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="Reader is designed to read data from given path in an asynchronous manner."><meta name="keywords" content="rust, rustlang, rust-lang, Reader"><title>Reader in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d [...]
+<!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 designed to read data from given path in an asynchronous manner."><meta name="keywords" content="rust, rustlang, rust-lang, Reader"><title>Reader in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d [...]
 manner.</p>
 <h2 id="usage"><a href="#usage">Usage</a></h2>
 <p>Reader implements the following APIs:</p>
@@ -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="rustdoc-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" [...]
-IO operations. <a>Read more</a></div></details></div></details><details class="rustdoc-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></su [...]
+</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="rustdoc-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.67.1/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/ [...]
-manner, returning a future type. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/io/struct.IoSliceMut [...]
-IO operations. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.u8.html">u8</a>]) -&gt; ReadExact&lt;'a, Self&gt;<span class="where fmt-newline">where<br> [...]
-returning an error if end of file (EOF) is hit sooner. <a>Read more</a></div></details><details class="rustdoc-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.67.1/alloc/vec/ [...]
-from the underlying reader. <a>Read more</a></div></details></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html"  [...]
-<code>next</code>. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.u8.html">u8</a>]) -&gt; Read&lt;'a, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nb [...]
-returning how many bytes were read. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>B) -&gt; ReadBuf&lt;'a, Self, B&gt;<span class="where [...]
-advancing the buffer’s internal cursor. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.u8.html">u8</a>]) -&gt; ReadExact&lt;'a, Self&gt;<span class= [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp; [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp; [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp; [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp; [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp; [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&n [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&n [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp; [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp; [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>& [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>& [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>& [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>& [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>& [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>& [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where< [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where< [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>& [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>& [...]
-underlying reader. <a>Read more</a></div></details><details class="rustdoc-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.67.1/alloc/vec/struct.Vec.html" title="struct a [...]
-new position in the object and the object itself. <a>Read more</a></div></details><details class="rustdoc-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 [...]
-start of the stream. <a>Read more</a></div></details></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title=" [...]
-new position in the object and the object itself. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.U [...]
-start of the stream. <a>Read more</a></div></details></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title=" [...]
-discarding others if any. <a>Read more</a></div></details></div></details><details class="rustdoc-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.67.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.67.1/core/convert/trait.From.h [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Reader" class="anchor">§</a><h3 clas [...]
+<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 [...]
+</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- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" clas [...]
-If the stream terminates, then the next item is <a href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html#variant.None" title="None"><code>None</code></a>. <a>Read more</a></div></details><details class="rustdoc-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-newlin [...]
-the resulting type. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait core: [...]
-the next value. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/trait.FnMut.html" tit [...]
-asynchronous predicate. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/func [...]
-them to a different type according to the provided asynchronous closure. <a>Read more</a></div></details><details class="rustdoc-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.o [...]
-an asynchronous closure. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/default/trait.Default.html" title="tr [...]
-future representing the result of that computation. <a>Read more</a></div></details><details class="rustdoc-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.or [...]
-resolves to pair of containers. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait core: [...]
-destination, returning a future representing the end result. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized [...]
-collecting all the values into one final result. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/ [...]
-inner streams produced by the base stream concurrently. <a>Read more</a></div></details><details class="rustdoc-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.6 [...]
+<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 [...]
 and polls them concurrently, yielding items in any order, as they made
-available. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/trait.F [...]
-and produces a new stream. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/func [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/ [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/futu [...]
-closure for each element on the stream. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/convert/tr [...]
+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 [...]
 closure for each element on the stream concurrently as elements become
-available. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.take-1" class="method trait-impl has-srclink"><a href="#method.take-1" 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.67.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: [...]
+available. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take-1" class="method trait-impl has-srclink"><a href="#method.take-1" 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.ru [...]
 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="rustdoc-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.67.1/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div class='docblock'>Borro [...]
-into the sink and the sink has been flushed and closed. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.split-1" class="method trait-impl has-srclink"><a href="#method.split-1" 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="tr [...]
-objects. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/trait.FnMut.html" title="trait cor [...]
-of that <code>Either</code>. <a>Read more</a></div></details><details class="rustdoc-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="trai [...]
-of that <code>Either</code>. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&g [...]
-stream types. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/tra [...]
-ready. <a>Read more</a></div></details></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait core::marker::Sized" [...]
-on. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Si [...]
+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-1" class="method trait-impl has-srclink"><a href="#method.split-1" 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" hre [...]
+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>, [...]
 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="rustdoc-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;&nbs [...]
+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="rustdoc-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= [...]
+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="rustdoc-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 [...]
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="rustdoc-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 [...]
-the first element is returned. If the stream is empty, <code>None</code> is returned. <a>Read more</a></div></details><details class="rustdoc-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= [...]
+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="rustdoc-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.67.1/std/primitive.usize.html">usize</a>) -&gt; NthFuture&lt;'_, Self&gt;<span class="w [...]
-producing a single, final value. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/ [...]
-stream. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.htm [...]
-Immediately returns the error when the function returns unsuccessfully. <a>Read more</a></div></details><details class="rustdoc-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 [...]
-of another. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/tra [...]
-its index. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait core::mark [...]
-of another using ‘Ord’. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait c [...]
-not equal to those of another. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title=" [...]
-greater than or equal to those of another. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.h [...]
-equal to those of another. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trai [...]
-greater than those of another. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title=" [...]
-less or equal to those of another. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" tit [...]
-less than those of another. <a>Read more</a></div></details></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait [...]
-<code>false</code>, and then collects them into two collections. <a>Read more</a></div></details><details class="rustdoc-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.r [...]
-into the one provided. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title=" [...]
-using the provided closure. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html [...]
-using the provided closure. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/tr [...]
-results to the provided closure <code>f</code>. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core [...]
-erroneous result to the provided closure <code>f</code>. <a>Read more</a></div></details><details class="rustdoc-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/ [...]
-it on. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/trait.FnMut.html" tit [...]
-<a href="futures_core::stream::Stream"><code>Stream</code></a> <a>Read more</a></div></details><details class="rustdoc-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.67 [...]
+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/ [...]
 If an error is encountered before the next item, the error is returned
-instead. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/ops/function/trait. [...]
-asynchronous closure for each element on the stream. <a>Read more</a></div></details><details class="rustdoc-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 [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="rustdoc-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 [...]
-resolves to <code>true</code>. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/convert [...]
+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 [...]
 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="rustdoc-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.67.1/core/ [...]
-returning a future representing the result of that computation. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.usize.html">usize</a>) -&gt; TryChunks&lt;Self&gt;<span class="where fm [...]
-provided asynchronous closure. <a>Read more</a></div></details><details class="rustdoc-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 [...]
+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 [...]
 simultaneously mapping them to a different type according to the
-provided asynchronous closure. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/convert/trait.Into.html" ti [...]
+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 [...]
 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="rustdoc-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 [...]
-stream, collecting all the values into one final result. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/mar [...]
-extendable destination, returning a future representing the end result. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.usize.html">usize</a>) -&gt; TryBufferUn [...]
-stream types. <a>Read more</a></div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" ti [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
+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:: [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/struct.Writer.html b/docs/rust/opendal/struct.Writer.html
index 96a9b0f1..289bac77 100644
--- a/docs/rust/opendal/struct.Writer.html
+++ b/docs/rust/opendal/struct.Writer.html
@@ -1,23 +1,23 @@
-<!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 designed to write data into given path in an asynchronous manner."><meta name="keywords" content="rust, rustlang, rust-lang, Writer"><title>Writer in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7 [...]
+<!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 designed to write data into given path in an asynchronous manner."><meta name="keywords" content="rust, rustlang, rust-lang, Writer"><title>Writer in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7 [...]
 manner.</p>
 <h2 id="notes"><a href="#notes">Notes</a></h2>
 <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="rustdoc-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" tit [...]
+</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="rustdoc-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.67.1/std/primitive.unit.html">()< [...]
-</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="rustdoc-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">§</ [...]
-</div></details><details class="rustdoc-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.67.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin< [...]
-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.67.1/core/panic/unw [...]
-IO operations. <a>Read more</a></div></details><details class="rustdoc-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.67.1/std/primitive.u8.html">u8</a>]) -&gt; WriteAll&lt;'a, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&n [...]
-</div></details></div></details><details class="rustdoc-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::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="rustdoc-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  [...]
-<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="rustdoc-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.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Writer" class="anchor">§</a><h3 clas [...]
+</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></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- [...]
 <p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/1.67.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="rustdoc-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="rustdoc-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="rustdoc-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/ [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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="rustdoc-toggle implementors-toggle"><summary><section id="impl-WriteExt-for-Writer" class="impl has-srclink"><a href="#impl-WriteExt-for-Writer" class="anchor">§</a><h3  [...]
\ No newline at end of file
+<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> [...]
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.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
diff --git a/docs/rust/opendal/trait.Builder.html b/docs/rust/opendal/trait.Builder.html
index 52488cc2..e3c7def5 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.67.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.67.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/1.67.1/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.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: [...]
 <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.67.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.67.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/1.67.1/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.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 [...]
     { ... }
-<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.67.1/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.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a></span>,
     { ... }
-}</code></pre></div><details class="rustdoc-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>
+}</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="rustdoc-toggle method-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">Access [...]
-</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="rustdoc-toggle method-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="const [...]
-</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="rustdoc-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 [...]
-</div></details><details class="rustdoc-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 op [...]
-</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="rustdoc-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="http [...]
-</div></details><details class="rustdoc-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.67.1/core/marker/trait.Sized.html" title="trait core::mark [...]
-</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="rustdoc-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" titl [...]
-</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><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><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
diff --git a/docs/rust/opendal/type.Result.html b/docs/rust/opendal/type.Result.html
index cc5dda38..193bbb03 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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/search-index.js b/docs/rust/search-index.js
index 9f77b3a9..75acc405 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 e8a86f2c..30bebea1 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 ea270c00..96db0c22 100644
--- a/docs/rust/src/opendal/docs/comparisons/mod.rs.html
+++ b/docs/rust/src/opendal/docs/comparisons/mod.rs.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="Source of the Rust file `src/docs/comparisons/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
+<!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="Source of the Rust file `src/docs/comparisons/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -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></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/docs/concepts.rs.html b/docs/rust/src/opendal/docs/concepts.rs.html
index cfc1f713..3038b997 100644
--- a/docs/rust/src/opendal/docs/concepts.rs.html
+++ b/docs/rust/src/opendal/docs/concepts.rs.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="Source of the Rust file `src/docs/concepts.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>concepts.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
+<!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="Source of the Rust file `src/docs/concepts.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>concepts.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -247,4 +247,4 @@
 //! [`Builder`]: crate::Builder
 //! [`Operator`]: crate::Operator
 </span></code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/docs/internals/accessor.rs.html b/docs/rust/src/opendal/docs/internals/accessor.rs.html
index 53c2986a..b671873d 100644
--- a/docs/rust/src/opendal/docs/internals/accessor.rs.html
+++ b/docs/rust/src/opendal/docs/internals/accessor.rs.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="Source of the Rust file `src/docs/internals/accessor.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>accessor.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.wof [...]
+<!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="Source of the Rust file `src/docs/internals/accessor.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>accessor.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.wof [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -645,4 +645,4 @@
 //! [`Scheme`]: crate::Scheme
 //! [`Builder`]: crate::Builder
 </span></code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/docs/internals/layer.rs.html b/docs/rust/src/opendal/docs/internals/layer.rs.html
index d3b8962b..0149bc6b 100644
--- a/docs/rust/src/opendal/docs/internals/layer.rs.html
+++ b/docs/rust/src/opendal/docs/internals/layer.rs.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="Source of the Rust file `src/docs/internals/layer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>layer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
+<!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="Source of the Rust file `src/docs/internals/layer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>layer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -83,4 +83,4 @@
 //! [`Accessor`]: crate::raw::Accessor
 //! [`LayeredAccessor`]: crate::raw::LayeredAccessor
 </span></code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/docs/internals/mod.rs.html b/docs/rust/src/opendal/docs/internals/mod.rs.html
index 9d20b406..b84bf9a8 100644
--- a/docs/rust/src/opendal/docs/internals/mod.rs.html
+++ b/docs/rust/src/opendal/docs/internals/mod.rs.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="Source of the Rust file `src/docs/internals/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link  [...]
+<!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="Source of the Rust file `src/docs/internals/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link  [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -123,4 +123,4 @@
 </span><span class="kw">pub mod </span>accessor;
 <span class="kw">pub mod </span>layer;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/docs/mod.rs.html b/docs/rust/src/opendal/docs/mod.rs.html
index 7d565645..e662a2b3 100644
--- a/docs/rust/src/opendal/docs/mod.rs.html
+++ b/docs/rust/src/opendal/docs/mod.rs.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="Source of the Rust file `src/docs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" [...]
+<!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="Source of the Rust file `src/docs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -87,4 +87,4 @@
 #[cfg(not(doctest))]
 </span><span class="kw">pub mod </span>upgrade {}
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/docs/rfcs/mod.rs.html b/docs/rust/src/opendal/docs/rfcs/mod.rs.html
index faaa818d..56d28a7c 100644
--- a/docs/rust/src/opendal/docs/rfcs/mod.rs.html
+++ b/docs/rust/src/opendal/docs/rfcs/mod.rs.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="Source of the Rust file `src/docs/rfcs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel=" [...]
+<!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="Source of the Rust file `src/docs/rfcs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel=" [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -263,4 +263,4 @@
 <span class="attr">#[doc = <span class="macro">include_str!</span>(<span class="string">&quot;1477_remove_object_concept.md&quot;</span>)]
 </span><span class="kw">pub mod </span>rfc_1477_remove_object_concept {}
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/layers/chaos.rs.html b/docs/rust/src/opendal/layers/chaos.rs.html
index cb89d7ca..99ad9101 100644
--- a/docs/rust/src/opendal/layers/chaos.rs.html
+++ b/docs/rust/src/opendal/layers/chaos.rs.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="Source of the Rust file `src/layers/chaos.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>chaos.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pr [...]
+<!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="Source of the Rust file `src/layers/chaos.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>chaos.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pr [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -471,4 +471,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/layers/complete.rs.html b/docs/rust/src/opendal/layers/complete.rs.html
index 591152f0..6cbc6491 100644
--- a/docs/rust/src/opendal/layers/complete.rs.html
+++ b/docs/rust/src/opendal/layers/complete.rs.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="Source of the Rust file `src/layers/complete.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>complete.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
+<!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="Source of the Rust file `src/layers/complete.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>complete.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -1021,4 +1021,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/layers/concurrent_limit.rs.html b/docs/rust/src/opendal/layers/concurrent_limit.rs.html
index d82ad84f..acee4ba1 100644
--- a/docs/rust/src/opendal/layers/concurrent_limit.rs.html
+++ b/docs/rust/src/opendal/layers/concurrent_limit.rs.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="Source of the Rust file `src/layers/concurrent_limit.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>concurrent_limit.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.tt [...]
+<!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="Source of the Rust file `src/layers/concurrent_limit.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>concurrent_limit.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.tt [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -705,4 +705,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/layers/error_context.rs.html b/docs/rust/src/opendal/layers/error_context.rs.html
index 72a9a168..cabf7ea0 100644
--- a/docs/rust/src/opendal/layers/error_context.rs.html
+++ b/docs/rust/src/opendal/layers/error_context.rs.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="Source of the Rust file `src/layers/error_context.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error_context.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff [...]
+<!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="Source of the Rust file `src/layers/error_context.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error_context.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -953,4 +953,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/layers/immutable_index.rs.html b/docs/rust/src/opendal/layers/immutable_index.rs.html
index fe52802f..2a1ee067 100644
--- a/docs/rust/src/opendal/layers/immutable_index.rs.html
+++ b/docs/rust/src/opendal/layers/immutable_index.rs.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="Source of the Rust file `src/layers/immutable_index.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>immutable_index.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source of the Rust file `src/layers/immutable_index.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>immutable_index.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf. [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -933,4 +933,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/layers/logging.rs.html b/docs/rust/src/opendal/layers/logging.rs.html
index e8209ce7..12b85ead 100644
--- a/docs/rust/src/opendal/layers/logging.rs.html
+++ b/docs/rust/src/opendal/layers/logging.rs.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="Source of the Rust file `src/layers/logging.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>logging.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
+<!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="Source of the Rust file `src/layers/logging.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>logging.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -3045,4 +3045,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/layers/metrics.rs.html b/docs/rust/src/opendal/layers/metrics.rs.html
index de21243a..9324eb3a 100644
--- a/docs/rust/src/opendal/layers/metrics.rs.html
+++ b/docs/rust/src/opendal/layers/metrics.rs.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="Source of the Rust file `src/layers/metrics.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>metrics.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
+<!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="Source of the Rust file `src/layers/metrics.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>metrics.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -1953,4 +1953,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/layers/mod.rs.html b/docs/rust/src/opendal/layers/mod.rs.html
index 78888e5e..b1e08d77 100644
--- a/docs/rust/src/opendal/layers/mod.rs.html
+++ b/docs/rust/src/opendal/layers/mod.rs.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="Source of the Rust file `src/layers/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preloa [...]
+<!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="Source of the Rust file `src/layers/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preloa [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -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></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/layers/retry.rs.html b/docs/rust/src/opendal/layers/retry.rs.html
index e98d0244..a6c908af 100644
--- a/docs/rust/src/opendal/layers/retry.rs.html
+++ b/docs/rust/src/opendal/layers/retry.rs.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="Source of the Rust file `src/layers/retry.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>retry.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pr [...]
+<!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="Source of the Rust file `src/layers/retry.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>retry.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pr [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -1947,4 +1947,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/layers/tracing.rs.html b/docs/rust/src/opendal/layers/tracing.rs.html
index 6ad3bef1..cf674e72 100644
--- a/docs/rust/src/opendal/layers/tracing.rs.html
+++ b/docs/rust/src/opendal/layers/tracing.rs.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="Source of the Rust file `src/layers/tracing.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>tracing.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
+<!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="Source of the Rust file `src/layers/tracing.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>tracing.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -765,4 +765,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/layers/type_eraser.rs.html b/docs/rust/src/opendal/layers/type_eraser.rs.html
index 3d30e2e2..230cf5fd 100644
--- a/docs/rust/src/opendal/layers/type_eraser.rs.html
+++ b/docs/rust/src/opendal/layers/type_eraser.rs.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="Source of the Rust file `src/layers/type_eraser.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>type_eraser.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
+<!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="Source of the Rust file `src/layers/type_eraser.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>type_eraser.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -237,4 +237,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/lib.rs.html b/docs/rust/src/opendal/lib.rs.html
index 8677bf4f..a3be47cd 100644
--- a/docs/rust/src/opendal/lib.rs.html
+++ b/docs/rust/src/opendal/lib.rs.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="Source of the Rust file `src/lib.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>lib.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="fon [...]
+<!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="Source of the Rust file `src/lib.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>lib.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="fon [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -197,4 +197,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/accessor.rs.html b/docs/rust/src/opendal/raw/accessor.rs.html
index 75eeda09..df5ed3b3 100644
--- a/docs/rust/src/opendal/raw/accessor.rs.html
+++ b/docs/rust/src/opendal/raw/accessor.rs.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="Source of the Rust file `src/raw/accessor.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>accessor.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel= [...]
+<!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="Source of the Rust file `src/raw/accessor.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>accessor.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel= [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -1081,4 +1081,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 c79227b2..8acb3e47 100644
--- a/docs/rust/src/opendal/raw/adapters/kv/api.rs.html
+++ b/docs/rust/src/opendal/raw/adapters/kv/api.rs.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="Source of the Rust file `src/raw/adapters/kv/api.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>api.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
+<!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="Source of the Rust file `src/raw/adapters/kv/api.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>api.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -309,4 +309,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 539616ec..372abafa 100644
--- a/docs/rust/src/opendal/raw/adapters/kv/backend.rs.html
+++ b/docs/rust/src/opendal/raw/adapters/kv/backend.rs.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="Source of the Rust file `src/raw/adapters/kv/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
+<!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="Source of the Rust file `src/raw/adapters/kv/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -635,4 +635,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 88448264..c3147685 100644
--- a/docs/rust/src/opendal/raw/adapters/kv/mod.rs.html
+++ b/docs/rust/src/opendal/raw/adapters/kv/mod.rs.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="Source of the Rust file `src/raw/adapters/kv/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
+<!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="Source of the Rust file `src/raw/adapters/kv/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -65,4 +65,4 @@
 <span class="kw">mod </span>backend;
 <span class="kw">pub use </span>backend::Backend;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/adapters/mod.rs.html b/docs/rust/src/opendal/raw/adapters/mod.rs.html
index 3d58a431..e69a0665 100644
--- a/docs/rust/src/opendal/raw/adapters/mod.rs.html
+++ b/docs/rust/src/opendal/raw/adapters/mod.rs.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="Source of the Rust file `src/raw/adapters/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
+<!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="Source of the Rust file `src/raw/adapters/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -95,4 +95,4 @@
 
 </span><span class="kw">pub mod </span>kv;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 9899161f..2a9a01af 100644
--- a/docs/rust/src/opendal/raw/http_util/body.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/body.rs.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="Source of the Rust file `src/raw/http_util/body.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>body.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
+<!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="Source of the Rust file `src/raw/http_util/body.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>body.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -537,4 +537,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 8ed3c6a7..157f858a 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
@@ -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="Source of the Rust file `src/raw/http_util/bytes_content_range.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>bytes_content_range.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7 [...]
+<!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="Source of the Rust file `src/raw/http_util/bytes_content_range.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>bytes_content_range.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7 [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -613,4 +613,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 4e40c64a..040507e3 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
@@ -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="Source of the Rust file `src/raw/http_util/bytes_range.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>bytes_range.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.tt [...]
+<!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="Source of the Rust file `src/raw/http_util/bytes_range.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>bytes_range.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.tt [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -655,4 +655,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 3f3e40e6..da28ef23 100644
--- a/docs/rust/src/opendal/raw/http_util/client.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/client.rs.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="Source of the Rust file `src/raw/http_util/client.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>client.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
+<!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="Source of the Rust file `src/raw/http_util/client.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>client.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -557,4 +557,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 1a82ef1b..8d9aeb0b 100644
--- a/docs/rust/src/opendal/raw/http_util/dns.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/dns.rs.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="Source of the Rust file `src/raw/http_util/dns.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>dns.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
+<!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="Source of the Rust file `src/raw/http_util/dns.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>dns.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -473,4 +473,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 476b4907..cf773f95 100644
--- a/docs/rust/src/opendal/raw/http_util/error.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/error.rs.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="Source of the Rust file `src/raw/http_util/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
+<!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="Source of the Rust file `src/raw/http_util/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -203,4 +203,4 @@
         .set_source(err)
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 90b4fe8b..df98229b 100644
--- a/docs/rust/src/opendal/raw/http_util/header.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/header.rs.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="Source of the Rust file `src/raw/http_util/header.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>header.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
+<!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="Source of the Rust file `src/raw/http_util/header.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>header.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -679,4 +679,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 fb9db799..e9d66f27 100644
--- a/docs/rust/src/opendal/raw/http_util/mod.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/mod.rs.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="Source of the Rust file `src/raw/http_util/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
+<!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="Source of the Rust file `src/raw/http_util/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -123,4 +123,4 @@
 
 <span class="kw">mod </span>dns;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 dd243f5d..a61f9053 100644
--- a/docs/rust/src/opendal/raw/http_util/uri.rs.html
+++ b/docs/rust/src/opendal/raw/http_util/uri.rs.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="Source of the Rust file `src/raw/http_util/uri.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>uri.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
+<!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="Source of the Rust file `src/raw/http_util/uri.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>uri.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -163,4 +163,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/layer.rs.html b/docs/rust/src/opendal/raw/layer.rs.html
index 12225c4e..c427dde6 100644
--- a/docs/rust/src/opendal/raw/layer.rs.html
+++ b/docs/rust/src/opendal/raw/layer.rs.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="Source of the Rust file `src/raw/layer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>layer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="prelo [...]
+<!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="Source of the Rust file `src/raw/layer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>layer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="prelo [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -699,4 +699,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/mod.rs.html b/docs/rust/src/opendal/raw/mod.rs.html
index ecf35527..4fd71b79 100644
--- a/docs/rust/src/opendal/raw/mod.rs.html
+++ b/docs/rust/src/opendal/raw/mod.rs.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="Source of the Rust file `src/raw/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload"  [...]
+<!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="Source of the Rust file `src/raw/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload"  [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -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></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/oio/cursor.rs.html b/docs/rust/src/opendal/raw/oio/cursor.rs.html
index 7e146fff..fa92e80a 100644
--- a/docs/rust/src/opendal/raw/oio/cursor.rs.html
+++ b/docs/rust/src/opendal/raw/oio/cursor.rs.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="Source of the Rust file `src/raw/oio/cursor.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>cursor.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
+<!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="Source of the Rust file `src/raw/oio/cursor.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>cursor.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -279,4 +279,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/oio/entry.rs.html b/docs/rust/src/opendal/raw/oio/entry.rs.html
index 8f89b596..1bed0ead 100644
--- a/docs/rust/src/opendal/raw/oio/entry.rs.html
+++ b/docs/rust/src/opendal/raw/oio/entry.rs.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="Source of the Rust file `src/raw/oio/entry.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>entry.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
+<!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="Source of the Rust file `src/raw/oio/entry.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>entry.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -167,4 +167,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 62fe0721..1c6112c2 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
@@ -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="Source of the Rust file `src/raw/oio/into_blocking_reader/from_fd.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>from_fd.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b1 [...]
+<!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="Source of the Rust file `src/raw/oio/into_blocking_reader/from_fd.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>from_fd.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b1 [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -237,4 +237,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 9f835272..ca752fa4 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
@@ -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="Source of the Rust file `src/raw/oio/into_blocking_reader/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</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="Source of the Rust file `src/raw/oio/into_blocking_reader/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72. [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -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></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 77e79081..ec94b458 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
@@ -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="Source of the Rust file `src/raw/oio/into_reader/by_range.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>by_range.rs - source</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="Source of the Rust file `src/raw/oio/into_reader/by_range.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>by_range.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72 [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -935,4 +935,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 120ce70e..f329cc86 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
@@ -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="Source of the Rust file `src/raw/oio/into_reader/from_fd.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>from_fd.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.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="Source of the Rust file `src/raw/oio/into_reader/from_fd.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>from_fd.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.t [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -251,4 +251,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 3cda755d..305ab3e8 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
@@ -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="Source of the Rust file `src/raw/oio/into_reader/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
+<!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="Source of the Rust file `src/raw/oio/into_reader/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -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></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 970d9737..47dde4b1 100644
--- a/docs/rust/src/opendal/raw/oio/into_streamable.rs.html
+++ b/docs/rust/src/opendal/raw/oio/into_streamable.rs.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="Source of the Rust file `src/raw/oio/into_streamable.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>into_streamable.rs - source</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="Source of the Rust file `src/raw/oio/into_streamable.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>into_streamable.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72. [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -295,4 +295,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/oio/mod.rs.html b/docs/rust/src/opendal/raw/oio/mod.rs.html
index 1dd52844..c0ea1740 100644
--- a/docs/rust/src/opendal/raw/oio/mod.rs.html
+++ b/docs/rust/src/opendal/raw/oio/mod.rs.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="Source of the Rust file `src/raw/oio/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pr [...]
+<!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="Source of the Rust file `src/raw/oio/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="pr [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -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></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/oio/page.rs.html b/docs/rust/src/opendal/raw/oio/page.rs.html
index d1a43525..537c47a4 100644
--- a/docs/rust/src/opendal/raw/oio/page.rs.html
+++ b/docs/rust/src/opendal/raw/oio/page.rs.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="Source of the Rust file `src/raw/oio/page.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>page.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel=" [...]
+<!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="Source of the Rust file `src/raw/oio/page.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>page.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel=" [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -259,4 +259,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/oio/read.rs.html b/docs/rust/src/opendal/raw/oio/read.rs.html
index 5c779c84..09ce34a5 100644
--- a/docs/rust/src/opendal/raw/oio/read.rs.html
+++ b/docs/rust/src/opendal/raw/oio/read.rs.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="Source of the Rust file `src/raw/oio/read.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>read.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel=" [...]
+<!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="Source of the Rust file `src/raw/oio/read.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>read.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel=" [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -749,4 +749,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 cbb2de8e..4f8c93e4 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
@@ -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="Source of the Rust file `src/raw/oio/to_flat_pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>to_flat_pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source of the Rust file `src/raw/oio/to_flat_pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>to_flat_pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf. [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -623,4 +623,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
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 c4cb4958..0a53ef96 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
@@ -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="Source of the Rust file `src/raw/oio/to_hierarchy_pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>to_hierarchy_pager.rs - source</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="Source of the Rust file `src/raw/oio/to_hierarchy_pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>to_hierarchy_pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176 [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -479,4 +479,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/oio/write.rs.html b/docs/rust/src/opendal/raw/oio/write.rs.html
index 1c3da586..e7e22958 100644
--- a/docs/rust/src/opendal/raw/oio/write.rs.html
+++ b/docs/rust/src/opendal/raw/oio/write.rs.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="Source of the Rust file `src/raw/oio/write.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>write.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
+<!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="Source of the Rust file `src/raw/oio/write.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>write.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -377,4 +377,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/operation.rs.html b/docs/rust/src/opendal/raw/operation.rs.html
index 68c91986..b5419dc6 100644
--- a/docs/rust/src/opendal/raw/operation.rs.html
+++ b/docs/rust/src/opendal/raw/operation.rs.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="Source of the Rust file `src/raw/operation.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>operation.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
+<!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="Source of the Rust file `src/raw/operation.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>operation.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -215,4 +215,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/path.rs.html b/docs/rust/src/opendal/raw/path.rs.html
index edbf1362..1b4ec0e9 100644
--- a/docs/rust/src/opendal/raw/path.rs.html
+++ b/docs/rust/src/opendal/raw/path.rs.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="Source of the Rust file `src/raw/path.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>path.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload [...]
+<!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="Source of the Rust file `src/raw/path.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>path.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -761,4 +761,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/rps.rs.html b/docs/rust/src/opendal/raw/rps.rs.html
index 21e9d0de..49da11bd 100644
--- a/docs/rust/src/opendal/raw/rps.rs.html
+++ b/docs/rust/src/opendal/raw/rps.rs.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="Source of the Rust file `src/raw/rps.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>rps.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload"  [...]
+<!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="Source of the Rust file `src/raw/rps.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>rps.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload"  [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -519,7 +519,7 @@
     </span><span class="kw">fn </span>test_presigned_request_convert() -&gt; <span class="prelude-ty">Result</span>&lt;()&gt; {
         <span class="kw">let </span>pr = PresignedRequest {
             method: Method::PATCH,
-            uri: Uri::from_static(<span class="string">&quot;https://opendal.databend.rs/path/to/file&quot;</span>),
+            uri: Uri::from_static(<span class="string">&quot;https://opendal.apache.org/path/to/file&quot;</span>),
             headers: {
                 <span class="kw">let </span><span class="kw-2">mut </span>headers = HeaderMap::new();
                 headers.insert(CONTENT_LENGTH, <span class="string">&quot;123&quot;</span>.parse()<span class="question-mark">?</span>);
@@ -532,7 +532,7 @@
         <span class="kw">let </span>req: Request&lt;AsyncBody&gt; = pr.clone().into();
         <span class="macro">assert_eq!</span>(Method::PATCH, req.method());
         <span class="macro">assert_eq!</span>(
-            <span class="string">&quot;https://opendal.databend.rs/path/to/file&quot;</span>,
+            <span class="string">&quot;https://opendal.apache.org/path/to/file&quot;</span>,
             req.uri().to_string()
         );
         <span class="macro">assert_eq!</span>(<span class="string">&quot;123&quot;</span>, req.headers().get(CONTENT_LENGTH).unwrap());
@@ -541,7 +541,7 @@
         <span class="kw">let </span>req: Request&lt;Body&gt; = pr.into();
         <span class="macro">assert_eq!</span>(Method::PATCH, req.method());
         <span class="macro">assert_eq!</span>(
-            <span class="string">&quot;https://opendal.databend.rs/path/to/file&quot;</span>,
+            <span class="string">&quot;https://opendal.apache.org/path/to/file&quot;</span>,
             req.uri().to_string()
         );
         <span class="macro">assert_eq!</span>(<span class="string">&quot;123&quot;</span>, req.headers().get(CONTENT_LENGTH).unwrap());
@@ -551,4 +551,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/serde_util.rs.html b/docs/rust/src/opendal/raw/serde_util.rs.html
index 4637df2e..8a19a9ea 100644
--- a/docs/rust/src/opendal/raw/serde_util.rs.html
+++ b/docs/rust/src/opendal/raw/serde_util.rs.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="Source of the Rust file `src/raw/serde_util.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>serde_util.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link  [...]
+<!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="Source of the Rust file `src/raw/serde_util.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>serde_util.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link  [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -65,4 +65,4 @@
     Error::new(ErrorKind::Unexpected, <span class="string">&quot;deserialize json&quot;</span>).set_source(e)
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/raw/version.rs.html b/docs/rust/src/opendal/raw/version.rs.html
index f3796089..ab6f0529 100644
--- a/docs/rust/src/opendal/raw/version.rs.html
+++ b/docs/rust/src/opendal/raw/version.rs.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="Source of the Rust file `src/raw/version.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>version.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="p [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source of the Rust file `src/raw/version.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>version.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="p [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -59,4 +59,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/azblob/backend.rs.html b/docs/rust/src/opendal/services/azblob/backend.rs.html
index c1a93728..f2da994d 100644
--- a/docs/rust/src/opendal/services/azblob/backend.rs.html
+++ b/docs/rust/src/opendal/services/azblob/backend.rs.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="Source of the Rust file `src/services/azblob/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff [...]
+<!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="Source of the Rust file `src/services/azblob/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -1813,4 +1813,4 @@ SharedAccessSignature=sv=2021-01-01&amp;ss=b&amp;srt=c&amp;sp=rwdlaciytfx&amp;se
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/azblob/error.rs.html b/docs/rust/src/opendal/services/azblob/error.rs.html
index 6c4cc7fc..b4c15a59 100644
--- a/docs/rust/src/opendal/services/azblob/error.rs.html
+++ b/docs/rust/src/opendal/services/azblob/error.rs.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="Source of the Rust file `src/services/azblob/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
+<!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="Source of the Rust file `src/services/azblob/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -317,4 +317,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/azblob/mod.rs.html b/docs/rust/src/opendal/services/azblob/mod.rs.html
index 4cacb04c..d77822d6 100644
--- a/docs/rust/src/opendal/services/azblob/mod.rs.html
+++ b/docs/rust/src/opendal/services/azblob/mod.rs.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="Source of the Rust file `src/services/azblob/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
+<!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="Source of the Rust file `src/services/azblob/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -45,4 +45,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/azblob/pager.rs.html b/docs/rust/src/opendal/services/azblob/pager.rs.html
index 868abd6b..72a736d5 100644
--- a/docs/rust/src/opendal/services/azblob/pager.rs.html
+++ b/docs/rust/src/opendal/services/azblob/pager.rs.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="Source of the Rust file `src/services/azblob/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
+<!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="Source of the Rust file `src/services/azblob/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -731,4 +731,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/azblob/writer.rs.html b/docs/rust/src/opendal/services/azblob/writer.rs.html
index 74d069e2..d89fb666 100644
--- a/docs/rust/src/opendal/services/azblob/writer.rs.html
+++ b/docs/rust/src/opendal/services/azblob/writer.rs.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="Source of the Rust file `src/services/azblob/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2" [...]
+<!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="Source of the Rust file `src/services/azblob/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2" [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -161,4 +161,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/azdfs/backend.rs.html b/docs/rust/src/opendal/services/azdfs/backend.rs.html
index fdac3034..b607d0ba 100644
--- a/docs/rust/src/opendal/services/azdfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/azdfs/backend.rs.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="Source of the Rust file `src/services/azdfs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
+<!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="Source of the Rust file `src/services/azdfs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -1411,4 +1411,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/azdfs/error.rs.html b/docs/rust/src/opendal/services/azdfs/error.rs.html
index 299304c1..6ea83567 100644
--- a/docs/rust/src/opendal/services/azdfs/error.rs.html
+++ b/docs/rust/src/opendal/services/azdfs/error.rs.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="Source of the Rust file `src/services/azdfs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
+<!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="Source of the Rust file `src/services/azdfs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -207,4 +207,4 @@
     <span class="prelude-val">Ok</span>(err)
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/azdfs/mod.rs.html b/docs/rust/src/opendal/services/azdfs/mod.rs.html
index 42798077..4c4e3638 100644
--- a/docs/rust/src/opendal/services/azdfs/mod.rs.html
+++ b/docs/rust/src/opendal/services/azdfs/mod.rs.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="Source of the Rust file `src/services/azdfs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link  [...]
+<!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="Source of the Rust file `src/services/azdfs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link  [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -45,4 +45,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/azdfs/pager.rs.html b/docs/rust/src/opendal/services/azdfs/pager.rs.html
index 710b3881..8befa2df 100644
--- a/docs/rust/src/opendal/services/azdfs/pager.rs.html
+++ b/docs/rust/src/opendal/services/azdfs/pager.rs.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="Source of the Rust file `src/services/azdfs/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
+<!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="Source of the Rust file `src/services/azdfs/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -385,4 +385,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/azdfs/writer.rs.html b/docs/rust/src/opendal/services/azdfs/writer.rs.html
index 0f8c917e..5b769c07 100644
--- a/docs/rust/src/opendal/services/azdfs/writer.rs.html
+++ b/docs/rust/src/opendal/services/azdfs/writer.rs.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="Source of the Rust file `src/services/azdfs/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
+<!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="Source of the Rust file `src/services/azdfs/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -211,4 +211,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/dashmap/backend.rs.html b/docs/rust/src/opendal/services/dashmap/backend.rs.html
index 023adb23..af9feed9 100644
--- a/docs/rust/src/opendal/services/dashmap/backend.rs.html
+++ b/docs/rust/src/opendal/services/dashmap/backend.rs.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="Source of the Rust file `src/services/dashmap/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.wof [...]
+<!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="Source of the Rust file `src/services/dashmap/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.wof [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -265,4 +265,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/dashmap/mod.rs.html b/docs/rust/src/opendal/services/dashmap/mod.rs.html
index bdf7f3ed..330982d9 100644
--- a/docs/rust/src/opendal/services/dashmap/mod.rs.html
+++ b/docs/rust/src/opendal/services/dashmap/mod.rs.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="Source of the Rust file `src/services/dashmap/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
+<!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="Source of the Rust file `src/services/dashmap/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -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></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/fs/backend.rs.html b/docs/rust/src/opendal/services/fs/backend.rs.html
index 49dbb7a0..8a91776a 100644
--- a/docs/rust/src/opendal/services/fs/backend.rs.html
+++ b/docs/rust/src/opendal/services/fs/backend.rs.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="Source of the Rust file `src/services/fs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
+<!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="Source of the Rust file `src/services/fs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -1435,4 +1435,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/fs/error.rs.html b/docs/rust/src/opendal/services/fs/error.rs.html
index a8282862..18e39ee8 100644
--- a/docs/rust/src/opendal/services/fs/error.rs.html
+++ b/docs/rust/src/opendal/services/fs/error.rs.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="Source of the Rust file `src/services/fs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
+<!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="Source of the Rust file `src/services/fs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -81,4 +81,4 @@
     err
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/fs/mod.rs.html b/docs/rust/src/opendal/services/fs/mod.rs.html
index 2a5aa53e..c940934c 100644
--- a/docs/rust/src/opendal/services/fs/mod.rs.html
+++ b/docs/rust/src/opendal/services/fs/mod.rs.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="Source of the Rust file `src/services/fs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
+<!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="Source of the Rust file `src/services/fs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -45,4 +45,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/fs/pager.rs.html b/docs/rust/src/opendal/services/fs/pager.rs.html
index f0e18da6..eadcfee1 100644
--- a/docs/rust/src/opendal/services/fs/pager.rs.html
+++ b/docs/rust/src/opendal/services/fs/pager.rs.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="Source of the Rust file `src/services/fs/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
+<!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="Source of the Rust file `src/services/fs/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -253,4 +253,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/fs/writer.rs.html b/docs/rust/src/opendal/services/fs/writer.rs.html
index 8cfa8aa6..6f84646e 100644
--- a/docs/rust/src/opendal/services/fs/writer.rs.html
+++ b/docs/rust/src/opendal/services/fs/writer.rs.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="Source of the Rust file `src/services/fs/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
+<!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="Source of the Rust file `src/services/fs/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -251,4 +251,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ftp/backend.rs.html b/docs/rust/src/opendal/services/ftp/backend.rs.html
index 3db90914..4c04de4a 100644
--- a/docs/rust/src/opendal/services/ftp/backend.rs.html
+++ b/docs/rust/src/opendal/services/ftp/backend.rs.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="Source of the Rust file `src/services/ftp/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
+<!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="Source of the Rust file `src/services/ftp/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -1097,4 +1097,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ftp/err.rs.html b/docs/rust/src/opendal/services/ftp/err.rs.html
index 69af6eac..16570364 100644
--- a/docs/rust/src/opendal/services/ftp/err.rs.html
+++ b/docs/rust/src/opendal/services/ftp/err.rs.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="Source of the Rust file `src/services/ftp/err.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>err.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
+<!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="Source of the Rust file `src/services/ftp/err.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>err.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -97,4 +97,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ftp/mod.rs.html b/docs/rust/src/opendal/services/ftp/mod.rs.html
index 35352363..78573839 100644
--- a/docs/rust/src/opendal/services/ftp/mod.rs.html
+++ b/docs/rust/src/opendal/services/ftp/mod.rs.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="Source of the Rust file `src/services/ftp/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
+<!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="Source of the Rust file `src/services/ftp/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -47,4 +47,4 @@
 <span class="kw">mod </span>util;
 <span class="kw">mod </span>writer;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ftp/pager.rs.html b/docs/rust/src/opendal/services/ftp/pager.rs.html
index 5b40796f..af2c55ca 100644
--- a/docs/rust/src/opendal/services/ftp/pager.rs.html
+++ b/docs/rust/src/opendal/services/ftp/pager.rs.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="Source of the Rust file `src/services/ftp/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
+<!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="Source of the Rust file `src/services/ftp/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -155,4 +155,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ftp/util.rs.html b/docs/rust/src/opendal/services/ftp/util.rs.html
index 4f881dc7..333bf41f 100644
--- a/docs/rust/src/opendal/services/ftp/util.rs.html
+++ b/docs/rust/src/opendal/services/ftp/util.rs.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="Source of the Rust file `src/services/ftp/util.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>util.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link  [...]
+<!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="Source of the Rust file `src/services/ftp/util.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>util.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link  [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -245,4 +245,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ftp/writer.rs.html b/docs/rust/src/opendal/services/ftp/writer.rs.html
index 265c920b..4005cb92 100644
--- a/docs/rust/src/opendal/services/ftp/writer.rs.html
+++ b/docs/rust/src/opendal/services/ftp/writer.rs.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="Source of the Rust file `src/services/ftp/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
+<!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="Source of the Rust file `src/services/ftp/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -135,4 +135,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/gcs/backend.rs.html b/docs/rust/src/opendal/services/gcs/backend.rs.html
index 4453a70c..c669f4ed 100644
--- a/docs/rust/src/opendal/services/gcs/backend.rs.html
+++ b/docs/rust/src/opendal/services/gcs/backend.rs.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="Source of the Rust file `src/services/gcs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
+<!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="Source of the Rust file `src/services/gcs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -1377,4 +1377,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/gcs/error.rs.html b/docs/rust/src/opendal/services/gcs/error.rs.html
index 65dbcb06..4f860e03 100644
--- a/docs/rust/src/opendal/services/gcs/error.rs.html
+++ b/docs/rust/src/opendal/services/gcs/error.rs.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="Source of the Rust file `src/services/gcs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
+<!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="Source of the Rust file `src/services/gcs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -235,4 +235,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/gcs/mod.rs.html b/docs/rust/src/opendal/services/gcs/mod.rs.html
index 35958e9d..168309d8 100644
--- a/docs/rust/src/opendal/services/gcs/mod.rs.html
+++ b/docs/rust/src/opendal/services/gcs/mod.rs.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="Source of the Rust file `src/services/gcs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
+<!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="Source of the Rust file `src/services/gcs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -47,4 +47,4 @@
 <span class="kw">mod </span>uri;
 <span class="kw">mod </span>writer;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/gcs/pager.rs.html b/docs/rust/src/opendal/services/gcs/pager.rs.html
index e905bd7d..dcf607c5 100644
--- a/docs/rust/src/opendal/services/gcs/pager.rs.html
+++ b/docs/rust/src/opendal/services/gcs/pager.rs.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="Source of the Rust file `src/services/gcs/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
+<!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="Source of the Rust file `src/services/gcs/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -615,4 +615,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/gcs/uri.rs.html b/docs/rust/src/opendal/services/gcs/uri.rs.html
index f58829b8..e85a0015 100644
--- a/docs/rust/src/opendal/services/gcs/uri.rs.html
+++ b/docs/rust/src/opendal/services/gcs/uri.rs.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="Source of the Rust file `src/services/gcs/uri.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>uri.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
+<!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="Source of the Rust file `src/services/gcs/uri.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>uri.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -149,4 +149,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/gcs/writer.rs.html b/docs/rust/src/opendal/services/gcs/writer.rs.html
index fd6ab182..c1863232 100644
--- a/docs/rust/src/opendal/services/gcs/writer.rs.html
+++ b/docs/rust/src/opendal/services/gcs/writer.rs.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="Source of the Rust file `src/services/gcs/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
+<!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="Source of the Rust file `src/services/gcs/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -161,4 +161,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ghac/backend.rs.html b/docs/rust/src/opendal/services/ghac/backend.rs.html
index d5f9b651..23b302c0 100644
--- a/docs/rust/src/opendal/services/ghac/backend.rs.html
+++ b/docs/rust/src/opendal/services/ghac/backend.rs.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="Source of the Rust file `src/services/ghac/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2" [...]
+<!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="Source of the Rust file `src/services/ghac/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2" [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -1291,4 +1291,4 @@
     size: u64,
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ghac/error.rs.html b/docs/rust/src/opendal/services/ghac/error.rs.html
index d0d88160..61240ec9 100644
--- a/docs/rust/src/opendal/services/ghac/error.rs.html
+++ b/docs/rust/src/opendal/services/ghac/error.rs.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="Source of the Rust file `src/services/ghac/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
+<!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="Source of the Rust file `src/services/ghac/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -101,4 +101,4 @@
     <span class="prelude-val">Ok</span>(err)
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ghac/mod.rs.html b/docs/rust/src/opendal/services/ghac/mod.rs.html
index bed37939..6fb90e67 100644
--- a/docs/rust/src/opendal/services/ghac/mod.rs.html
+++ b/docs/rust/src/opendal/services/ghac/mod.rs.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="Source of the Rust file `src/services/ghac/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
+<!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="Source of the Rust file `src/services/ghac/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -43,4 +43,4 @@
 <span class="kw">mod </span>error;
 <span class="kw">mod </span>writer;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ghac/writer.rs.html b/docs/rust/src/opendal/services/ghac/writer.rs.html
index 9063cb12..5f4d15db 100644
--- a/docs/rust/src/opendal/services/ghac/writer.rs.html
+++ b/docs/rust/src/opendal/services/ghac/writer.rs.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="Source of the Rust file `src/services/ghac/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
+<!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="Source of the Rust file `src/services/ghac/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -173,4 +173,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/hdfs/backend.rs.html b/docs/rust/src/opendal/services/hdfs/backend.rs.html
index 63e5befc..24e7d8b7 100644
--- a/docs/rust/src/opendal/services/hdfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/hdfs/backend.rs.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="Source of the Rust file `src/services/hdfs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2" [...]
+<!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="Source of the Rust file `src/services/hdfs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2" [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -1163,4 +1163,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/hdfs/error.rs.html b/docs/rust/src/opendal/services/hdfs/error.rs.html
index a4a9a097..6eb96a80 100644
--- a/docs/rust/src/opendal/services/hdfs/error.rs.html
+++ b/docs/rust/src/opendal/services/hdfs/error.rs.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="Source of the Rust file `src/services/hdfs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
+<!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="Source of the Rust file `src/services/hdfs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -89,4 +89,4 @@
     err
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/hdfs/mod.rs.html b/docs/rust/src/opendal/services/hdfs/mod.rs.html
index d66b9069..86199551 100644
--- a/docs/rust/src/opendal/services/hdfs/mod.rs.html
+++ b/docs/rust/src/opendal/services/hdfs/mod.rs.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="Source of the Rust file `src/services/hdfs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
+<!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="Source of the Rust file `src/services/hdfs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -45,4 +45,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/hdfs/pager.rs.html b/docs/rust/src/opendal/services/hdfs/pager.rs.html
index 75a03ea8..89640c7b 100644
--- a/docs/rust/src/opendal/services/hdfs/pager.rs.html
+++ b/docs/rust/src/opendal/services/hdfs/pager.rs.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="Source of the Rust file `src/services/hdfs/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
+<!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="Source of the Rust file `src/services/hdfs/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -207,4 +207,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/hdfs/writer.rs.html b/docs/rust/src/opendal/services/hdfs/writer.rs.html
index 772520fd..ac956444 100644
--- a/docs/rust/src/opendal/services/hdfs/writer.rs.html
+++ b/docs/rust/src/opendal/services/hdfs/writer.rs.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="Source of the Rust file `src/services/hdfs/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
+<!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="Source of the Rust file `src/services/hdfs/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2">< [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -221,4 +221,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/http/backend.rs.html b/docs/rust/src/opendal/services/http/backend.rs.html
index 526c526f..3dd9ece5 100644
--- a/docs/rust/src/opendal/services/http/backend.rs.html
+++ b/docs/rust/src/opendal/services/http/backend.rs.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="Source of the Rust file `src/services/http/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2" [...]
+<!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="Source of the Rust file `src/services/http/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2" [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -927,4 +927,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/http/error.rs.html b/docs/rust/src/opendal/services/http/error.rs.html
index 53524a5d..0999fe54 100644
--- a/docs/rust/src/opendal/services/http/error.rs.html
+++ b/docs/rust/src/opendal/services/http/error.rs.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="Source of the Rust file `src/services/http/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
+<!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="Source of the Rust file `src/services/http/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -97,4 +97,4 @@
     <span class="prelude-val">Ok</span>(err)
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/http/mod.rs.html b/docs/rust/src/opendal/services/http/mod.rs.html
index 3b20178e..4bc29acd 100644
--- a/docs/rust/src/opendal/services/http/mod.rs.html
+++ b/docs/rust/src/opendal/services/http/mod.rs.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="Source of the Rust file `src/services/http/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
+<!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="Source of the Rust file `src/services/http/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -41,4 +41,4 @@
 
 <span class="kw">mod </span>error;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ipfs/backend.rs.html b/docs/rust/src/opendal/services/ipfs/backend.rs.html
index e305e256..22c6e095 100644
--- a/docs/rust/src/opendal/services/ipfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/ipfs/backend.rs.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="Source of the Rust file `src/services/ipfs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2" [...]
+<!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="Source of the Rust file `src/services/ipfs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2" [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -609,7 +609,7 @@
     ///
     /// - `/ipfs/QmPpCt1aYGb9JWJRmXRUnmJtVgeFFTJGzWFYEEX7bo9zGJ/` (IPFS with CID v0)
     /// - `/ipfs/bafybeibozpulxtpv5nhfa2ue3dcjx23ndh3gwr5vwllk7ptoyfwnfjjr4q/` (IPFS with  CID v1)
-    /// - `/ipns/opendal.databend.rs/` (IPNS)
+    /// - `/ipns/opendal.apache.org/` (IPNS)
     </span><span class="kw">pub fn </span>root(<span class="kw-2">&amp;mut </span><span class="self">self</span>, root: <span class="kw-2">&amp;</span>str) -&gt; <span class="kw-2">&amp;mut </span><span class="self">Self </span>{
         <span class="kw">if </span>!root.is_empty() {
             <span class="self">self</span>.root = <span class="prelude-val">Some</span>(root.to_string())
@@ -1027,4 +1027,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ipfs/error.rs.html b/docs/rust/src/opendal/services/ipfs/error.rs.html
index 2d92f0d7..0ce49748 100644
--- a/docs/rust/src/opendal/services/ipfs/error.rs.html
+++ b/docs/rust/src/opendal/services/ipfs/error.rs.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="Source of the Rust file `src/services/ipfs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
+<!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="Source of the Rust file `src/services/ipfs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><li [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -101,4 +101,4 @@
     <span class="prelude-val">Ok</span>(err)
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ipfs/ipld.rs.html b/docs/rust/src/opendal/services/ipfs/ipld.rs.html
index e6cfa535..a1c49fcf 100644
--- a/docs/rust/src/opendal/services/ipfs/ipld.rs.html
+++ b/docs/rust/src/opendal/services/ipfs/ipld.rs.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="Source of the Rust file `src/services/ipfs/ipld.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>ipld.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
+<!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="Source of the Rust file `src/services/ipfs/ipld.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>ipld.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -323,4 +323,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ipfs/mod.rs.html b/docs/rust/src/opendal/services/ipfs/mod.rs.html
index 2ce9b425..b5bb1b8a 100644
--- a/docs/rust/src/opendal/services/ipfs/mod.rs.html
+++ b/docs/rust/src/opendal/services/ipfs/mod.rs.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="Source of the Rust file `src/services/ipfs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
+<!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="Source of the Rust file `src/services/ipfs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -43,4 +43,4 @@
 <span class="kw">mod </span>error;
 <span class="kw">mod </span>ipld;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ipmfs/backend.rs.html b/docs/rust/src/opendal/services/ipmfs/backend.rs.html
index 68c8a222..f1dd0da7 100644
--- a/docs/rust/src/opendal/services/ipmfs/backend.rs.html
+++ b/docs/rust/src/opendal/services/ipmfs/backend.rs.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="Source of the Rust file `src/services/ipmfs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
+<!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="Source of the Rust file `src/services/ipmfs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -619,4 +619,4 @@
     </span>file_type: String,
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ipmfs/builder.rs.html b/docs/rust/src/opendal/services/ipmfs/builder.rs.html
index e1a26320..10202126 100644
--- a/docs/rust/src/opendal/services/ipmfs/builder.rs.html
+++ b/docs/rust/src/opendal/services/ipmfs/builder.rs.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="Source of the Rust file `src/services/ipmfs/builder.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>builder.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
+<!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="Source of the Rust file `src/services/ipmfs/builder.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>builder.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -289,4 +289,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ipmfs/error.rs.html b/docs/rust/src/opendal/services/ipmfs/error.rs.html
index 28b3fa51..c2eea596 100644
--- a/docs/rust/src/opendal/services/ipmfs/error.rs.html
+++ b/docs/rust/src/opendal/services/ipmfs/error.rs.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="Source of the Rust file `src/services/ipmfs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
+<!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="Source of the Rust file `src/services/ipmfs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -165,4 +165,4 @@
     <span class="prelude-val">Ok</span>(err)
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ipmfs/mod.rs.html b/docs/rust/src/opendal/services/ipmfs/mod.rs.html
index 616c6d3c..365e6fa1 100644
--- a/docs/rust/src/opendal/services/ipmfs/mod.rs.html
+++ b/docs/rust/src/opendal/services/ipmfs/mod.rs.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="Source of the Rust file `src/services/ipmfs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link  [...]
+<!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="Source of the Rust file `src/services/ipmfs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link  [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -47,4 +47,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ipmfs/pager.rs.html b/docs/rust/src/opendal/services/ipmfs/pager.rs.html
index 30c0af34..b2136939 100644
--- a/docs/rust/src/opendal/services/ipmfs/pager.rs.html
+++ b/docs/rust/src/opendal/services/ipmfs/pager.rs.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="Source of the Rust file `src/services/ipmfs/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
+<!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="Source of the Rust file `src/services/ipmfs/pager.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>pager.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -269,4 +269,4 @@
     </span>entries: <span class="prelude-ty">Option</span>&lt;Vec&lt;IpfsLsResponseEntry&gt;&gt;,
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/ipmfs/writer.rs.html b/docs/rust/src/opendal/services/ipmfs/writer.rs.html
index 2921ad61..0fa24fd0 100644
--- a/docs/rust/src/opendal/services/ipmfs/writer.rs.html
+++ b/docs/rust/src/opendal/services/ipmfs/writer.rs.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="Source of the Rust file `src/services/ipmfs/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
+<!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="Source of the Rust file `src/services/ipmfs/writer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>writer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -139,4 +139,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/memcached/ascii.rs.html b/docs/rust/src/opendal/services/memcached/ascii.rs.html
index 6a8a86cd..72d87ec6 100644
--- a/docs/rust/src/opendal/services/memcached/ascii.rs.html
+++ b/docs/rust/src/opendal/services/memcached/ascii.rs.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="Source of the Rust file `src/services/memcached/ascii.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>ascii.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
+<!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="Source of the Rust file `src/services/memcached/ascii.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>ascii.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -289,4 +289,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/memcached/backend.rs.html b/docs/rust/src/opendal/services/memcached/backend.rs.html
index 80f641fe..eb50b21a 100644
--- a/docs/rust/src/opendal/services/memcached/backend.rs.html
+++ b/docs/rust/src/opendal/services/memcached/backend.rs.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="Source of the Rust file `src/services/memcached/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
+<!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="Source of the Rust file `src/services/memcached/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.w [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -659,4 +659,4 @@
     </span>}
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/memcached/mod.rs.html b/docs/rust/src/opendal/services/memcached/mod.rs.html
index 0fdc8c3f..eda66d88 100644
--- a/docs/rust/src/opendal/services/memcached/mod.rs.html
+++ b/docs/rust/src/opendal/services/memcached/mod.rs.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="Source of the Rust file `src/services/memcached/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
+<!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="Source of the Rust file `src/services/memcached/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><l [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -41,4 +41,4 @@
 
 <span class="kw">mod </span>ascii;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/memory/backend.rs.html b/docs/rust/src/opendal/services/memory/backend.rs.html
index 6f53081d..4ca8323a 100644
--- a/docs/rust/src/opendal/services/memory/backend.rs.html
+++ b/docs/rust/src/opendal/services/memory/backend.rs.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="Source of the Rust file `src/services/memory/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff [...]
+<!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="Source of the Rust file `src/services/memory/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -283,4 +283,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/memory/mod.rs.html b/docs/rust/src/opendal/services/memory/mod.rs.html
index 3f3d3d80..34c7a48c 100644
--- a/docs/rust/src/opendal/services/memory/mod.rs.html
+++ b/docs/rust/src/opendal/services/memory/mod.rs.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="Source of the Rust file `src/services/memory/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
+<!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="Source of the Rust file `src/services/memory/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -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></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/mod.rs.html b/docs/rust/src/opendal/services/mod.rs.html
index e7578766..92e2c09e 100644
--- a/docs/rust/src/opendal/services/mod.rs.html
+++ b/docs/rust/src/opendal/services/mod.rs.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="Source of the Rust file `src/services/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="prel [...]
+<!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="Source of the Rust file `src/services/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="prel [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -207,4 +207,4 @@
 <span class="kw">mod </span>webhdfs;
 <span class="kw">pub use </span>webhdfs::Webhdfs;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/moka/backend.rs.html b/docs/rust/src/opendal/services/moka/backend.rs.html
index c170793d..1ed3e853 100644
--- a/docs/rust/src/opendal/services/moka/backend.rs.html
+++ b/docs/rust/src/opendal/services/moka/backend.rs.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="Source of the Rust file `src/services/moka/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2" [...]
+<!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="Source of the Rust file `src/services/moka/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2" [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -473,4 +473,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/moka/mod.rs.html b/docs/rust/src/opendal/services/moka/mod.rs.html
index d53e09ce..2bdb67fa 100644
--- a/docs/rust/src/opendal/services/moka/mod.rs.html
+++ b/docs/rust/src/opendal/services/moka/mod.rs.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="Source of the Rust file `src/services/moka/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
+<!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="Source of the Rust file `src/services/moka/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link r [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -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></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/obs/backend.rs.html b/docs/rust/src/opendal/services/obs/backend.rs.html
index 8745f965..d4c61d9f 100644
--- a/docs/rust/src/opendal/services/obs/backend.rs.html
+++ b/docs/rust/src/opendal/services/obs/backend.rs.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="Source of the Rust file `src/services/obs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
+<!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="Source of the Rust file `src/services/obs/backend.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>backend.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -1075,4 +1075,4 @@
     </span>}
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/obs/error.rs.html b/docs/rust/src/opendal/services/obs/error.rs.html
index bea02939..6d495f19 100644
--- a/docs/rust/src/opendal/services/obs/error.rs.html
+++ b/docs/rust/src/opendal/services/obs/error.rs.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="Source of the Rust file `src/services/obs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
+<!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="Source of the Rust file `src/services/obs/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><lin [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -205,4 +205,4 @@
     }
 }
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/obs/mod.rs.html b/docs/rust/src/opendal/services/obs/mod.rs.html
index 077eeed0..aff7a270 100644
--- a/docs/rust/src/opendal/services/obs/mod.rs.html
+++ b/docs/rust/src/opendal/services/obs/mod.rs.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="Source of the Rust file `src/services/obs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
+<!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="Source of the Rust file `src/services/obs/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link re [...]
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
 <a href="#4" id="4">4</a>
@@ -45,4 +45,4 @@
 <span class="kw">mod </span>pager;
 <span class="kw">mod </span>writer;
 </code></pre></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.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.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.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
diff --git a/docs/rust/src/opendal/services/obs/pager.rs.html b/docs/rust/src/opendal/services/obs/pager.rs.html
index c2f92c95..3002cbd3 100644
--- a/docs/rust/src/opendal/services/obs/pager.rs.html
+++ b/docs/rust/src/opendal/services/obs/pager.rs.html
... 1029 lines suppressed ...