mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-23 16:30:39 +00:00
Deploying to gh-pages from @ GreptimeTeam/greptimedb@0572a680af 🚀
This commit is contained in:
@@ -0,0 +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="This logical tries to extract parent path from the object storage operation the function also relies on assumption that the region path is built from pattern `<data|index>/catalog/schema/table_id/...` OR `greptimedb/object_cache/<read|write>/...`"><title>build_prometheus_metrics_layer in object_store::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">build_prometheus_metrics_layer</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">object_store</a>::<wbr><a href="index.html">layers</a></div><h1>Function <span class="fn">build_<wbr>prometheus_<wbr>metrics_<wbr>layer</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/object_store/layers.rs.html#33-49">Source</a> </span></div><pre class="rust item-decl"><code>pub fn build_prometheus_metrics_layer(_with_path_label: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> <a class="struct" href="struct.PrometheusLayer.html" title="struct object_store::layers::PrometheusLayer">PrometheusLayer</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>This logical tries to extract parent path from the object storage operation
|
||||
the function also relies on assumption that the region path is built from
|
||||
pattern <code><data|index>/catalog/schema/table_id/...</code> OR <code>greptimedb/object_cache/<read|write>/...</code></p>
|
||||
<p>We’ll get the data/catalog/schema from path.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
3
object_store/layers/index.html
Normal file
3
object_store/layers/index.html
Normal file
File diff suppressed because one or more lines are too long
234
object_store/layers/mock/enum.ErrorKind.html
Normal file
234
object_store/layers/mock/enum.ErrorKind.html
Normal file
File diff suppressed because one or more lines are too long
191
object_store/layers/mock/enum.MockLayerBuilderError.html
Normal file
191
object_store/layers/mock/enum.MockLayerBuilderError.html
Normal file
File diff suppressed because one or more lines are too long
15
object_store/layers/mock/index.html
Normal file
15
object_store/layers/mock/index.html
Normal file
@@ -0,0 +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="API documentation for the Rust `mock` mod in crate `object_store`."><title>object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module mock</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module mock</a></h2><h3><a href="#modules">Module Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#traits" title="Traits">Traits</a></li><li><a href="#types" title="Type Aliases">Type Aliases</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In object_<wbr>store::<wbr>layers</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a></div><h1>Module <span>mock</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/object_store/layers/mock.rs.html#15-236">Source</a> </span></div><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="oio/index.html" title="mod object_store::layers::mock::oio">oio</a></dt><dd><code>oio</code> provides OpenDAL’s raw traits and types that opendal returns as
|
||||
output.</dd></dl><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.AppendWriter.html" title="struct object_store::layers::mock::AppendWriter">Append<wbr>Writer</a></dt><dd>AppendWriter will implements <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on append object.</dd><dt><a class="struct" href="struct.BatchDeleteResult.html" title="struct object_store::layers::mock::BatchDeleteResult">Batch<wbr>Delete<wbr>Result</a></dt><dd>BatchDeleteResult is the result of batch delete operation.</dd><dt><a class="struct" href="struct.BatchDeleter.html" title="struct object_store::layers::mock::BatchDeleter">Batch<wbr>Deleter</a></dt><dd>BatchDeleter is used to implement <a href="trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>oio::Delete</code></a> based on batch delete.</dd><dt><a class="struct" href="struct.BlockWriter.html" title="struct object_store::layers::mock::BlockWriter">Block<wbr>Writer</a></dt><dd>BlockWriter will implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on block
|
||||
uploads.</dd><dt><a class="struct" href="struct.Buffer.html" title="struct object_store::layers::mock::Buffer">Buffer</a></dt><dd>Buffer is a wrapper of contiguous <code>Bytes</code> and non-contiguous <code>[Bytes]</code>.</dd><dt><a class="struct" href="struct.Entry.html" title="struct object_store::layers::mock::Entry">Entry</a></dt><dd>Entry is returned by <code>Page</code> or <code>BlockingPage</code> during list operations.</dd><dt><a class="struct" href="struct.Error.html" title="struct object_store::layers::mock::Error">Error</a></dt><dd>Error is the error struct returned by all opendal functions.</dd><dt><a class="struct" href="struct.FlatLister.html" title="struct object_store::layers::mock::FlatLister">Flat<wbr>Lister</a></dt><dd>FlatLister will walk dir in bottom up way:</dd><dt><a class="struct" href="struct.FlexBuf.html" title="struct object_store::layers::mock::FlexBuf">FlexBuf</a></dt><dd>FlexBuf is a buffer that support frozen bytes and reuse existing allocated memory.</dd><dt><a class="struct" href="struct.HierarchyLister.html" title="struct object_store::layers::mock::HierarchyLister">Hierarchy<wbr>Lister</a></dt><dd>ToHierarchyLister will convert a flat list to hierarchy by filter
|
||||
not needed entries.</dd><dt><a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a></dt><dd>Metadata contains all the information related to a specific path.</dd><dt><a class="struct" href="struct.MockAccessor.html" title="struct object_store::layers::mock::MockAccessor">Mock<wbr>Accessor</a></dt><dt><a class="struct" href="struct.MockDeleter.html" title="struct object_store::layers::mock::MockDeleter">Mock<wbr>Deleter</a></dt><dt><a class="struct" href="struct.MockLayer.html" title="struct object_store::layers::mock::MockLayer">Mock<wbr>Layer</a></dt><dt><a class="struct" href="struct.MockLayerBuilder.html" title="struct object_store::layers::mock::MockLayerBuilder">Mock<wbr>Layer<wbr>Builder</a></dt><dd>Builder for <a href="struct.MockLayer.html"><code>MockLayer</code></a>.</dd><dt><a class="struct" href="struct.MockLister.html" title="struct object_store::layers::mock::MockLister">Mock<wbr>Lister</a></dt><dt><a class="struct" href="struct.MockReader.html" title="struct object_store::layers::mock::MockReader">Mock<wbr>Reader</a></dt><dt><a class="struct" href="struct.MockWriter.html" title="struct object_store::layers::mock::MockWriter">Mock<wbr>Writer</a></dt><dt><a class="struct" href="struct.MultipartPart.html" title="struct object_store::layers::mock::MultipartPart">Multipart<wbr>Part</a></dt><dd>The result of <a href="trait.MultipartWrite.html#tymethod.write_part" title="method object_store::layers::mock::MultipartWrite::write_part"><code>MultipartWrite::write_part</code></a>.</dd><dt><a class="struct" href="struct.MultipartWriter.html" title="struct object_store::layers::mock::MultipartWriter">Multipart<wbr>Writer</a></dt><dd>MultipartWriter will implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on multipart
|
||||
uploads.</dd><dt><a class="struct" href="struct.OneShotDeleter.html" title="struct object_store::layers::mock::OneShotDeleter">OneShot<wbr>Deleter</a></dt><dd>OneShotDelete is used to implement <a href="trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>oio::Delete</code></a> based on one shot.</dd><dt><a class="struct" href="struct.OneShotWriter.html" title="struct object_store::layers::mock::OneShotWriter">OneShot<wbr>Writer</a></dt><dd>OneShotWrite is used to implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on one shot.</dd><dt><a class="struct" href="struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a></dt><dd>Args for <code>delete</code> operation.</dd><dt><a class="struct" href="struct.OpList.html" title="struct object_store::layers::mock::OpList">OpList</a></dt><dd>Args for <code>list</code> operation.</dd><dt><a class="struct" href="struct.OpRead.html" title="struct object_store::layers::mock::OpRead">OpRead</a></dt><dd>Args for <code>read</code> operation.</dd><dt><a class="struct" href="struct.OpWrite.html" title="struct object_store::layers::mock::OpWrite">OpWrite</a></dt><dd>Args for <code>write</code> operation.</dd><dt><a class="struct" href="struct.PageContext.html" title="struct object_store::layers::mock::PageContext">Page<wbr>Context</a></dt><dd>PageContext is the context passing between <code>PageList</code>.</dd><dt><a class="struct" href="struct.PageLister.html" title="struct object_store::layers::mock::PageLister">Page<wbr>Lister</a></dt><dd>PageLister implements <a href="trait.List.html" title="trait object_store::layers::mock::List"><code>oio::List</code></a> based on <a href="trait.PageList.html" title="trait object_store::layers::mock::PageList"><code>PageList</code></a>.</dd><dt><a class="struct" href="struct.PooledBuf.html" title="struct object_store::layers::mock::PooledBuf">Pooled<wbr>Buf</a></dt><dd>PooledBuf is a buffer pool that designed for reusing already allocated bufs.</dd><dt><a class="struct" href="struct.PositionWriter.html" title="struct object_store::layers::mock::PositionWriter">Position<wbr>Writer</a></dt><dd>PositionWriter will implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on position write.</dd><dt><a class="struct" href="struct.PrefixLister.html" title="struct object_store::layers::mock::PrefixLister">Prefix<wbr>Lister</a></dt><dd>PrefixLister is used to filter entries by prefix.</dd><dt><a class="struct" href="struct.QueueBuf.html" title="struct object_store::layers::mock::QueueBuf">Queue<wbr>Buf</a></dt><dd>QueueBuf is a queue of <a href="../../struct.Buffer.html" title="struct object_store::Buffer"><code>Buffer</code></a>.</dd><dt><a class="struct" href="struct.RpDelete.html" title="struct object_store::layers::mock::RpDelete">RpDelete</a></dt><dd>Reply for <code>delete</code> operation</dd><dt><a class="struct" href="struct.RpList.html" title="struct object_store::layers::mock::RpList">RpList</a></dt><dd>Reply for <code>list</code> operation.</dd><dt><a class="struct" href="struct.RpRead.html" title="struct object_store::layers::mock::RpRead">RpRead</a></dt><dd>Reply for <code>read</code> operation.</dd><dt><a class="struct" href="struct.RpWrite.html" title="struct object_store::layers::mock::RpWrite">RpWrite</a></dt><dd>Reply for <code>write</code> operation.</dd></dl><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><dl class="item-table"><dt><a class="enum" href="enum.ErrorKind.html" title="enum object_store::layers::mock::ErrorKind">Error<wbr>Kind</a></dt><dd>ErrorKind is all kinds of Error of opendal.</dd><dt><a class="enum" href="enum.MockLayerBuilderError.html" title="enum object_store::layers::mock::MockLayerBuilderError">Mock<wbr>Layer<wbr>Builder<wbr>Error</a></dt><dd>Error type for MockLayerBuilder</dd></dl><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><dl class="item-table"><dt><a class="trait" href="trait.Access.html" title="trait object_store::layers::mock::Access">Access</a></dt><dd>Underlying trait of all backends for implementers.</dd><dt><a class="trait" href="trait.AppendWrite.html" title="trait object_store::layers::mock::AppendWrite">Append<wbr>Write</a></dt><dd>AppendWrite is used to implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on append
|
||||
object. By implementing AppendWrite, services don’t need to
|
||||
care about the details of buffering and uploading parts.</dd><dt><a class="trait" href="trait.BatchDelete.html" title="trait object_store::layers::mock::BatchDelete">Batch<wbr>Delete</a></dt><dd>BatchDelete is used to implement <a href="trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>oio::Delete</code></a> based on batch delete operation.</dd><dt><a class="trait" href="trait.BlockWrite.html" title="trait object_store::layers::mock::BlockWrite">Block<wbr>Write</a></dt><dd>BlockWrite is used to implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on block
|
||||
uploads. By implementing BlockWrite, services don’t need to
|
||||
care about the details of uploading blocks.</dd><dt><a class="trait" href="trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a></dt><dd>The Delete trait defines interfaces for performing deletion operations.</dd><dt><a class="trait" href="trait.DeleteDyn.html" title="trait object_store::layers::mock::DeleteDyn">Delete<wbr>Dyn</a></dt><dd>The dyn version of <a href="trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>Delete</code></a></dd><dt><a class="trait" href="trait.Layer.html" title="trait object_store::layers::mock::Layer">Layer</a></dt><dd>Layer is used to intercept the operations on the underlying storage.</dd><dt><a class="trait" href="trait.LayeredAccess.html" title="trait object_store::layers::mock::LayeredAccess">Layered<wbr>Access</a></dt><dd>LayeredAccess is layered accessor that forward all not implemented
|
||||
method to inner.</dd><dt><a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a></dt><dd>Page trait is used by [<code>raw::Accessor</code>] to implement <code>list</code> operation.</dd><dt><a class="trait" href="trait.MultipartWrite.html" title="trait object_store::layers::mock::MultipartWrite">Multipart<wbr>Write</a></dt><dd>MultipartWrite is used to implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on multipart
|
||||
uploads. By implementing MultipartWrite, services don’t need to
|
||||
care about the details of uploading parts.</dd><dt><a class="trait" href="trait.OneShotDelete.html" title="trait object_store::layers::mock::OneShotDelete">OneShot<wbr>Delete</a></dt><dd>OneShotDelete is used to implement <a href="trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>oio::Delete</code></a> based on one shot operation.</dd><dt><a class="trait" href="trait.OneShotWrite.html" title="trait object_store::layers::mock::OneShotWrite">OneShot<wbr>Write</a></dt><dd>OneShotWrite is used to implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on one shot operation.
|
||||
By implementing OneShotWrite, services don’t need to care about the details.</dd><dt><a class="trait" href="trait.PageList.html" title="trait object_store::layers::mock::PageList">Page<wbr>List</a></dt><dd>PageList is used to implement <a href="trait.List.html" title="trait object_store::layers::mock::List"><code>oio::List</code></a> based on API supporting pagination. By implementing
|
||||
PageList, services don’t need to care about the details of page list.</dd><dt><a class="trait" href="trait.PositionWrite.html" title="trait object_store::layers::mock::PositionWrite">Position<wbr>Write</a></dt><dd>PositionWrite is used to implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on position write.</dd><dt><a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a></dt><dd>Read is the internal trait used by OpenDAL to read data from storage.</dd><dt><a class="trait" href="trait.ReadDyn.html" title="trait object_store::layers::mock::ReadDyn">ReadDyn</a></dt><dd>ReadDyn is the dyn version of <a href="trait.Read.html" title="trait object_store::layers::mock::Read"><code>Read</code></a> make it possible to use as
|
||||
<code>Box<dyn ReadDyn></code>.</dd><dt><a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a></dt><dd>Write is the trait that OpenDAL returns to callers.</dd></dl><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><dl class="item-table"><dt><a class="type" href="type.CopyInterceptor.html" title="type object_store::layers::mock::CopyInterceptor">Copy<wbr>Interceptor</a></dt><dt><a class="type" href="type.Deleter.html" title="type object_store::layers::mock::Deleter">Deleter</a></dt><dd>Deleter is a type erased <a href="trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>Delete</code></a></dd><dt><a class="type" href="type.Lister.html" title="type object_store::layers::mock::Lister">Lister</a></dt><dd>The boxed version of <a href="trait.List.html" title="trait object_store::layers::mock::List"><code>List</code></a></dd><dt><a class="type" href="type.MockDeleterFactory.html" title="type object_store::layers::mock::MockDeleterFactory">Mock<wbr>Deleter<wbr>Factory</a></dt><dt><a class="type" href="type.MockListerFactory.html" title="type object_store::layers::mock::MockListerFactory">Mock<wbr>Lister<wbr>Factory</a></dt><dt><a class="type" href="type.MockReaderFactory.html" title="type object_store::layers::mock::MockReaderFactory">Mock<wbr>Reader<wbr>Factory</a></dt><dt><a class="type" href="type.MockWriterFactory.html" title="type object_store::layers::mock::MockWriterFactory">Mock<wbr>Writer<wbr>Factory</a></dt><dt><a class="type" href="type.Reader.html" title="type object_store::layers::mock::Reader">Reader</a></dt><dd>Reader is a type erased <a href="trait.Read.html" title="trait object_store::layers::mock::Read"><code>Read</code></a>.</dd><dt><a class="type" href="type.Result.html" title="type object_store::layers::mock::Result">Result</a></dt><dd>Result that is a wrapper of <code>Result<T, opendal::Error></code></dd><dt><a class="type" href="type.Writer.html" title="type object_store::layers::mock::Writer">Writer</a></dt><dd>Writer is a type erased <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>Write</code></a></dd></dl></section></div></main></body></html>
|
||||
17
object_store/layers/mock/oio/index.html
Normal file
17
object_store/layers/mock/oio/index.html
Normal file
@@ -0,0 +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="`oio` provides OpenDAL’s raw traits and types that opendal returns as output."><title>object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module oio</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module oio</a></h2><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#traits" title="Traits">Traits</a></li><li><a href="#types" title="Type Aliases">Type Aliases</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a></div><h1>Module <span>oio</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p><code>oio</code> provides OpenDAL’s raw traits and types that opendal returns as
|
||||
output.</p>
|
||||
<p>Those types should only be used internally and we don’t want users to
|
||||
depend on them.</p>
|
||||
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.AppendWriter.html" title="struct object_store::layers::mock::oio::AppendWriter">Append<wbr>Writer</a></dt><dd>AppendWriter will implements <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on append object.</dd><dt><a class="struct" href="struct.BatchDeleteResult.html" title="struct object_store::layers::mock::oio::BatchDeleteResult">Batch<wbr>Delete<wbr>Result</a></dt><dd>BatchDeleteResult is the result of batch delete operation.</dd><dt><a class="struct" href="struct.BatchDeleter.html" title="struct object_store::layers::mock::oio::BatchDeleter">Batch<wbr>Deleter</a></dt><dd>BatchDeleter is used to implement <a href="../trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>oio::Delete</code></a> based on batch delete.</dd><dt><a class="struct" href="struct.BlockWriter.html" title="struct object_store::layers::mock::oio::BlockWriter">Block<wbr>Writer</a></dt><dd>BlockWriter will implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on block
|
||||
uploads.</dd><dt><a class="struct" href="struct.Entry.html" title="struct object_store::layers::mock::oio::Entry">Entry</a></dt><dd>Entry is returned by <code>Page</code> or <code>BlockingPage</code> during list operations.</dd><dt><a class="struct" href="struct.FlatLister.html" title="struct object_store::layers::mock::oio::FlatLister">Flat<wbr>Lister</a></dt><dd>FlatLister will walk dir in bottom up way:</dd><dt><a class="struct" href="struct.FlexBuf.html" title="struct object_store::layers::mock::oio::FlexBuf">FlexBuf</a></dt><dd>FlexBuf is a buffer that support frozen bytes and reuse existing allocated memory.</dd><dt><a class="struct" href="struct.HierarchyLister.html" title="struct object_store::layers::mock::oio::HierarchyLister">Hierarchy<wbr>Lister</a></dt><dd>ToHierarchyLister will convert a flat list to hierarchy by filter
|
||||
not needed entries.</dd><dt><a class="struct" href="struct.MultipartPart.html" title="struct object_store::layers::mock::oio::MultipartPart">Multipart<wbr>Part</a></dt><dd>The result of <a href="../trait.MultipartWrite.html#tymethod.write_part" title="method object_store::layers::mock::MultipartWrite::write_part"><code>MultipartWrite::write_part</code></a>.</dd><dt><a class="struct" href="struct.MultipartWriter.html" title="struct object_store::layers::mock::oio::MultipartWriter">Multipart<wbr>Writer</a></dt><dd>MultipartWriter will implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on multipart
|
||||
uploads.</dd><dt><a class="struct" href="struct.OneShotDeleter.html" title="struct object_store::layers::mock::oio::OneShotDeleter">OneShot<wbr>Deleter</a></dt><dd>OneShotDelete is used to implement <a href="../trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>oio::Delete</code></a> based on one shot.</dd><dt><a class="struct" href="struct.OneShotWriter.html" title="struct object_store::layers::mock::oio::OneShotWriter">OneShot<wbr>Writer</a></dt><dd>OneShotWrite is used to implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on one shot.</dd><dt><a class="struct" href="struct.PageContext.html" title="struct object_store::layers::mock::oio::PageContext">Page<wbr>Context</a></dt><dd>PageContext is the context passing between <code>PageList</code>.</dd><dt><a class="struct" href="struct.PageLister.html" title="struct object_store::layers::mock::oio::PageLister">Page<wbr>Lister</a></dt><dd>PageLister implements <a href="../trait.List.html" title="trait object_store::layers::mock::List"><code>oio::List</code></a> based on <a href="../trait.PageList.html" title="trait object_store::layers::mock::PageList"><code>PageList</code></a>.</dd><dt><a class="struct" href="struct.PooledBuf.html" title="struct object_store::layers::mock::oio::PooledBuf">Pooled<wbr>Buf</a></dt><dd>PooledBuf is a buffer pool that designed for reusing already allocated bufs.</dd><dt><a class="struct" href="struct.PositionWriter.html" title="struct object_store::layers::mock::oio::PositionWriter">Position<wbr>Writer</a></dt><dd>PositionWriter will implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on position write.</dd><dt><a class="struct" href="struct.PrefixLister.html" title="struct object_store::layers::mock::oio::PrefixLister">Prefix<wbr>Lister</a></dt><dd>PrefixLister is used to filter entries by prefix.</dd><dt><a class="struct" href="struct.QueueBuf.html" title="struct object_store::layers::mock::oio::QueueBuf">Queue<wbr>Buf</a></dt><dd>QueueBuf is a queue of <a href="../../../struct.Buffer.html" title="struct object_store::Buffer"><code>Buffer</code></a>.</dd></dl><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><dl class="item-table"><dt><a class="trait" href="trait.AppendWrite.html" title="trait object_store::layers::mock::oio::AppendWrite">Append<wbr>Write</a></dt><dd>AppendWrite is used to implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on append
|
||||
object. By implementing AppendWrite, services don’t need to
|
||||
care about the details of buffering and uploading parts.</dd><dt><a class="trait" href="trait.BatchDelete.html" title="trait object_store::layers::mock::oio::BatchDelete">Batch<wbr>Delete</a></dt><dd>BatchDelete is used to implement <a href="../trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>oio::Delete</code></a> based on batch delete operation.</dd><dt><a class="trait" href="trait.BlockWrite.html" title="trait object_store::layers::mock::oio::BlockWrite">Block<wbr>Write</a></dt><dd>BlockWrite is used to implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on block
|
||||
uploads. By implementing BlockWrite, services don’t need to
|
||||
care about the details of uploading blocks.</dd><dt><a class="trait" href="trait.Delete.html" title="trait object_store::layers::mock::oio::Delete">Delete</a></dt><dd>The Delete trait defines interfaces for performing deletion operations.</dd><dt><a class="trait" href="trait.DeleteDyn.html" title="trait object_store::layers::mock::oio::DeleteDyn">Delete<wbr>Dyn</a></dt><dd>The dyn version of <a href="../trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>Delete</code></a></dd><dt><a class="trait" href="trait.List.html" title="trait object_store::layers::mock::oio::List">List</a></dt><dd>Page trait is used by [<code>raw::Accessor</code>] to implement <code>list</code> operation.</dd><dt><a class="trait" href="trait.MultipartWrite.html" title="trait object_store::layers::mock::oio::MultipartWrite">Multipart<wbr>Write</a></dt><dd>MultipartWrite is used to implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on multipart
|
||||
uploads. By implementing MultipartWrite, services don’t need to
|
||||
care about the details of uploading parts.</dd><dt><a class="trait" href="trait.OneShotDelete.html" title="trait object_store::layers::mock::oio::OneShotDelete">OneShot<wbr>Delete</a></dt><dd>OneShotDelete is used to implement <a href="../trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>oio::Delete</code></a> based on one shot operation.</dd><dt><a class="trait" href="trait.OneShotWrite.html" title="trait object_store::layers::mock::oio::OneShotWrite">OneShot<wbr>Write</a></dt><dd>OneShotWrite is used to implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on one shot operation.
|
||||
By implementing OneShotWrite, services don’t need to care about the details.</dd><dt><a class="trait" href="trait.PageList.html" title="trait object_store::layers::mock::oio::PageList">Page<wbr>List</a></dt><dd>PageList is used to implement <a href="../trait.List.html" title="trait object_store::layers::mock::List"><code>oio::List</code></a> based on API supporting pagination. By implementing
|
||||
PageList, services don’t need to care about the details of page list.</dd><dt><a class="trait" href="trait.PositionWrite.html" title="trait object_store::layers::mock::oio::PositionWrite">Position<wbr>Write</a></dt><dd>PositionWrite is used to implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on position write.</dd><dt><a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::oio::Read">Read</a></dt><dd>Read is the internal trait used by OpenDAL to read data from storage.</dd><dt><a class="trait" href="trait.ReadDyn.html" title="trait object_store::layers::mock::oio::ReadDyn">ReadDyn</a></dt><dd>ReadDyn is the dyn version of <a href="../trait.Read.html" title="trait object_store::layers::mock::Read"><code>Read</code></a> make it possible to use as
|
||||
<code>Box<dyn ReadDyn></code>.</dd><dt><a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::oio::Write">Write</a></dt><dd>Write is the trait that OpenDAL returns to callers.</dd></dl><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><dl class="item-table"><dt><a class="type" href="type.Deleter.html" title="type object_store::layers::mock::oio::Deleter">Deleter</a></dt><dd>Deleter is a type erased <a href="../trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>Delete</code></a></dd><dt><a class="type" href="type.Lister.html" title="type object_store::layers::mock::oio::Lister">Lister</a></dt><dd>The boxed version of <a href="../trait.List.html" title="trait object_store::layers::mock::List"><code>List</code></a></dd><dt><a class="type" href="type.Reader.html" title="type object_store::layers::mock::oio::Reader">Reader</a></dt><dd>Reader is a type erased <a href="../trait.Read.html" title="trait object_store::layers::mock::Read"><code>Read</code></a>.</dd><dt><a class="type" href="type.Writer.html" title="type object_store::layers::mock::oio::Writer">Writer</a></dt><dd>Writer is a type erased <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>Write</code></a></dd></dl></section></div></main></body></html>
|
||||
1
object_store/layers/mock/oio/sidebar-items.js
Normal file
1
object_store/layers/mock/oio/sidebar-items.js
Normal file
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"struct":["AppendWriter","BatchDeleteResult","BatchDeleter","BlockWriter","Entry","FlatLister","FlexBuf","HierarchyLister","MultipartPart","MultipartWriter","OneShotDeleter","OneShotWriter","PageContext","PageLister","PooledBuf","PositionWriter","PrefixLister","QueueBuf"],"trait":["AppendWrite","BatchDelete","BlockWrite","Delete","DeleteDyn","List","MultipartWrite","OneShotDelete","OneShotWrite","PageList","PositionWrite","Read","ReadDyn","Write"],"type":["Deleter","Lister","Reader","Writer"]};
|
||||
197
object_store/layers/mock/oio/struct.AppendWriter.html
Normal file
197
object_store/layers/mock/oio/struct.AppendWriter.html
Normal file
File diff suppressed because one or more lines are too long
185
object_store/layers/mock/oio/struct.BatchDeleteResult.html
Normal file
185
object_store/layers/mock/oio/struct.BatchDeleteResult.html
Normal file
File diff suppressed because one or more lines are too long
193
object_store/layers/mock/oio/struct.BatchDeleter.html
Normal file
193
object_store/layers/mock/oio/struct.BatchDeleter.html
Normal file
File diff suppressed because one or more lines are too long
196
object_store/layers/mock/oio/struct.BlockWriter.html
Normal file
196
object_store/layers/mock/oio/struct.BlockWriter.html
Normal file
File diff suppressed because one or more lines are too long
209
object_store/layers/mock/oio/struct.Entry.html
Normal file
209
object_store/layers/mock/oio/struct.Entry.html
Normal file
File diff suppressed because one or more lines are too long
225
object_store/layers/mock/oio/struct.FlatLister.html
Normal file
225
object_store/layers/mock/oio/struct.FlatLister.html
Normal file
File diff suppressed because one or more lines are too long
199
object_store/layers/mock/oio/struct.FlexBuf.html
Normal file
199
object_store/layers/mock/oio/struct.FlexBuf.html
Normal file
File diff suppressed because one or more lines are too long
199
object_store/layers/mock/oio/struct.HierarchyLister.html
Normal file
199
object_store/layers/mock/oio/struct.HierarchyLister.html
Normal file
File diff suppressed because one or more lines are too long
200
object_store/layers/mock/oio/struct.MultipartPart.html
Normal file
200
object_store/layers/mock/oio/struct.MultipartPart.html
Normal file
File diff suppressed because one or more lines are too long
199
object_store/layers/mock/oio/struct.MultipartWriter.html
Normal file
199
object_store/layers/mock/oio/struct.MultipartWriter.html
Normal file
File diff suppressed because one or more lines are too long
194
object_store/layers/mock/oio/struct.OneShotDeleter.html
Normal file
194
object_store/layers/mock/oio/struct.OneShotDeleter.html
Normal file
File diff suppressed because one or more lines are too long
189
object_store/layers/mock/oio/struct.OneShotWriter.html
Normal file
189
object_store/layers/mock/oio/struct.OneShotWriter.html
Normal file
File diff suppressed because one or more lines are too long
198
object_store/layers/mock/oio/struct.PageContext.html
Normal file
198
object_store/layers/mock/oio/struct.PageContext.html
Normal file
File diff suppressed because one or more lines are too long
190
object_store/layers/mock/oio/struct.PageLister.html
Normal file
190
object_store/layers/mock/oio/struct.PageLister.html
Normal file
File diff suppressed because one or more lines are too long
193
object_store/layers/mock/oio/struct.PooledBuf.html
Normal file
193
object_store/layers/mock/oio/struct.PooledBuf.html
Normal file
File diff suppressed because one or more lines are too long
194
object_store/layers/mock/oio/struct.PositionWriter.html
Normal file
194
object_store/layers/mock/oio/struct.PositionWriter.html
Normal file
File diff suppressed because one or more lines are too long
197
object_store/layers/mock/oio/struct.PrefixLister.html
Normal file
197
object_store/layers/mock/oio/struct.PrefixLister.html
Normal file
File diff suppressed because one or more lines are too long
209
object_store/layers/mock/oio/struct.QueueBuf.html
Normal file
209
object_store/layers/mock/oio/struct.QueueBuf.html
Normal file
File diff suppressed because one or more lines are too long
37
object_store/layers/mock/oio/trait.AppendWrite.html
Normal file
37
object_store/layers/mock/oio/trait.AppendWrite.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="AppendWrite is used to implement `oio::Write` based on append object. By implementing AppendWrite, services don’t need to care about the details of buffering and uploading parts."><title>AppendWrite in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">AppendWrite</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Append<wbr>Write</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#requirements" title="Requirements">Requirements</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.append" title="append">append</a></li><li><a href="#tymethod.offset" title="offset">offset</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">Append<wbr>Write</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait AppendWrite:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.offset" class="fn">offset</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.append" class="fn">append</a>(
|
||||
&self,
|
||||
offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>AppendWrite is used to implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on append
|
||||
object. By implementing AppendWrite, services don’t need to
|
||||
care about the details of buffering and uploading parts.</p>
|
||||
<p>The layout after adopting <a href="../trait.AppendWrite.html" title="trait object_store::layers::mock::AppendWrite"><code>AppendWrite</code></a>:</p>
|
||||
<ul>
|
||||
<li>Services impl <code>AppendWrite</code></li>
|
||||
<li><code>AppendWriter</code> impl <code>Write</code></li>
|
||||
<li>Expose <code>AppendWriter</code> as <code>Accessor::Writer</code></li>
|
||||
</ul>
|
||||
<h3 id="requirements"><a class="doc-anchor" href="#requirements">§</a>Requirements</h3>
|
||||
<p>Services that implement <code>AppendWrite</code> must fulfill the following requirements:</p>
|
||||
<ul>
|
||||
<li>Must be a http service that could accept <code>AsyncBody</code>.</li>
|
||||
<li>Provide a way to get the current offset of the append object.</li>
|
||||
</ul>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.offset" class="method"><h4 class="code-header">fn <a href="#tymethod.offset" class="fn">offset</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Get the current offset of the append object.</p>
|
||||
<p>Returns <code>0</code> if the object is not exist.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.append" class="method"><h4 class="code-header">fn <a href="#tymethod.append" class="fn">append</a>(
|
||||
&self,
|
||||
offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Append the data to the end of this object.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../../trait.impl/opendal/raw/oio/write/append_write/trait.AppendWrite.js" async></script></section></div></main></body></html>
|
||||
33
object_store/layers/mock/oio/trait.BatchDelete.html
Normal file
33
object_store/layers/mock/oio/trait.BatchDelete.html
Normal file
@@ -0,0 +1,33 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BatchDelete is used to implement `oio::Delete` based on batch delete operation."><title>BatchDelete in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">BatchDelete</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Batch<wbr>Delete</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.delete_batch" title="delete_batch">delete_batch</a></li><li><a href="#tymethod.delete_once" title="delete_once">delete_once</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">Batch<wbr>Delete</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait BatchDelete:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.delete_once" class="fn">delete_once</a>(
|
||||
&self,
|
||||
path: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||||
args: <a class="struct" href="../struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.delete_batch" class="fn">delete_batch</a>(
|
||||
&self,
|
||||
batch: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="../struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>)>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.BatchDeleteResult.html" title="struct object_store::layers::mock::BatchDeleteResult">BatchDeleteResult</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BatchDelete is used to implement <a href="../trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>oio::Delete</code></a> based on batch delete operation.</p>
|
||||
<p>OneShotDeleter will perform delete operation while calling <code>flush</code>.</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.delete_once" class="method"><h4 class="code-header">fn <a href="#tymethod.delete_once" class="fn">delete_once</a>(
|
||||
&self,
|
||||
path: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||||
args: <a class="struct" href="../struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>delete_once delete one path at once.</p>
|
||||
<p>Implementations should make sure that the data is deleted correctly at once.</p>
|
||||
<p>BatchDeleter may call this method while there are only one path to delete.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.delete_batch" class="method"><h4 class="code-header">fn <a href="#tymethod.delete_batch" class="fn">delete_batch</a>(
|
||||
&self,
|
||||
batch: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="../struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>)>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.BatchDeleteResult.html" title="struct object_store::layers::mock::BatchDeleteResult">BatchDeleteResult</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>delete_batch delete multiple paths at once.</p>
|
||||
<ul>
|
||||
<li>Implementations should make sure that the length of <code>batch</code> equals to the return result’s length.</li>
|
||||
<li>Implementations should return error no path is deleted.</li>
|
||||
</ul>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../../trait.impl/opendal/raw/oio/delete/batch_delete/trait.BatchDelete.js" async></script></section></div></main></body></html>
|
||||
78
object_store/layers/mock/oio/trait.BlockWrite.html
Normal file
78
object_store/layers/mock/oio/trait.BlockWrite.html
Normal file
@@ -0,0 +1,78 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockWrite is used to implement `oio::Write` based on block uploads. By implementing BlockWrite, services don’t need to care about the details of uploading blocks."><title>BlockWrite in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">BlockWrite</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Block<wbr>Write</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#architecture" title="Architecture">Architecture</a></li><li><a href="#notes" title="Notes">Notes</a></li><li><a href="#requirements" title="Requirements">Requirements</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.abort_block" title="abort_block">abort_block</a></li><li><a href="#tymethod.complete_block" title="complete_block">complete_block</a></li><li><a href="#tymethod.write_block" title="write_block">write_block</a></li><li><a href="#tymethod.write_once" title="write_once">write_once</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">Block<wbr>Write</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait BlockWrite:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.write_once" class="fn">write_once</a>(
|
||||
&self,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.write_block" class="fn">write_block</a>(
|
||||
&self,
|
||||
block_id: <a class="struct" href="https://docs.rs/uuid/1.21.0/uuid/struct.Uuid.html" title="struct uuid::Uuid">Uuid</a>,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.complete_block" class="fn">complete_block</a>(
|
||||
&self,
|
||||
block_ids: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://docs.rs/uuid/1.21.0/uuid/struct.Uuid.html" title="struct uuid::Uuid">Uuid</a>>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.abort_block" class="fn">abort_block</a>(
|
||||
&self,
|
||||
block_ids: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://docs.rs/uuid/1.21.0/uuid/struct.Uuid.html" title="struct uuid::Uuid">Uuid</a>>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BlockWrite is used to implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on block
|
||||
uploads. By implementing BlockWrite, services don’t need to
|
||||
care about the details of uploading blocks.</p>
|
||||
<h2 id="architecture"><a class="doc-anchor" href="#architecture">§</a>Architecture</h2>
|
||||
<p>The architecture after adopting <a href="../trait.BlockWrite.html" title="trait object_store::layers::mock::BlockWrite"><code>BlockWrite</code></a>:</p>
|
||||
<ul>
|
||||
<li>Services impl <code>BlockWrite</code></li>
|
||||
<li><code>BlockWriter</code> impl <code>Write</code></li>
|
||||
<li>Expose <code>BlockWriter</code> as <code>Accessor::Writer</code></li>
|
||||
</ul>
|
||||
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2>
|
||||
<p><code>BlockWrite</code> has an oneshot optimization when <code>write</code> has been called only once:</p>
|
||||
<div class="example-wrap"><pre class="language-no_build"><code>w.write(bs).await?;
|
||||
w.close().await?;</code></pre></div>
|
||||
<p>We will use <code>write_once</code> instead of starting a new block upload.</p>
|
||||
<h2 id="requirements"><a class="doc-anchor" href="#requirements">§</a>Requirements</h2>
|
||||
<p>Services that implement <code>BlockWrite</code> must fulfill the following requirements:</p>
|
||||
<ul>
|
||||
<li>Must be a http service that could accept <code>AsyncBody</code>.</li>
|
||||
<li>Don’t need initialization before writing.</li>
|
||||
<li>Block ID is generated by caller <code>BlockWrite</code> instead of services.</li>
|
||||
<li>Complete block by an ordered block id list.</li>
|
||||
</ul>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.write_once" class="method"><h4 class="code-header">fn <a href="#tymethod.write_once" class="fn">write_once</a>(
|
||||
&self,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>write_once is used to write the data to underlying storage at once.</p>
|
||||
<p>BlockWriter will call this API when:</p>
|
||||
<ul>
|
||||
<li>All the data has been written to the buffer and we can perform the upload at once.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.write_block" class="method"><h4 class="code-header">fn <a href="#tymethod.write_block" class="fn">write_block</a>(
|
||||
&self,
|
||||
block_id: <a class="struct" href="https://docs.rs/uuid/1.21.0/uuid/struct.Uuid.html" title="struct uuid::Uuid">Uuid</a>,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>write_block will write a block of the data.</p>
|
||||
<p>BlockWriter will call this API and stores the result in
|
||||
order.</p>
|
||||
<ul>
|
||||
<li>block_id is the id of the block.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.complete_block" class="method"><h4 class="code-header">fn <a href="#tymethod.complete_block" class="fn">complete_block</a>(
|
||||
&self,
|
||||
block_ids: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://docs.rs/uuid/1.21.0/uuid/struct.Uuid.html" title="struct uuid::Uuid">Uuid</a>>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>complete_block will complete the block upload to build the final
|
||||
file.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.abort_block" class="method"><h4 class="code-header">fn <a href="#tymethod.abort_block" class="fn">abort_block</a>(
|
||||
&self,
|
||||
block_ids: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://docs.rs/uuid/1.21.0/uuid/struct.Uuid.html" title="struct uuid::Uuid">Uuid</a>>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>abort_block will cancel the block upload and purge all data.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../../trait.impl/opendal/raw/oio/write/block_write/trait.BlockWrite.js" async></script></section></div></main></body></html>
|
||||
40
object_store/layers/mock/oio/trait.Delete.html
Normal file
40
object_store/layers/mock/oio/trait.Delete.html
Normal file
@@ -0,0 +1,40 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The Delete trait defines interfaces for performing deletion operations."><title>Delete in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Delete</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Delete</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.delete" title="delete">delete</a></li><li><a href="#tymethod.flush" title="flush">flush</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-Delete-for-()" title="()">()</a></li><li><a href="#impl-Delete-for-Box%3CT%3E" title="Box<T>">Box<T></a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">Delete</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait Delete:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.delete" class="fn">delete</a>(&mut self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="../struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.flush" class="fn">flush</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The Delete trait defines interfaces for performing deletion operations.</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.delete" class="method"><h4 class="code-header">fn <a href="#tymethod.delete" class="fn">delete</a>(&mut self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="../struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></summary><div class="docblock"><p>Requests deletion of a resource at the specified path with optional arguments</p>
|
||||
<h5 id="parameters"><a class="doc-anchor" href="#parameters">§</a>Parameters</h5>
|
||||
<ul>
|
||||
<li><code>path</code>: The path of the resource to delete</li>
|
||||
<li><code>args</code>: Additional arguments for the delete operation</li>
|
||||
</ul>
|
||||
<h5 id="returns"><a class="doc-anchor" href="#returns">§</a>Returns</h5>
|
||||
<ul>
|
||||
<li><code>Ok(())</code>: The deletion request has been successfully queued (does not guarantee actual deletion)</li>
|
||||
<li><code>Err(err)</code>: An error occurred and the deletion request was not queued</li>
|
||||
</ul>
|
||||
<h5 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h5>
|
||||
<p>This method just queue the delete request. The actual deletion will be
|
||||
performed when <code>flush</code> is called.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.flush" class="method"><h4 class="code-header">fn <a href="#tymethod.flush" class="fn">flush</a>(&mut self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Flushes the deletion queue to ensure queued deletions are executed</p>
|
||||
<h5 id="returns-1"><a class="doc-anchor" href="#returns-1">§</a>Returns</h5>
|
||||
<ul>
|
||||
<li><code>Ok(0)</code>: All queued deletions have been processed or the queue is empty.</li>
|
||||
<li><code>Ok(count)</code>: The number of resources successfully deleted. Implementations should
|
||||
return an error if the queue is non-empty but no resources were deleted</li>
|
||||
<li><code>Err(err)</code>: An error occurred while performing the deletions</li>
|
||||
</ul>
|
||||
<h5 id="notes-1"><a class="doc-anchor" href="#notes-1">§</a>Notes</h5>
|
||||
<ul>
|
||||
<li>This method is asynchronous and will wait for queued deletions to complete</li>
|
||||
</ul>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Delete-for-()" class="impl"><a href="#impl-Delete-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h3></section></summary><div class="impl-items"><section id="method.delete" class="method trait-impl"><a href="#method.delete" class="anchor">§</a><h4 class="code-header">fn <a class="fn">delete</a>(&mut self, _: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, _: <a class="struct" href="../struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.flush" class="method trait-impl"><a href="#method.flush" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">flush</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Delete-for-Box%3CT%3E" class="impl"><a href="#impl-Delete-for-Box%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><T><div class="where">where
|
||||
T: <a class="trait" href="../trait.DeleteDyn.html" title="trait object_store::layers::mock::DeleteDyn">DeleteDyn</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><section id="method.delete-1" class="method trait-impl"><a href="#method.delete-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">delete</a>(&mut self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="../struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.flush-1" class="method trait-impl"><a href="#method.flush-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">flush</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-Delete-for-MockDeleter" class="impl"><a class="src rightside" href="../../../../src/object_store/layers/mock.rs.html#133-141">Source</a><a href="#impl-Delete-for-MockDeleter" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a> for <a class="struct" href="../struct.MockDeleter.html" title="struct object_store::layers::mock::MockDeleter">MockDeleter</a></h3></section><section id="impl-Delete-for-BatchDeleter%3CD%3E" class="impl"><a href="#impl-Delete-for-BatchDeleter%3CD%3E" class="anchor">§</a><h3 class="code-header">impl<D> <a class="trait" href="../trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a> for <a class="struct" href="../struct.BatchDeleter.html" title="struct object_store::layers::mock::BatchDeleter">BatchDeleter</a><D><div class="where">where
|
||||
D: <a class="trait" href="../trait.BatchDelete.html" title="trait object_store::layers::mock::BatchDelete">BatchDelete</a>,</div></h3></section><section id="impl-Delete-for-OneShotDeleter%3CD%3E" class="impl"><a href="#impl-Delete-for-OneShotDeleter%3CD%3E" class="anchor">§</a><h3 class="code-header">impl<D> <a class="trait" href="../trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a> for <a class="struct" href="../struct.OneShotDeleter.html" title="struct object_store::layers::mock::OneShotDeleter">OneShotDeleter</a><D><div class="where">where
|
||||
D: <a class="trait" href="../trait.OneShotDelete.html" title="trait object_store::layers::mock::OneShotDelete">OneShotDelete</a>,</div></h3></section></div><script src="../../../../trait.impl/opendal/raw/oio/delete/api/trait.Delete.js" data-ignore-extern-crates="std,alloc,opendal" async></script></section></div></main></body></html>
|
||||
16
object_store/layers/mock/oio/trait.DeleteDyn.html
Normal file
16
object_store/layers/mock/oio/trait.DeleteDyn.html
Normal file
@@ -0,0 +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="The dyn version of `Delete`"><title>DeleteDyn in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">DeleteDyn</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Delete<wbr>Dyn</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.delete_dyn" title="delete_dyn">delete_dyn</a></li><li><a href="#tymethod.flush_dyn" title="flush_dyn">flush_dyn</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">Delete<wbr>Dyn</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait DeleteDyn:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.delete_dyn" class="fn">delete_dyn</a>(&mut self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="../struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.flush_dyn" class="fn">flush_dyn</a>(
|
||||
&mut self,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + '_>>;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The dyn version of <a href="../trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>Delete</code></a></p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.delete_dyn" class="method"><h4 class="code-header">fn <a href="#tymethod.delete_dyn" class="fn">delete_dyn</a>(&mut self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="../struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></summary><div class="docblock"><p>The dyn version of <a href="../trait.Delete.html#tymethod.delete" title="method object_store::layers::mock::Delete::delete"><code>Delete::delete</code></a></p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.flush_dyn" class="method"><h4 class="code-header">fn <a href="#tymethod.flush_dyn" class="fn">flush_dyn</a>(
|
||||
&mut self,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + '_>></h4></section></summary><div class="docblock"><p>The dyn version of <a href="../trait.Delete.html#tymethod.flush" title="method object_store::layers::mock::Delete::flush"><code>Delete::flush</code></a></p>
|
||||
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-DeleteDyn-for-T" class="impl"><a href="#impl-DeleteDyn-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.DeleteDyn.html" title="trait object_store::layers::mock::DeleteDyn">DeleteDyn</a> for T<div class="where">where
|
||||
T: <a class="trait" href="../trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></div><script src="../../../../trait.impl/opendal/raw/oio/delete/api/trait.DeleteDyn.js" async></script></section></div></main></body></html>
|
||||
31
object_store/layers/mock/oio/trait.List.html
Normal file
31
object_store/layers/mock/oio/trait.List.html
Normal file
@@ -0,0 +1,31 @@
|
||||
<!DOCTYPE html><html lang="en"><head><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 `raw::Accessor` to implement `list` operation."><title>List in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">List</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">List</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.next" title="next">next</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-List-for-()" title="()">()</a></li><li><a href="#impl-List-for-Box%3CT%3E" title="Box<T>">Box<T></a></li><li><a href="#impl-List-for-Option%3CP%3E" title="Option<P>">Option<P></a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">List</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait List:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
|
||||
// Required method
|
||||
fn <a href="#tymethod.next" class="fn">next</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../struct.Entry.html" title="struct object_store::layers::mock::Entry">Entry</a>>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Page trait is used by [<code>raw::Accessor</code>] to implement <code>list</code> operation.</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.next" class="method"><h4 class="code-header">fn <a href="#tymethod.next" class="fn">next</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../struct.Entry.html" title="struct object_store::layers::mock::Entry">Entry</a>>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Fetch a new page of <a href="../struct.Entry.html" title="struct object_store::layers::mock::Entry"><code>Entry</code></a></p>
|
||||
<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="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-List-for-()" class="impl"><a href="#impl-List-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h3></section></summary><div class="impl-items"><section id="method.next" class="method trait-impl"><a href="#method.next" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">next</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../struct.Entry.html" title="struct object_store::layers::mock::Entry">Entry</a>>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-List-for-Option%3CP%3E" class="impl"><a href="#impl-List-for-Option%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P> <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><P><div class="where">where
|
||||
P: <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section></summary><div class="impl-items"><section id="method.next-1" class="method trait-impl"><a href="#method.next-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">next</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../struct.Entry.html" title="struct object_store::layers::mock::Entry">Entry</a>>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-List-for-Box%3CT%3E" class="impl"><a href="#impl-List-for-Box%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><T><div class="where">where
|
||||
T: ListDyn + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><section id="method.next-2" class="method trait-impl"><a href="#method.next-2" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">next</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../struct.Entry.html" title="struct object_store::layers::mock::Entry">Entry</a>>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-List-for-MockLister" class="impl"><a class="src rightside" href="../../../../src/object_store/layers/mock.rs.html#123-127">Source</a><a href="#impl-List-for-MockLister" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="struct" href="../struct.MockLister.html" title="struct object_store::layers::mock::MockLister">MockLister</a></h3></section><section id="impl-List-for-FlatLister%3CA,+L%3E" class="impl"><a href="#impl-List-for-FlatLister%3CA,+L%3E" class="anchor">§</a><h3 class="code-header">impl<A, L> <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="struct" href="../struct.FlatLister.html" title="struct object_store::layers::mock::FlatLister">FlatLister</a><A, L><div class="where">where
|
||||
A: <a class="trait" href="../../../trait.Access.html" title="trait object_store::Access">Access</a><Lister = L>,
|
||||
L: <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section><section id="impl-List-for-PageLister%3CL%3E" class="impl"><a href="#impl-List-for-PageLister%3CL%3E" class="anchor">§</a><h3 class="code-header">impl<L> <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="struct" href="../struct.PageLister.html" title="struct object_store::layers::mock::PageLister">PageLister</a><L><div class="where">where
|
||||
L: <a class="trait" href="../trait.PageList.html" title="trait object_store::layers::mock::PageList">PageList</a>,</div></h3></section><section id="impl-List-for-PrefixLister%3CL%3E" class="impl"><a href="#impl-List-for-PrefixLister%3CL%3E" class="anchor">§</a><h3 class="code-header">impl<L> <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="struct" href="../struct.PrefixLister.html" title="struct object_store::layers::mock::PrefixLister">PrefixLister</a><L><div class="where">where
|
||||
L: <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section><section id="impl-List-for-TwoWays%3CONE,+TWO%3E" class="impl"><a href="#impl-List-for-TwoWays%3CONE,+TWO%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO> <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a> for TwoWays<ONE, TWO><div class="where">where
|
||||
ONE: <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a>,
|
||||
TWO: <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section><section id="impl-List-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="impl"><a href="#impl-List-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO, THREE> <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a> for ThreeWays<ONE, TWO, THREE><div class="where">where
|
||||
ONE: <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a>,
|
||||
TWO: <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a>,
|
||||
THREE: <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section><section id="impl-List-for-FourWays%3CONE,+TWO,+THREE,+FOUR%3E" class="impl"><a href="#impl-List-for-FourWays%3CONE,+TWO,+THREE,+FOUR%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO, THREE, FOUR> <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a> for FourWays<ONE, TWO, THREE, FOUR><div class="where">where
|
||||
ONE: <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a>,
|
||||
TWO: <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a>,
|
||||
THREE: <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a>,
|
||||
FOUR: <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section><section id="impl-List-for-HierarchyLister%3CP%3E" class="impl"><a href="#impl-List-for-HierarchyLister%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P> <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="struct" href="../struct.HierarchyLister.html" title="struct object_store::layers::mock::HierarchyLister">HierarchyLister</a><P><div class="where">where
|
||||
P: <a class="trait" href="../trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section></div><script src="../../../../trait.impl/opendal/raw/oio/list/api/trait.List.js" data-ignore-extern-crates="opendal,std,core,alloc" async></script></section></div></main></body></html>
|
||||
95
object_store/layers/mock/oio/trait.MultipartWrite.html
Normal file
95
object_store/layers/mock/oio/trait.MultipartWrite.html
Normal file
@@ -0,0 +1,95 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="MultipartWrite is used to implement `oio::Write` based on multipart uploads. By implementing MultipartWrite, services don’t need to care about the details of uploading parts."><title>MultipartWrite in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">MultipartWrite</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Multipart<wbr>Write</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#architecture" title="Architecture">Architecture</a></li><li><a href="#notes" title="Notes">Notes</a></li><li><a href="#requirements" title="Requirements">Requirements</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.abort_part" title="abort_part">abort_part</a></li><li><a href="#tymethod.complete_part" title="complete_part">complete_part</a></li><li><a href="#tymethod.initiate_part" title="initiate_part">initiate_part</a></li><li><a href="#tymethod.write_once" title="write_once">write_once</a></li><li><a href="#tymethod.write_part" title="write_part">write_part</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">Multipart<wbr>Write</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait MultipartWrite:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.write_once" class="fn">write_once</a>(
|
||||
&self,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.initiate_part" class="fn">initiate_part</a>(
|
||||
&self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.write_part" class="fn">write_part</a>(
|
||||
&self,
|
||||
upload_id: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
part_number: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.MultipartPart.html" title="struct object_store::layers::mock::MultipartPart">MultipartPart</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.complete_part" class="fn">complete_part</a>(
|
||||
&self,
|
||||
upload_id: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
parts: &[<a class="struct" href="../struct.MultipartPart.html" title="struct object_store::layers::mock::MultipartPart">MultipartPart</a>],
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.abort_part" class="fn">abort_part</a>(
|
||||
&self,
|
||||
upload_id: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>MultipartWrite is used to implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on multipart
|
||||
uploads. By implementing MultipartWrite, services don’t need to
|
||||
care about the details of uploading parts.</p>
|
||||
<h2 id="architecture"><a class="doc-anchor" href="#architecture">§</a>Architecture</h2>
|
||||
<p>The architecture after adopting <a href="../trait.MultipartWrite.html" title="trait object_store::layers::mock::MultipartWrite"><code>MultipartWrite</code></a>:</p>
|
||||
<ul>
|
||||
<li>Services impl <code>MultipartWrite</code></li>
|
||||
<li><code>MultipartWriter</code> impl <code>Write</code></li>
|
||||
<li>Expose <code>MultipartWriter</code> as <code>Accessor::Writer</code></li>
|
||||
</ul>
|
||||
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2>
|
||||
<p><code>MultipartWrite</code> has an oneshot optimization when <code>write</code> has been called only once:</p>
|
||||
<div class="example-wrap"><pre class="language-no_build"><code>w.write(bs).await?;
|
||||
w.close().await?;</code></pre></div>
|
||||
<p>We will use <code>write_once</code> instead of starting a new multipart upload.</p>
|
||||
<h2 id="requirements"><a class="doc-anchor" href="#requirements">§</a>Requirements</h2>
|
||||
<p>Services that implement <code>BlockWrite</code> must fulfill the following requirements:</p>
|
||||
<ul>
|
||||
<li>Must be a http service that could accept <code>AsyncBody</code>.</li>
|
||||
<li>Don’t need initialization before writing.</li>
|
||||
<li>Block ID is generated by caller <code>BlockWrite</code> instead of services.</li>
|
||||
<li>Complete block by an ordered block id list.</li>
|
||||
</ul>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.write_once" class="method"><h4 class="code-header">fn <a href="#tymethod.write_once" class="fn">write_once</a>(
|
||||
&self,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>write_once is used to write the data to underlying storage at once.</p>
|
||||
<p>MultipartWriter will call this API when:</p>
|
||||
<ul>
|
||||
<li>All the data has been written to the buffer and we can perform the upload at once.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.initiate_part" class="method"><h4 class="code-header">fn <a href="#tymethod.initiate_part" class="fn">initiate_part</a>(
|
||||
&self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>initiate_part will call start a multipart upload and return the upload id.</p>
|
||||
<p>MultipartWriter will call this when:</p>
|
||||
<ul>
|
||||
<li>the total size of data is unknown.</li>
|
||||
<li>the total size of data is known, but the size of current write
|
||||
is less than the total size.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.write_part" class="method"><h4 class="code-header">fn <a href="#tymethod.write_part" class="fn">write_part</a>(
|
||||
&self,
|
||||
upload_id: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
part_number: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.MultipartPart.html" title="struct object_store::layers::mock::MultipartPart">MultipartPart</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>write_part will write a part of the data and returns the result
|
||||
<a href="../struct.MultipartPart.html" title="struct object_store::layers::mock::MultipartPart"><code>MultipartPart</code></a>.</p>
|
||||
<p>MultipartWriter will call this API and stores the result in
|
||||
order.</p>
|
||||
<ul>
|
||||
<li>part_number is the index of the part, starting from 0.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.complete_part" class="method"><h4 class="code-header">fn <a href="#tymethod.complete_part" class="fn">complete_part</a>(
|
||||
&self,
|
||||
upload_id: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
parts: &[<a class="struct" href="../struct.MultipartPart.html" title="struct object_store::layers::mock::MultipartPart">MultipartPart</a>],
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>complete_part will complete the multipart upload to build the final
|
||||
file.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.abort_part" class="method"><h4 class="code-header">fn <a href="#tymethod.abort_part" class="fn">abort_part</a>(
|
||||
&self,
|
||||
upload_id: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>abort_part will cancel the multipart upload and purge all data.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../../trait.impl/opendal/raw/oio/write/multipart_write/trait.MultipartWrite.js" async></script></section></div></main></body></html>
|
||||
20
object_store/layers/mock/oio/trait.OneShotDelete.html
Normal file
20
object_store/layers/mock/oio/trait.OneShotDelete.html
Normal file
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OneShotDelete is used to implement `oio::Delete` based on one shot operation."><title>OneShotDelete in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">OneShotDelete</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">OneShot<wbr>Delete</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.delete_once" title="delete_once">delete_once</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">OneShot<wbr>Delete</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait OneShotDelete:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required method
|
||||
fn <a href="#tymethod.delete_once" class="fn">delete_once</a>(
|
||||
&self,
|
||||
path: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||||
args: <a class="struct" href="../struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>OneShotDelete is used to implement <a href="../trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>oio::Delete</code></a> based on one shot operation.</p>
|
||||
<p>OneShotDeleter will perform delete operation while calling <code>flush</code>.</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.delete_once" class="method"><h4 class="code-header">fn <a href="#tymethod.delete_once" class="fn">delete_once</a>(
|
||||
&self,
|
||||
path: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||||
args: <a class="struct" href="../struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>delete_once delete one path at once.</p>
|
||||
<p>Implementations should make sure that the data is deleted correctly at once.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../../trait.impl/opendal/raw/oio/delete/one_shot_delete/trait.OneShotDelete.js" async></script></section></div></main></body></html>
|
||||
20
object_store/layers/mock/oio/trait.OneShotWrite.html
Normal file
20
object_store/layers/mock/oio/trait.OneShotWrite.html
Normal file
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OneShotWrite is used to implement `oio::Write` based on one shot operation. By implementing OneShotWrite, services don’t need to care about the details."><title>OneShotWrite in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">OneShotWrite</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">OneShot<wbr>Write</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.write_once" title="write_once">write_once</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">OneShot<wbr>Write</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait OneShotWrite:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required method
|
||||
fn <a href="#tymethod.write_once" class="fn">write_once</a>(
|
||||
&self,
|
||||
bs: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>OneShotWrite is used to implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on one shot operation.
|
||||
By implementing OneShotWrite, services don’t need to care about the details.</p>
|
||||
<p>For example, S3 <code>PUT Object</code> and fs <code>write_all</code>.</p>
|
||||
<p>The layout after adopting <a href="../trait.OneShotWrite.html" title="trait object_store::layers::mock::OneShotWrite"><code>OneShotWrite</code></a>:</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.write_once" class="method"><h4 class="code-header">fn <a href="#tymethod.write_once" class="fn">write_once</a>(
|
||||
&self,
|
||||
bs: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>write_once write all data at once.</p>
|
||||
<p>Implementations should make sure that the data is written correctly at once.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../../trait.impl/opendal/raw/oio/write/one_shot_write/trait.OneShotWrite.js" async></script></section></div></main></body></html>
|
||||
24
object_store/layers/mock/oio/trait.PageList.html
Normal file
24
object_store/layers/mock/oio/trait.PageList.html
Normal file
@@ -0,0 +1,24 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PageList is used to implement `oio::List` based on API supporting pagination. By implementing PageList, services don’t need to care about the details of page list."><title>PageList in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">PageList</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Page<wbr>List</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#architecture" title="Architecture">Architecture</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.next_page" title="next_page">next_page</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">Page<wbr>List</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait PageList:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required method
|
||||
fn <a href="#tymethod.next_page" class="fn">next_page</a>(
|
||||
&self,
|
||||
ctx: &mut <a class="struct" href="../struct.PageContext.html" title="struct object_store::layers::mock::PageContext">PageContext</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>PageList is used to implement <a href="../trait.List.html" title="trait object_store::layers::mock::List"><code>oio::List</code></a> based on API supporting pagination. By implementing
|
||||
PageList, services don’t need to care about the details of page list.</p>
|
||||
<h2 id="architecture"><a class="doc-anchor" href="#architecture">§</a>Architecture</h2>
|
||||
<p>The architecture after adopting <a href="../trait.PageList.html" title="trait object_store::layers::mock::PageList"><code>PageList</code></a>:</p>
|
||||
<ul>
|
||||
<li>Services impl <code>PageList</code></li>
|
||||
<li><code>PageLister</code> impl <code>List</code></li>
|
||||
<li>Expose <code>PageLister</code> as <code>Accessor::Lister</code></li>
|
||||
</ul>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.next_page" class="method"><h4 class="code-header">fn <a href="#tymethod.next_page" class="fn">next_page</a>(
|
||||
&self,
|
||||
ctx: &mut <a class="struct" href="../struct.PageContext.html" title="struct object_store::layers::mock::PageContext">PageContext</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>next_page is used to fetch next page of entries from underlying storage.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../../trait.impl/opendal/raw/oio/list/page_list/trait.PageList.js" async></script></section></div></main></body></html>
|
||||
36
object_store/layers/mock/oio/trait.PositionWrite.html
Normal file
36
object_store/layers/mock/oio/trait.PositionWrite.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PositionWrite is used to implement `oio::Write` based on position write."><title>PositionWrite in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">PositionWrite</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Position<wbr>Write</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#services" title="Services">Services</a></li><li><a href="#architecture" title="Architecture">Architecture</a></li><li><a href="#requirements" title="Requirements">Requirements</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.abort" title="abort">abort</a></li><li><a href="#tymethod.close" title="close">close</a></li><li><a href="#tymethod.write_all_at" title="write_all_at">write_all_at</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">Position<wbr>Write</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait PositionWrite:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.write_all_at" class="fn">write_all_at</a>(
|
||||
&self,
|
||||
offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
buf: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.close" class="fn">close</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.abort" class="fn">abort</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>PositionWrite is used to implement <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on position write.</p>
|
||||
<h2 id="services"><a class="doc-anchor" href="#services">§</a>Services</h2>
|
||||
<p>Services like fs support position write.</p>
|
||||
<h2 id="architecture"><a class="doc-anchor" href="#architecture">§</a>Architecture</h2>
|
||||
<p>The architecture after adopting <a href="../trait.PositionWrite.html" title="trait object_store::layers::mock::PositionWrite"><code>PositionWrite</code></a>:</p>
|
||||
<ul>
|
||||
<li>Services impl <code>PositionWrite</code></li>
|
||||
<li><code>PositionWriter</code> impl <code>Write</code></li>
|
||||
<li>Expose <code>PositionWriter</code> as <code>Accessor::Writer</code></li>
|
||||
</ul>
|
||||
<h2 id="requirements"><a class="doc-anchor" href="#requirements">§</a>Requirements</h2>
|
||||
<p>Services that implement <code>PositionWrite</code> must fulfill the following requirements:</p>
|
||||
<ul>
|
||||
<li>Writing data based on position: <code>offset</code>.</li>
|
||||
</ul>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.write_all_at" class="method"><h4 class="code-header">fn <a href="#tymethod.write_all_at" class="fn">write_all_at</a>(
|
||||
&self,
|
||||
offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
buf: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>write_all_at is used to write the data to underlying storage at the specified offset.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.close" class="method"><h4 class="code-header">fn <a href="#tymethod.close" class="fn">close</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>close is used to close the underlying file.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.abort" class="method"><h4 class="code-header">fn <a href="#tymethod.abort" class="fn">abort</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>abort is used to abort the underlying abort.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../../trait.impl/opendal/raw/oio/write/position_write/trait.PositionWrite.js" async></script></section></div></main></body></html>
|
||||
39
object_store/layers/mock/oio/trait.Read.html
Normal file
39
object_store/layers/mock/oio/trait.Read.html
Normal file
@@ -0,0 +1,39 @@
|
||||
<!DOCTYPE html><html lang="en"><head><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 internal trait used by OpenDAL to read data from storage."><title>Read in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Read</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Read</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#notes" title="Notes">Notes</a><ul><li><a href="#object-safety" title="Object Safety">Object Safety</a></li></ul></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.read" title="read">read</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.read_all" title="read_all">read_all</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-Read-for-()" title="()">()</a></li><li><a href="#impl-Read-for-Box%3CT%3E" title="Box<T>">Box<T></a></li><li><a href="#impl-Read-for-Bytes" title="Bytes">Bytes</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">Read</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait Read:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
|
||||
// Required method
|
||||
fn <a href="#tymethod.read" class="fn">read</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
|
||||
// Provided method
|
||||
fn <a href="#method.read_all" class="fn">read_all</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend { ... }
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Read is the internal trait used by OpenDAL to read data from storage.</p>
|
||||
<p>Users should not use or import this trait unless they are implementing an <code>Accessor</code>.</p>
|
||||
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2><h3 id="object-safety"><a class="doc-anchor" href="#object-safety">§</a>Object Safety</h3>
|
||||
<p><code>Read</code> uses <code>async in trait</code>, making it not object safe, preventing the use of <code>Box<dyn Read></code>.
|
||||
To address this, we’ve introduced <a href="../trait.ReadDyn.html" title="trait object_store::layers::mock::ReadDyn"><code>ReadDyn</code></a> and its compatible type <code>Box<dyn ReadDyn></code>.</p>
|
||||
<p><code>ReadDyn</code> uses <code>Box::pin()</code> to transform the returned future into a [<code>BoxedFuture</code>], introducing
|
||||
an additional layer of indirection and an extra allocation. Ideally, <code>ReadDyn</code> should occur only
|
||||
once, at the outermost level of our API.</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.read" class="method"><h4 class="code-header">fn <a href="#tymethod.read" class="fn">read</a>(&mut self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Read at the given offset with the given size.</p>
|
||||
</div></details></div><h2 id="provided-methods" class="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_all" class="method"><h4 class="code-header">fn <a href="#method.read_all" class="fn">read_all</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Read all data from the reader.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Read-for-()" class="impl"><a href="#impl-Read-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h3></section></summary><div class="impl-items"><section id="method.read" class="method trait-impl"><a href="#method.read" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">read</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Read-for-Bytes" class="impl"><a href="#impl-Read-for-Bytes" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for Bytes</h3></section></summary><div class="impl-items"><section id="method.read-1" class="method trait-impl"><a href="#method.read-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">read</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Read-for-Box%3CT%3E" class="impl"><a href="#impl-Read-for-Box%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><T><div class="where">where
|
||||
T: <a class="trait" href="../trait.ReadDyn.html" title="trait object_store::layers::mock::ReadDyn">ReadDyn</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3><div class="docblock"><h4 id="note"><a class="doc-anchor" href="#note">§</a>NOTE</h4>
|
||||
<p>Take care about the <code>deref_mut()</code> here. This makes sure that we are calling functions
|
||||
upon <code>&mut T</code> instead of <code>&mut Box<T></code>. The later could result in infinite recursion.</p>
|
||||
</div></section></summary><div class="impl-items"><section id="method.read-2" class="method trait-impl"><a href="#method.read-2" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">read</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.read_all-1" class="method trait-impl"><a href="#method.read_all-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">read_all</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-Read-for-Buffer" class="impl"><a href="#impl-Read-for-Buffer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a></h3></section><section id="impl-Read-for-MockReader" class="impl"><a class="src rightside" href="../../../../src/object_store/layers/mock.rs.html#95-99">Source</a><a href="#impl-Read-for-MockReader" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for <a class="struct" href="../struct.MockReader.html" title="struct object_store::layers::mock::MockReader">MockReader</a></h3></section><section id="impl-Read-for-HttpBody" class="impl"><a href="#impl-Read-for-HttpBody" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for HttpBody</h3></section><section id="impl-Read-for-TwoWays%3CONE,+TWO%3E" class="impl"><a href="#impl-Read-for-TwoWays%3CONE,+TWO%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO> <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for TwoWays<ONE, TWO><div class="where">where
|
||||
ONE: <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,
|
||||
TWO: <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,</div></h3></section><section id="impl-Read-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="impl"><a href="#impl-Read-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO, THREE> <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for ThreeWays<ONE, TWO, THREE><div class="where">where
|
||||
ONE: <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,
|
||||
TWO: <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,
|
||||
THREE: <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,</div></h3></section><section id="impl-Read-for-FourWays%3CONE,+TWO,+THREE,+FOUR%3E" class="impl"><a href="#impl-Read-for-FourWays%3CONE,+TWO,+THREE,+FOUR%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO, THREE, FOUR> <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for FourWays<ONE, TWO, THREE, FOUR><div class="where">where
|
||||
ONE: <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,
|
||||
TWO: <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,
|
||||
THREE: <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,
|
||||
FOUR: <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,</div></h3></section></div><script src="../../../../trait.impl/opendal/raw/oio/read/api/trait.Read.js" data-ignore-extern-crates="opendal,std,bytes,alloc" async></script></section></div></main></body></html>
|
||||
22
object_store/layers/mock/oio/trait.ReadDyn.html
Normal file
22
object_store/layers/mock/oio/trait.ReadDyn.html
Normal file
@@ -0,0 +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="ReadDyn is the dyn version of `Read` make it possible to use as `Box<dyn ReadDyn>`."><title>ReadDyn in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">ReadDyn</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">ReadDyn</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.read_all_dyn" title="read_all_dyn">read_all_dyn</a></li><li><a href="#tymethod.read_dyn" title="read_dyn">read_dyn</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">ReadDyn</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait ReadDyn:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.read_dyn" class="fn">read_dyn</a>(
|
||||
&mut self,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + '_>>;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.read_all_dyn" class="fn">read_all_dyn</a>(
|
||||
&mut self,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + '_>>;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>ReadDyn is the dyn version of <a href="../trait.Read.html" title="trait object_store::layers::mock::Read"><code>Read</code></a> make it possible to use as
|
||||
<code>Box<dyn ReadDyn></code>.</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.read_dyn" class="method"><h4 class="code-header">fn <a href="#tymethod.read_dyn" class="fn">read_dyn</a>(
|
||||
&mut self,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + '_>></h4></section></summary><div class="docblock"><p>The dyn version of <a href="../trait.Read.html#tymethod.read" title="method object_store::layers::mock::Read::read"><code>Read::read</code></a>.</p>
|
||||
<p>This function returns a boxed future to make it object safe.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.read_all_dyn" class="method"><h4 class="code-header">fn <a href="#tymethod.read_all_dyn" class="fn">read_all_dyn</a>(
|
||||
&mut self,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + '_>></h4></section></summary><div class="docblock"><p>The dyn version of <a href="../trait.Read.html#method.read_all" title="method object_store::layers::mock::Read::read_all"><code>Read::read_all</code></a></p>
|
||||
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-ReadDyn-for-T" class="impl"><a href="#impl-ReadDyn-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.ReadDyn.html" title="trait object_store::layers::mock::ReadDyn">ReadDyn</a> for T<div class="where">where
|
||||
T: <a class="trait" href="../trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></div><script src="../../../../trait.impl/opendal/raw/oio/read/api/trait.ReadDyn.js" async></script></section></div></main></body></html>
|
||||
37
object_store/layers/mock/oio/trait.Write.html
Normal file
37
object_store/layers/mock/oio/trait.Write.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html><html lang="en"><head><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."><title>Write in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Write</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Write</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.abort" title="abort">abort</a></li><li><a href="#tymethod.close" title="close">close</a></li><li><a href="#tymethod.write" title="write">write</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-Write-for-()" title="()">()</a></li><li><a href="#impl-Write-for-Box%3CT%3E" title="Box<T>">Box<T></a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Trait <span class="trait">Write</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait Write:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.write" class="fn">write</a>(
|
||||
&mut self,
|
||||
bs: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.close" class="fn">close</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.abort" class="fn">abort</a>(&mut self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><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="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"><h4 class="code-header">fn <a href="#tymethod.write" class="fn">write</a>(
|
||||
&mut self,
|
||||
bs: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Write given bytes into writer.</p>
|
||||
<h5 id="behavior"><a class="doc-anchor" href="#behavior">§</a>Behavior</h5>
|
||||
<ul>
|
||||
<li><code>Ok(())</code> means all bytes has been written successfully.</li>
|
||||
<li><code>Err(err)</code> means error happens and no bytes has been written.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.close" class="method"><h4 class="code-header">fn <a href="#tymethod.close" class="fn">close</a>(&mut self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Close the writer and make sure all data has been flushed.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.abort" class="method"><h4 class="code-header">fn <a href="#tymethod.abort" class="fn">abort</a>(&mut self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Abort the pending writer.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Write-for-()" class="impl"><a href="#impl-Write-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h3></section></summary><div class="impl-items"><section id="method.write" class="method trait-impl"><a href="#method.write" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">write</a>(&mut self, _: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.close" class="method trait-impl"><a href="#method.close" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">close</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.abort" class="method trait-impl"><a href="#method.abort" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">abort</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Write-for-Box%3CT%3E" class="impl"><a href="#impl-Write-for-Box%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><T><div class="where">where
|
||||
T: WriteDyn + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><section id="method.write-1" class="method trait-impl"><a href="#method.write-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">write</a>(&mut self, bs: <a class="struct" href="../../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.close-1" class="method trait-impl"><a href="#method.close-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">close</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.abort-1" class="method trait-impl"><a href="#method.abort-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">abort</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-Write-for-MockWriter" class="impl"><a class="src rightside" href="../../../../src/object_store/layers/mock.rs.html#105-117">Source</a><a href="#impl-Write-for-MockWriter" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="../struct.MockWriter.html" title="struct object_store::layers::mock::MockWriter">MockWriter</a></h3></section><section id="impl-Write-for-TwoWays%3CONE,+TWO%3E" class="impl"><a href="#impl-Write-for-TwoWays%3CONE,+TWO%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO> <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for TwoWays<ONE, TWO><div class="where">where
|
||||
ONE: <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a>,
|
||||
TWO: <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a>,</div></h3></section><section id="impl-Write-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="impl"><a href="#impl-Write-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO, THREE> <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for ThreeWays<ONE, TWO, THREE><div class="where">where
|
||||
ONE: <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a>,
|
||||
TWO: <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a>,
|
||||
THREE: <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a>,</div></h3></section><section id="impl-Write-for-AppendWriter%3CW%3E" class="impl"><a href="#impl-Write-for-AppendWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W> <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="../struct.AppendWriter.html" title="struct object_store::layers::mock::AppendWriter">AppendWriter</a><W><div class="where">where
|
||||
W: <a class="trait" href="../trait.AppendWrite.html" title="trait object_store::layers::mock::AppendWrite">AppendWrite</a>,</div></h3></section><section id="impl-Write-for-BlockWriter%3CW%3E" class="impl"><a href="#impl-Write-for-BlockWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W> <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="../struct.BlockWriter.html" title="struct object_store::layers::mock::BlockWriter">BlockWriter</a><W><div class="where">where
|
||||
W: <a class="trait" href="../trait.BlockWrite.html" title="trait object_store::layers::mock::BlockWrite">BlockWrite</a>,</div></h3></section><section id="impl-Write-for-MultipartWriter%3CW%3E" class="impl"><a href="#impl-Write-for-MultipartWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W> <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="../struct.MultipartWriter.html" title="struct object_store::layers::mock::MultipartWriter">MultipartWriter</a><W><div class="where">where
|
||||
W: <a class="trait" href="../trait.MultipartWrite.html" title="trait object_store::layers::mock::MultipartWrite">MultipartWrite</a>,</div></h3></section><section id="impl-Write-for-OneShotWriter%3CW%3E" class="impl"><a href="#impl-Write-for-OneShotWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W> <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="../struct.OneShotWriter.html" title="struct object_store::layers::mock::OneShotWriter">OneShotWriter</a><W><div class="where">where
|
||||
W: <a class="trait" href="../trait.OneShotWrite.html" title="trait object_store::layers::mock::OneShotWrite">OneShotWrite</a>,</div></h3></section><section id="impl-Write-for-PositionWriter%3CW%3E" class="impl"><a href="#impl-Write-for-PositionWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W> <a class="trait" href="../trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="../struct.PositionWriter.html" title="struct object_store::layers::mock::PositionWriter">PositionWriter</a><W><div class="where">where
|
||||
W: <a class="trait" href="../trait.PositionWrite.html" title="trait object_store::layers::mock::PositionWrite">PositionWrite</a>,</div></h3></section></div><script src="../../../../trait.impl/opendal/raw/oio/write/api/trait.Write.js" data-ignore-extern-crates="opendal,std,alloc" async></script></section></div></main></body></html>
|
||||
2
object_store/layers/mock/oio/type.Deleter.html
Normal file
2
object_store/layers/mock/oio/type.Deleter.html
Normal file
@@ -0,0 +1,2 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Deleter is a type erased `Delete`"><title>Deleter in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Deleter</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Deleter</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Type Alias <span class="type">Deleter</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub type Deleter = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="../trait.DeleteDyn.html" title="trait object_store::layers::mock::DeleteDyn">DeleteDyn</a>>;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Deleter is a type erased <a href="../trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>Delete</code></a></p>
|
||||
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct Deleter(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../../type.impl/alloc/boxed/struct.Box.js" data-self-path="object_store::layers::mock::Deleter" async></script></section></div></main></body></html>
|
||||
2
object_store/layers/mock/oio/type.Lister.html
Normal file
2
object_store/layers/mock/oio/type.Lister.html
Normal file
@@ -0,0 +1,2 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The boxed version of `List`"><title>Lister in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Lister</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Lister</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Type Alias <span class="type">Lister</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub type Lister = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn ListDyn>;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The boxed version of <a href="../trait.List.html" title="trait object_store::layers::mock::List"><code>List</code></a></p>
|
||||
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct Lister(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../../type.impl/alloc/boxed/struct.Box.js" data-self-path="object_store::layers::mock::Lister" async></script></section></div></main></body></html>
|
||||
2
object_store/layers/mock/oio/type.Reader.html
Normal file
2
object_store/layers/mock/oio/type.Reader.html
Normal file
@@ -0,0 +1,2 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reader is a type erased `Read`."><title>Reader in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Reader</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Reader</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Type Alias <span class="type">Reader</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub type Reader = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="../trait.ReadDyn.html" title="trait object_store::layers::mock::ReadDyn">ReadDyn</a>>;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Reader is a type erased <a href="../trait.Read.html" title="trait object_store::layers::mock::Read"><code>Read</code></a>.</p>
|
||||
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct Reader(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../../type.impl/alloc/boxed/struct.Box.js" data-self-path="object_store::layers::mock::Reader" async></script></section></div></main></body></html>
|
||||
2
object_store/layers/mock/oio/type.Writer.html
Normal file
2
object_store/layers/mock/oio/type.Writer.html
Normal file
@@ -0,0 +1,2 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Writer is a type erased `Write`"><title>Writer in object_store::layers::mock::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Writer</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Writer</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock::<wbr>oio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">object_store</a>::<wbr><a href="../../index.html">layers</a>::<wbr><a href="../index.html">mock</a>::<wbr><a href="index.html">oio</a></div><h1>Type Alias <span class="type">Writer</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub type Writer = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn WriteDyn>;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Writer is a type erased <a href="../trait.Write.html" title="trait object_store::layers::mock::Write"><code>Write</code></a></p>
|
||||
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct Writer(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../../type.impl/alloc/boxed/struct.Box.js" data-self-path="object_store::layers::mock::Writer" async></script></section></div></main></body></html>
|
||||
1
object_store/layers/mock/sidebar-items.js
Normal file
1
object_store/layers/mock/sidebar-items.js
Normal file
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"enum":["ErrorKind","MockLayerBuilderError"],"mod":["oio"],"struct":["AppendWriter","BatchDeleteResult","BatchDeleter","BlockWriter","Buffer","Entry","Error","FlatLister","FlexBuf","HierarchyLister","Metadata","MockAccessor","MockDeleter","MockLayer","MockLayerBuilder","MockLister","MockReader","MockWriter","MultipartPart","MultipartWriter","OneShotDeleter","OneShotWriter","OpDelete","OpList","OpRead","OpWrite","PageContext","PageLister","PooledBuf","PositionWriter","PrefixLister","QueueBuf","RpDelete","RpList","RpRead","RpWrite"],"trait":["Access","AppendWrite","BatchDelete","BlockWrite","Delete","DeleteDyn","Layer","LayeredAccess","List","MultipartWrite","OneShotDelete","OneShotWrite","PageList","PositionWrite","Read","ReadDyn","Write"],"type":["CopyInterceptor","Deleter","Lister","MockDeleterFactory","MockListerFactory","MockReaderFactory","MockWriterFactory","Reader","Result","Writer"]};
|
||||
197
object_store/layers/mock/struct.AppendWriter.html
Normal file
197
object_store/layers/mock/struct.AppendWriter.html
Normal file
File diff suppressed because one or more lines are too long
185
object_store/layers/mock/struct.BatchDeleteResult.html
Normal file
185
object_store/layers/mock/struct.BatchDeleteResult.html
Normal file
File diff suppressed because one or more lines are too long
193
object_store/layers/mock/struct.BatchDeleter.html
Normal file
193
object_store/layers/mock/struct.BatchDeleter.html
Normal file
File diff suppressed because one or more lines are too long
196
object_store/layers/mock/struct.BlockWriter.html
Normal file
196
object_store/layers/mock/struct.BlockWriter.html
Normal file
File diff suppressed because one or more lines are too long
813
object_store/layers/mock/struct.Buffer.html
Normal file
813
object_store/layers/mock/struct.Buffer.html
Normal file
File diff suppressed because one or more lines are too long
209
object_store/layers/mock/struct.Entry.html
Normal file
209
object_store/layers/mock/struct.Entry.html
Normal file
File diff suppressed because one or more lines are too long
301
object_store/layers/mock/struct.Error.html
Normal file
301
object_store/layers/mock/struct.Error.html
Normal file
File diff suppressed because one or more lines are too long
225
object_store/layers/mock/struct.FlatLister.html
Normal file
225
object_store/layers/mock/struct.FlatLister.html
Normal file
File diff suppressed because one or more lines are too long
199
object_store/layers/mock/struct.FlexBuf.html
Normal file
199
object_store/layers/mock/struct.FlexBuf.html
Normal file
File diff suppressed because one or more lines are too long
199
object_store/layers/mock/struct.HierarchyLister.html
Normal file
199
object_store/layers/mock/struct.HierarchyLister.html
Normal file
File diff suppressed because one or more lines are too long
342
object_store/layers/mock/struct.Metadata.html
Normal file
342
object_store/layers/mock/struct.Metadata.html
Normal file
File diff suppressed because one or more lines are too long
240
object_store/layers/mock/struct.MockAccessor.html
Normal file
240
object_store/layers/mock/struct.MockAccessor.html
Normal file
File diff suppressed because one or more lines are too long
184
object_store/layers/mock/struct.MockDeleter.html
Normal file
184
object_store/layers/mock/struct.MockDeleter.html
Normal file
File diff suppressed because one or more lines are too long
192
object_store/layers/mock/struct.MockLayer.html
Normal file
192
object_store/layers/mock/struct.MockLayer.html
Normal file
File diff suppressed because one or more lines are too long
197
object_store/layers/mock/struct.MockLayerBuilder.html
Normal file
197
object_store/layers/mock/struct.MockLayerBuilder.html
Normal file
File diff suppressed because one or more lines are too long
181
object_store/layers/mock/struct.MockLister.html
Normal file
181
object_store/layers/mock/struct.MockLister.html
Normal file
File diff suppressed because one or more lines are too long
188
object_store/layers/mock/struct.MockReader.html
Normal file
188
object_store/layers/mock/struct.MockReader.html
Normal file
File diff suppressed because one or more lines are too long
181
object_store/layers/mock/struct.MockWriter.html
Normal file
181
object_store/layers/mock/struct.MockWriter.html
Normal file
File diff suppressed because one or more lines are too long
200
object_store/layers/mock/struct.MultipartPart.html
Normal file
200
object_store/layers/mock/struct.MultipartPart.html
Normal file
File diff suppressed because one or more lines are too long
199
object_store/layers/mock/struct.MultipartWriter.html
Normal file
199
object_store/layers/mock/struct.MultipartWriter.html
Normal file
File diff suppressed because one or more lines are too long
194
object_store/layers/mock/struct.OneShotDeleter.html
Normal file
194
object_store/layers/mock/struct.OneShotDeleter.html
Normal file
File diff suppressed because one or more lines are too long
189
object_store/layers/mock/struct.OneShotWriter.html
Normal file
189
object_store/layers/mock/struct.OneShotWriter.html
Normal file
File diff suppressed because one or more lines are too long
201
object_store/layers/mock/struct.OpDelete.html
Normal file
201
object_store/layers/mock/struct.OpDelete.html
Normal file
File diff suppressed because one or more lines are too long
214
object_store/layers/mock/struct.OpList.html
Normal file
214
object_store/layers/mock/struct.OpList.html
Normal file
File diff suppressed because one or more lines are too long
220
object_store/layers/mock/struct.OpRead.html
Normal file
220
object_store/layers/mock/struct.OpRead.html
Normal file
File diff suppressed because one or more lines are too long
224
object_store/layers/mock/struct.OpWrite.html
Normal file
224
object_store/layers/mock/struct.OpWrite.html
Normal file
File diff suppressed because one or more lines are too long
198
object_store/layers/mock/struct.PageContext.html
Normal file
198
object_store/layers/mock/struct.PageContext.html
Normal file
File diff suppressed because one or more lines are too long
190
object_store/layers/mock/struct.PageLister.html
Normal file
190
object_store/layers/mock/struct.PageLister.html
Normal file
File diff suppressed because one or more lines are too long
193
object_store/layers/mock/struct.PooledBuf.html
Normal file
193
object_store/layers/mock/struct.PooledBuf.html
Normal file
File diff suppressed because one or more lines are too long
194
object_store/layers/mock/struct.PositionWriter.html
Normal file
194
object_store/layers/mock/struct.PositionWriter.html
Normal file
File diff suppressed because one or more lines are too long
197
object_store/layers/mock/struct.PrefixLister.html
Normal file
197
object_store/layers/mock/struct.PrefixLister.html
Normal file
File diff suppressed because one or more lines are too long
209
object_store/layers/mock/struct.QueueBuf.html
Normal file
209
object_store/layers/mock/struct.QueueBuf.html
Normal file
File diff suppressed because one or more lines are too long
187
object_store/layers/mock/struct.RpDelete.html
Normal file
187
object_store/layers/mock/struct.RpDelete.html
Normal file
File diff suppressed because one or more lines are too long
187
object_store/layers/mock/struct.RpList.html
Normal file
187
object_store/layers/mock/struct.RpList.html
Normal file
File diff suppressed because one or more lines are too long
203
object_store/layers/mock/struct.RpRead.html
Normal file
203
object_store/layers/mock/struct.RpRead.html
Normal file
File diff suppressed because one or more lines are too long
188
object_store/layers/mock/struct.RpWrite.html
Normal file
188
object_store/layers/mock/struct.RpWrite.html
Normal file
File diff suppressed because one or more lines are too long
247
object_store/layers/mock/trait.Access.html
Normal file
247
object_store/layers/mock/trait.Access.html
Normal file
@@ -0,0 +1,247 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Underlying trait of all backends for implementers."><title>Access in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Access</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Access</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#note" title="Note">Note</a></li><li><a href="#operations" title="Operations">Operations</a></li></ul><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Deleter" title="Deleter">Deleter</a></li><li><a href="#associatedtype.Lister" title="Lister">Lister</a></li><li><a href="#associatedtype.Reader" title="Reader">Reader</a></li><li><a href="#associatedtype.Writer" title="Writer">Writer</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.info" title="info">info</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.copy" title="copy">copy</a></li><li><a href="#method.create_dir" title="create_dir">create_dir</a></li><li><a href="#method.delete" title="delete">delete</a></li><li><a href="#method.list" title="list">list</a></li><li><a href="#method.presign" title="presign">presign</a></li><li><a href="#method.read" title="read">read</a></li><li><a href="#method.rename" title="rename">rename</a></li><li><a href="#method.stat" title="stat">stat</a></li><li><a href="#method.write" title="write">write</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-Access-for-()" title="()">()</a></li><li><a href="#impl-Access-for-Arc%3CT%3E" title="Arc<T>">Arc<T></a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">Access</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait Access:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
type <a href="#associatedtype.Reader" class="associatedtype">Reader</a>: <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>;
|
||||
type <a href="#associatedtype.Writer" class="associatedtype">Writer</a>: <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a>;
|
||||
type <a href="#associatedtype.Lister" class="associatedtype">Lister</a>: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>;
|
||||
type <a href="#associatedtype.Deleter" class="associatedtype">Deleter</a>: <a class="trait" href="trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a>;
|
||||
|
||||
// Required method
|
||||
fn <a href="#tymethod.info" class="fn">info</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><AccessorInfo>;
|
||||
|
||||
// Provided methods
|
||||
fn <a href="#method.create_dir" class="fn">create_dir</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpCreateDir,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpCreateDir, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend { ... }
|
||||
<span class="item-spacer"></span> fn <a href="#method.stat" class="fn">stat</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpStat,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpStat, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend { ... }
|
||||
<span class="item-spacer"></span> fn <a href="#method.read" class="fn">read</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: <a class="struct" href="struct.OpRead.html" title="struct object_store::layers::mock::OpRead">OpRead</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct object_store::layers::mock::RpRead">RpRead</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Reader" title="type object_store::Access::Reader">Reader</a>), <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend { ... }
|
||||
<span class="item-spacer"></span> fn <a href="#method.write" class="fn">write</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: <a class="struct" href="struct.OpWrite.html" title="struct object_store::layers::mock::OpWrite">OpWrite</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct object_store::layers::mock::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Writer" title="type object_store::Access::Writer">Writer</a>), <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend { ... }
|
||||
<span class="item-spacer"></span> fn <a href="#method.delete" class="fn">delete</a>(
|
||||
&self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="struct.RpDelete.html" title="struct object_store::layers::mock::RpDelete">RpDelete</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Deleter" title="type object_store::Access::Deleter">Deleter</a>), <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend { ... }
|
||||
<span class="item-spacer"></span> fn <a href="#method.list" class="fn">list</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: <a class="struct" href="struct.OpList.html" title="struct object_store::layers::mock::OpList">OpList</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct object_store::layers::mock::RpList">RpList</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Lister" title="type object_store::Access::Lister">Lister</a>), <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend { ... }
|
||||
<span class="item-spacer"></span> fn <a href="#method.copy" class="fn">copy</a>(
|
||||
&self,
|
||||
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpCopy,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpCopy, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend { ... }
|
||||
<span class="item-spacer"></span> fn <a href="#method.rename" class="fn">rename</a>(
|
||||
&self,
|
||||
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpRename,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpRename, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend { ... }
|
||||
<span class="item-spacer"></span> fn <a href="#method.presign" class="fn">presign</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpPresign,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpPresign, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend { ... }
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Underlying trait of all backends for implementers.</p>
|
||||
<p>The actual data access of storage service happens in Accessor layer.
|
||||
Every storage supported by OpenDAL must implement <a href="../../trait.Access.html" title="trait object_store::Access"><code>Access</code></a> but not all
|
||||
methods of <a href="../../trait.Access.html" title="trait object_store::Access"><code>Access</code></a> will be implemented according to how the storage service is.</p>
|
||||
<p>For example, user can not modify the content from one HTTP file server directly.
|
||||
So <a href="../../services/struct.Http.html" title="struct object_store::services::Http"><code>Http</code></a> implements and provides only read related actions.</p>
|
||||
<p><a href="../../trait.Access.html" title="trait object_store::Access"><code>Access</code></a> gives default implementation for all methods which will raise <a href="../../enum.ErrorKind.html#variant.Unsupported" title="variant object_store::ErrorKind::Unsupported"><code>ErrorKind::Unsupported</code></a> error.
|
||||
And what action this <a href="../../trait.Access.html" title="trait object_store::Access"><code>Access</code></a> supports will be pointed out in [<code>AccessorInfo</code>].</p>
|
||||
<h2 id="note"><a class="doc-anchor" href="#note">§</a>Note</h2>
|
||||
<p>Visit [<code>internals</code>][crate::docs::internals] for more tutorials.</p>
|
||||
<h2 id="operations"><a class="doc-anchor" href="#operations">§</a>Operations</h2>
|
||||
<ul>
|
||||
<li>Path in args will all be normalized into the same style, services
|
||||
should handle them based on services’ requirement.
|
||||
<ul>
|
||||
<li>Path that ends with <code>/</code> means it’s Dir, otherwise, it’s File.</li>
|
||||
<li>Root dir is <code>/</code></li>
|
||||
<li>Path will never be empty.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Operations without capability requirement like <code>metadata</code>, <code>create</code> are
|
||||
basic operations.
|
||||
<ul>
|
||||
<li>All services must implement them.</li>
|
||||
<li>Use <code>unimplemented!()</code> if not implemented or can’t implement.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Operations with capability requirement like <code>presign</code> are optional operations.
|
||||
<ul>
|
||||
<li>Services can implement them based on services capabilities.</li>
|
||||
<li>The default implementation should return <a href="../../enum.ErrorKind.html#variant.Unsupported" title="variant object_store::ErrorKind::Unsupported"><code>ErrorKind::Unsupported</code></a>.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.Reader" class="method"><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a>: <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a></h4></section></summary><div class="docblock"><p>Reader is the associated reader returned in <code>read</code> operation.</p>
|
||||
</div></details><details class="toggle" open><summary><section id="associatedtype.Writer" class="method"><h4 class="code-header">type <a href="#associatedtype.Writer" class="associatedtype">Writer</a>: <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a></h4></section></summary><div class="docblock"><p>Writer is the associated writer returned in <code>write</code> operation.</p>
|
||||
</div></details><details class="toggle" open><summary><section id="associatedtype.Lister" class="method"><h4 class="code-header">type <a href="#associatedtype.Lister" class="associatedtype">Lister</a>: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a></h4></section></summary><div class="docblock"><p>Lister is the associated lister returned in <code>list</code> operation.</p>
|
||||
</div></details><details class="toggle" open><summary><section id="associatedtype.Deleter" class="method"><h4 class="code-header">type <a href="#associatedtype.Deleter" class="associatedtype">Deleter</a>: <a class="trait" href="trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a></h4></section></summary><div class="docblock"><p>Deleter is the associated deleter returned in <code>delete</code> operation.</p>
|
||||
</div></details></div><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.info" class="method"><h4 class="code-header">fn <a href="#tymethod.info" class="fn">info</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><AccessorInfo></h4></section></summary><div class="docblock"><p>Invoke the <code>info</code> operation to get metadata of accessor.</p>
|
||||
<h5 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h5>
|
||||
<p>This function is required to be implemented.</p>
|
||||
<p>By returning AccessorInfo, underlying services can declare
|
||||
some useful information about itself.</p>
|
||||
<ul>
|
||||
<li>scheme: declare the scheme of backend.</li>
|
||||
<li>capabilities: declare the capabilities of current backend.</li>
|
||||
</ul>
|
||||
</div></details></div><h2 id="provided-methods" class="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_dir" class="method"><h4 class="code-header">fn <a href="#method.create_dir" class="fn">create_dir</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpCreateDir,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpCreateDir, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Invoke the <code>create</code> operation on the specified path</p>
|
||||
<p>Require [<code>Capability::create_dir</code>]</p>
|
||||
<h5 id="behavior"><a class="doc-anchor" href="#behavior">§</a>Behavior</h5>
|
||||
<ul>
|
||||
<li>Input path MUST match with EntryMode, DON’T NEED to check mode.</li>
|
||||
<li>Create on existing dir SHOULD succeed.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="method.stat" class="method"><h4 class="code-header">fn <a href="#method.stat" class="fn">stat</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpStat,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpStat, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Invoke the <code>stat</code> operation on the specified path.</p>
|
||||
<p>Require [<code>Capability::stat</code>]</p>
|
||||
<h5 id="behavior-1"><a class="doc-anchor" href="#behavior-1">§</a>Behavior</h5>
|
||||
<ul>
|
||||
<li><code>stat</code> empty path means stat backend’s root path.</li>
|
||||
<li><code>stat</code> a path endswith “/” means stating a dir.</li>
|
||||
<li><code>mode</code> and <code>content_length</code> must be set.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="method.read" class="method"><h4 class="code-header">fn <a href="#method.read" class="fn">read</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: <a class="struct" href="struct.OpRead.html" title="struct object_store::layers::mock::OpRead">OpRead</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct object_store::layers::mock::RpRead">RpRead</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Reader" title="type object_store::Access::Reader">Reader</a>), <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Invoke the <code>read</code> operation on the specified path, returns a
|
||||
<a href="../../struct.Reader.html" title="struct object_store::Reader"><code>Reader</code></a> if operate successful.</p>
|
||||
<p>Require [<code>Capability::read</code>]</p>
|
||||
<h5 id="behavior-2"><a class="doc-anchor" href="#behavior-2">§</a>Behavior</h5>
|
||||
<ul>
|
||||
<li>Input path MUST be file path, DON’T NEED to check mode.</li>
|
||||
<li>The returning content length may be smaller than the range specified.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="method.write" class="method"><h4 class="code-header">fn <a href="#method.write" class="fn">write</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: <a class="struct" href="struct.OpWrite.html" title="struct object_store::layers::mock::OpWrite">OpWrite</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct object_store::layers::mock::RpWrite">RpWrite</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Writer" title="type object_store::Access::Writer">Writer</a>), <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Invoke the <code>write</code> operation on the specified path, returns a
|
||||
written size if operate successful.</p>
|
||||
<p>Require [<code>Capability::write</code>]</p>
|
||||
<h5 id="behavior-3"><a class="doc-anchor" href="#behavior-3">§</a>Behavior</h5>
|
||||
<ul>
|
||||
<li>Input path MUST be file path, DON’T NEED to check mode.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="method.delete" class="method"><h4 class="code-header">fn <a href="#method.delete" class="fn">delete</a>(
|
||||
&self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="struct.RpDelete.html" title="struct object_store::layers::mock::RpDelete">RpDelete</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Deleter" title="type object_store::Access::Deleter">Deleter</a>), <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Invoke the <code>delete</code> operation on the specified path.</p>
|
||||
<p>Require [<code>Capability::delete</code>]</p>
|
||||
<h5 id="behavior-4"><a class="doc-anchor" href="#behavior-4">§</a>Behavior</h5>
|
||||
<ul>
|
||||
<li><code>delete</code> is an idempotent operation, it’s safe to call <code>Delete</code> on the same path multiple times.</li>
|
||||
<li><code>delete</code> SHOULD return <code>Ok(())</code> if the path is deleted successfully or not exist.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="method.list" class="method"><h4 class="code-header">fn <a href="#method.list" class="fn">list</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: <a class="struct" href="struct.OpList.html" title="struct object_store::layers::mock::OpList">OpList</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct object_store::layers::mock::RpList">RpList</a>, Self::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Lister" title="type object_store::Access::Lister">Lister</a>), <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Invoke the <code>list</code> operation on the specified path.</p>
|
||||
<p>Require [<code>Capability::list</code>]</p>
|
||||
<h5 id="behavior-5"><a class="doc-anchor" href="#behavior-5">§</a>Behavior</h5>
|
||||
<ul>
|
||||
<li>Input path MUST be dir path, DON’T NEED to check mode.</li>
|
||||
<li>List non-exist dir should return Empty.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="method.copy" class="method"><h4 class="code-header">fn <a href="#method.copy" class="fn">copy</a>(
|
||||
&self,
|
||||
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpCopy,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpCopy, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Invoke the <code>copy</code> operation on the specified <code>from</code> path and <code>to</code> path.</p>
|
||||
<p>Require [Capability::copy]</p>
|
||||
<h5 id="behaviour"><a class="doc-anchor" href="#behaviour">§</a>Behaviour</h5>
|
||||
<ul>
|
||||
<li><code>from</code> and <code>to</code> MUST be file path, DON’T NEED to check mode.</li>
|
||||
<li>Copy on existing file SHOULD succeed.</li>
|
||||
<li>Copy on existing file SHOULD overwrite and truncate.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="method.rename" class="method"><h4 class="code-header">fn <a href="#method.rename" class="fn">rename</a>(
|
||||
&self,
|
||||
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpRename,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpRename, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Invoke the <code>rename</code> operation on the specified <code>from</code> path and <code>to</code> path.</p>
|
||||
<p>Require [Capability::rename]</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="method.presign" class="method"><h4 class="code-header">fn <a href="#method.presign" class="fn">presign</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpPresign,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpPresign, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Invoke the <code>presign</code> operation on the specified path.</p>
|
||||
<p>Require [<code>Capability::presign</code>]</p>
|
||||
<h5 id="behavior-6"><a class="doc-anchor" href="#behavior-6">§</a>Behavior</h5>
|
||||
<ul>
|
||||
<li>This API is optional, return <a href="https://doc.rust-lang.org/nightly/std/io/error/enum.ErrorKind.html#variant.Unsupported" title="variant std::io::error::ErrorKind::Unsupported"><code>std::io::ErrorKind::Unsupported</code></a> if not supported.</li>
|
||||
</ul>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Access-for-()" class="impl"><a href="#impl-Access-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h3><div class="docblock"><p>Dummy implementation of accessor.</p>
|
||||
</div></section></summary><div class="impl-items"><section id="associatedtype.Reader-1" class="associatedtype trait-impl"><a href="#associatedtype.Reader-1" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Reader</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h4></section><section id="associatedtype.Writer-1" class="associatedtype trait-impl"><a href="#associatedtype.Writer-1" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Writer</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h4></section><section id="associatedtype.Lister-1" class="associatedtype trait-impl"><a href="#associatedtype.Lister-1" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Lister</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h4></section><section id="associatedtype.Deleter-1" class="associatedtype trait-impl"><a href="#associatedtype.Deleter-1" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Deleter</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h4></section><section id="method.info" class="method trait-impl"><a href="#method.info" class="anchor">§</a><h4 class="code-header">fn <a class="fn">info</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><AccessorInfo></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Access-for-Arc%3CT%3E" class="impl"><a href="#impl-Access-for-Arc%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><T><div class="where">where
|
||||
T: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3><div class="docblock"><p>All functions in <code>Accessor</code> only requires <code>&self</code>, so it’s safe to implement
|
||||
<code>Accessor</code> for <code>Arc<impl Access></code>.</p>
|
||||
</div></section></summary><div class="impl-items"><section id="associatedtype.Reader-2" class="associatedtype trait-impl"><a href="#associatedtype.Reader-2" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Reader</a> = <T as <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>>::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Reader" title="type object_store::Access::Reader">Reader</a></h4></section><section id="associatedtype.Writer-2" class="associatedtype trait-impl"><a href="#associatedtype.Writer-2" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Writer</a> = <T as <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>>::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Writer" title="type object_store::Access::Writer">Writer</a></h4></section><section id="associatedtype.Lister-2" class="associatedtype trait-impl"><a href="#associatedtype.Lister-2" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Lister</a> = <T as <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>>::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Lister" title="type object_store::Access::Lister">Lister</a></h4></section><section id="associatedtype.Deleter-2" class="associatedtype trait-impl"><a href="#associatedtype.Deleter-2" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Deleter</a> = <T as <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>>::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Deleter" title="type object_store::Access::Deleter">Deleter</a></h4></section><section id="method.info-1" class="method trait-impl"><a href="#method.info-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">info</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><AccessorInfo></h4></section><section id="method.create_dir-1" class="method trait-impl"><a href="#method.create_dir-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">create_dir</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpCreateDir,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpCreateDir, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section><section id="method.stat-1" class="method trait-impl"><a href="#method.stat-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">stat</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpStat,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpStat, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section><section id="method.read-1" class="method trait-impl"><a href="#method.read-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: <a class="struct" href="struct.OpRead.html" title="struct object_store::layers::mock::OpRead">OpRead</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="struct.RpRead.html" title="struct object_store::layers::mock::RpRead">RpRead</a>, <<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><T> as <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>>::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Reader" title="type object_store::Access::Reader">Reader</a>), <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section><section id="method.write-1" class="method trait-impl"><a href="#method.write-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">write</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: <a class="struct" href="struct.OpWrite.html" title="struct object_store::layers::mock::OpWrite">OpWrite</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="struct.RpWrite.html" title="struct object_store::layers::mock::RpWrite">RpWrite</a>, <<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><T> as <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>>::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Writer" title="type object_store::Access::Writer">Writer</a>), <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section><section id="method.delete-1" class="method trait-impl"><a href="#method.delete-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">delete</a>(
|
||||
&self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="struct.RpDelete.html" title="struct object_store::layers::mock::RpDelete">RpDelete</a>, <<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><T> as <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>>::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Deleter" title="type object_store::Access::Deleter">Deleter</a>), <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section><section id="method.list-1" class="method trait-impl"><a href="#method.list-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">list</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: <a class="struct" href="struct.OpList.html" title="struct object_store::layers::mock::OpList">OpList</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="struct.RpList.html" title="struct object_store::layers::mock::RpList">RpList</a>, <<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><T> as <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>>::<a class="associatedtype" href="../../trait.Access.html#associatedtype.Lister" title="type object_store::Access::Lister">Lister</a>), <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section><section id="method.copy-1" class="method trait-impl"><a href="#method.copy-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">copy</a>(
|
||||
&self,
|
||||
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpCopy,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpCopy, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section><section id="method.rename-1" class="method trait-impl"><a href="#method.rename-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">rename</a>(
|
||||
&self,
|
||||
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpRename,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpRename, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section><section id="method.presign-1" class="method trait-impl"><a href="#method.presign-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">presign</a>(
|
||||
&self,
|
||||
path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
args: OpPresign,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><RpPresign, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-Access-for-dyn+AccessDyn" class="impl"><a href="#impl-Access-for-dyn+AccessDyn" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a> for dyn AccessDyn</h3></section></summary><div class="impl-items"><section id="associatedtype.Reader-3" class="associatedtype trait-impl"><a href="#associatedtype.Reader-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="trait.ReadDyn.html" title="trait object_store::layers::mock::ReadDyn">ReadDyn</a>></h4></section><section id="associatedtype.Writer-3" class="associatedtype trait-impl"><a href="#associatedtype.Writer-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Writer" class="associatedtype">Writer</a> = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn WriteDyn></h4></section><section id="associatedtype.Deleter-3" class="associatedtype trait-impl"><a href="#associatedtype.Deleter-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Deleter" class="associatedtype">Deleter</a> = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="trait.DeleteDyn.html" title="trait object_store::layers::mock::DeleteDyn">DeleteDyn</a>></h4></section><section id="associatedtype.Lister-3" class="associatedtype trait-impl"><a href="#associatedtype.Lister-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Lister" class="associatedtype">Lister</a> = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn ListDyn></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Access-for-L" class="impl"><a href="#impl-Access-for-L" class="anchor">§</a><h3 class="code-header">impl<L> <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a> for L<div class="where">where
|
||||
L: <a class="trait" href="trait.LayeredAccess.html" title="trait object_store::layers::mock::LayeredAccess">LayeredAccess</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Reader-4" class="associatedtype trait-impl"><a href="#associatedtype.Reader-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = <L as <a class="trait" href="trait.LayeredAccess.html" title="trait object_store::layers::mock::LayeredAccess">LayeredAccess</a>>::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.Reader" title="type object_store::layers::mock::LayeredAccess::Reader">Reader</a></h4></section><section id="associatedtype.Writer-4" class="associatedtype trait-impl"><a href="#associatedtype.Writer-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Writer" class="associatedtype">Writer</a> = <L as <a class="trait" href="trait.LayeredAccess.html" title="trait object_store::layers::mock::LayeredAccess">LayeredAccess</a>>::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.Writer" title="type object_store::layers::mock::LayeredAccess::Writer">Writer</a></h4></section><section id="associatedtype.Lister-4" class="associatedtype trait-impl"><a href="#associatedtype.Lister-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Lister" class="associatedtype">Lister</a> = <L as <a class="trait" href="trait.LayeredAccess.html" title="trait object_store::layers::mock::LayeredAccess">LayeredAccess</a>>::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.Lister" title="type object_store::layers::mock::LayeredAccess::Lister">Lister</a></h4></section><section id="associatedtype.Deleter-4" class="associatedtype trait-impl"><a href="#associatedtype.Deleter-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Deleter" class="associatedtype">Deleter</a> = <L as <a class="trait" href="trait.LayeredAccess.html" title="trait object_store::layers::mock::LayeredAccess">LayeredAccess</a>>::<a class="associatedtype" href="trait.LayeredAccess.html#associatedtype.Deleter" title="type object_store::layers::mock::LayeredAccess::Deleter">Deleter</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Access-for-Backend%3CS%3E" class="impl"><a href="#impl-Access-for-Backend%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a> for Backend<S><div class="where">where
|
||||
S: Adapter,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Reader-5" class="associatedtype trait-impl"><a href="#associatedtype.Reader-5" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a></h4></section><section id="associatedtype.Writer-5" class="associatedtype trait-impl"><a href="#associatedtype.Writer-5" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Writer" class="associatedtype">Writer</a> = KvWriter<S></h4></section><section id="associatedtype.Lister-5" class="associatedtype trait-impl"><a href="#associatedtype.Lister-5" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Lister" class="associatedtype">Lister</a> = <a class="struct" href="struct.HierarchyLister.html" title="struct object_store::layers::mock::HierarchyLister">HierarchyLister</a><KvLister<<S as Adapter>::Scanner>></h4></section><section id="associatedtype.Deleter-5" class="associatedtype trait-impl"><a href="#associatedtype.Deleter-5" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Deleter" class="associatedtype">Deleter</a> = <a class="struct" href="struct.OneShotDeleter.html" title="struct object_store::layers::mock::OneShotDeleter">OneShotDeleter</a><KvDeleter<S>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Access-for-Backend%3CS%3E-1" class="impl"><a href="#impl-Access-for-Backend%3CS%3E-1" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a> for Backend<S><div class="where">where
|
||||
S: Adapter,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Reader-6" class="associatedtype trait-impl"><a href="#associatedtype.Reader-6" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a></h4></section><section id="associatedtype.Writer-6" class="associatedtype trait-impl"><a href="#associatedtype.Writer-6" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Writer" class="associatedtype">Writer</a> = KvWriter<S></h4></section><section id="associatedtype.Lister-6" class="associatedtype trait-impl"><a href="#associatedtype.Lister-6" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Lister" class="associatedtype">Lister</a> = <a class="struct" href="struct.HierarchyLister.html" title="struct object_store::layers::mock::HierarchyLister">HierarchyLister</a><KvLister></h4></section><section id="associatedtype.Deleter-6" class="associatedtype trait-impl"><a href="#associatedtype.Deleter-6" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Deleter" class="associatedtype">Deleter</a> = <a class="struct" href="struct.OneShotDeleter.html" title="struct object_store::layers::mock::OneShotDeleter">OneShotDeleter</a><KvDeleter<S>></h4></section></div></details></div><script src="../../../trait.impl/opendal/raw/accessor/trait.Access.js" data-ignore-extern-crates="opendal,std,alloc" async></script></section></div></main></body></html>
|
||||
37
object_store/layers/mock/trait.AppendWrite.html
Normal file
37
object_store/layers/mock/trait.AppendWrite.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="AppendWrite is used to implement `oio::Write` based on append object. By implementing AppendWrite, services don’t need to care about the details of buffering and uploading parts."><title>AppendWrite in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">AppendWrite</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Append<wbr>Write</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#requirements" title="Requirements">Requirements</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.append" title="append">append</a></li><li><a href="#tymethod.offset" title="offset">offset</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">Append<wbr>Write</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait AppendWrite:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.offset" class="fn">offset</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.append" class="fn">append</a>(
|
||||
&self,
|
||||
offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>AppendWrite is used to implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on append
|
||||
object. By implementing AppendWrite, services don’t need to
|
||||
care about the details of buffering and uploading parts.</p>
|
||||
<p>The layout after adopting <a href="trait.AppendWrite.html" title="trait object_store::layers::mock::AppendWrite"><code>AppendWrite</code></a>:</p>
|
||||
<ul>
|
||||
<li>Services impl <code>AppendWrite</code></li>
|
||||
<li><code>AppendWriter</code> impl <code>Write</code></li>
|
||||
<li>Expose <code>AppendWriter</code> as <code>Accessor::Writer</code></li>
|
||||
</ul>
|
||||
<h3 id="requirements"><a class="doc-anchor" href="#requirements">§</a>Requirements</h3>
|
||||
<p>Services that implement <code>AppendWrite</code> must fulfill the following requirements:</p>
|
||||
<ul>
|
||||
<li>Must be a http service that could accept <code>AsyncBody</code>.</li>
|
||||
<li>Provide a way to get the current offset of the append object.</li>
|
||||
</ul>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.offset" class="method"><h4 class="code-header">fn <a href="#tymethod.offset" class="fn">offset</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Get the current offset of the append object.</p>
|
||||
<p>Returns <code>0</code> if the object is not exist.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.append" class="method"><h4 class="code-header">fn <a href="#tymethod.append" class="fn">append</a>(
|
||||
&self,
|
||||
offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Append the data to the end of this object.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../trait.impl/opendal/raw/oio/write/append_write/trait.AppendWrite.js" async></script></section></div></main></body></html>
|
||||
33
object_store/layers/mock/trait.BatchDelete.html
Normal file
33
object_store/layers/mock/trait.BatchDelete.html
Normal file
@@ -0,0 +1,33 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BatchDelete is used to implement `oio::Delete` based on batch delete operation."><title>BatchDelete in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">BatchDelete</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Batch<wbr>Delete</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.delete_batch" title="delete_batch">delete_batch</a></li><li><a href="#tymethod.delete_once" title="delete_once">delete_once</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">Batch<wbr>Delete</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait BatchDelete:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.delete_once" class="fn">delete_once</a>(
|
||||
&self,
|
||||
path: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||||
args: <a class="struct" href="struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.delete_batch" class="fn">delete_batch</a>(
|
||||
&self,
|
||||
batch: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>)>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.BatchDeleteResult.html" title="struct object_store::layers::mock::BatchDeleteResult">BatchDeleteResult</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BatchDelete is used to implement <a href="trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>oio::Delete</code></a> based on batch delete operation.</p>
|
||||
<p>OneShotDeleter will perform delete operation while calling <code>flush</code>.</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.delete_once" class="method"><h4 class="code-header">fn <a href="#tymethod.delete_once" class="fn">delete_once</a>(
|
||||
&self,
|
||||
path: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||||
args: <a class="struct" href="struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>delete_once delete one path at once.</p>
|
||||
<p>Implementations should make sure that the data is deleted correctly at once.</p>
|
||||
<p>BatchDeleter may call this method while there are only one path to delete.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.delete_batch" class="method"><h4 class="code-header">fn <a href="#tymethod.delete_batch" class="fn">delete_batch</a>(
|
||||
&self,
|
||||
batch: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>)>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.BatchDeleteResult.html" title="struct object_store::layers::mock::BatchDeleteResult">BatchDeleteResult</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>delete_batch delete multiple paths at once.</p>
|
||||
<ul>
|
||||
<li>Implementations should make sure that the length of <code>batch</code> equals to the return result’s length.</li>
|
||||
<li>Implementations should return error no path is deleted.</li>
|
||||
</ul>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../trait.impl/opendal/raw/oio/delete/batch_delete/trait.BatchDelete.js" async></script></section></div></main></body></html>
|
||||
78
object_store/layers/mock/trait.BlockWrite.html
Normal file
78
object_store/layers/mock/trait.BlockWrite.html
Normal file
@@ -0,0 +1,78 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockWrite is used to implement `oio::Write` based on block uploads. By implementing BlockWrite, services don’t need to care about the details of uploading blocks."><title>BlockWrite in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">BlockWrite</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Block<wbr>Write</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#architecture" title="Architecture">Architecture</a></li><li><a href="#notes" title="Notes">Notes</a></li><li><a href="#requirements" title="Requirements">Requirements</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.abort_block" title="abort_block">abort_block</a></li><li><a href="#tymethod.complete_block" title="complete_block">complete_block</a></li><li><a href="#tymethod.write_block" title="write_block">write_block</a></li><li><a href="#tymethod.write_once" title="write_once">write_once</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">Block<wbr>Write</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait BlockWrite:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.write_once" class="fn">write_once</a>(
|
||||
&self,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.write_block" class="fn">write_block</a>(
|
||||
&self,
|
||||
block_id: <a class="struct" href="https://docs.rs/uuid/1.21.0/uuid/struct.Uuid.html" title="struct uuid::Uuid">Uuid</a>,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.complete_block" class="fn">complete_block</a>(
|
||||
&self,
|
||||
block_ids: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://docs.rs/uuid/1.21.0/uuid/struct.Uuid.html" title="struct uuid::Uuid">Uuid</a>>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.abort_block" class="fn">abort_block</a>(
|
||||
&self,
|
||||
block_ids: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://docs.rs/uuid/1.21.0/uuid/struct.Uuid.html" title="struct uuid::Uuid">Uuid</a>>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BlockWrite is used to implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on block
|
||||
uploads. By implementing BlockWrite, services don’t need to
|
||||
care about the details of uploading blocks.</p>
|
||||
<h2 id="architecture"><a class="doc-anchor" href="#architecture">§</a>Architecture</h2>
|
||||
<p>The architecture after adopting <a href="trait.BlockWrite.html" title="trait object_store::layers::mock::BlockWrite"><code>BlockWrite</code></a>:</p>
|
||||
<ul>
|
||||
<li>Services impl <code>BlockWrite</code></li>
|
||||
<li><code>BlockWriter</code> impl <code>Write</code></li>
|
||||
<li>Expose <code>BlockWriter</code> as <code>Accessor::Writer</code></li>
|
||||
</ul>
|
||||
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2>
|
||||
<p><code>BlockWrite</code> has an oneshot optimization when <code>write</code> has been called only once:</p>
|
||||
<div class="example-wrap"><pre class="language-no_build"><code>w.write(bs).await?;
|
||||
w.close().await?;</code></pre></div>
|
||||
<p>We will use <code>write_once</code> instead of starting a new block upload.</p>
|
||||
<h2 id="requirements"><a class="doc-anchor" href="#requirements">§</a>Requirements</h2>
|
||||
<p>Services that implement <code>BlockWrite</code> must fulfill the following requirements:</p>
|
||||
<ul>
|
||||
<li>Must be a http service that could accept <code>AsyncBody</code>.</li>
|
||||
<li>Don’t need initialization before writing.</li>
|
||||
<li>Block ID is generated by caller <code>BlockWrite</code> instead of services.</li>
|
||||
<li>Complete block by an ordered block id list.</li>
|
||||
</ul>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.write_once" class="method"><h4 class="code-header">fn <a href="#tymethod.write_once" class="fn">write_once</a>(
|
||||
&self,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>write_once is used to write the data to underlying storage at once.</p>
|
||||
<p>BlockWriter will call this API when:</p>
|
||||
<ul>
|
||||
<li>All the data has been written to the buffer and we can perform the upload at once.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.write_block" class="method"><h4 class="code-header">fn <a href="#tymethod.write_block" class="fn">write_block</a>(
|
||||
&self,
|
||||
block_id: <a class="struct" href="https://docs.rs/uuid/1.21.0/uuid/struct.Uuid.html" title="struct uuid::Uuid">Uuid</a>,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>write_block will write a block of the data.</p>
|
||||
<p>BlockWriter will call this API and stores the result in
|
||||
order.</p>
|
||||
<ul>
|
||||
<li>block_id is the id of the block.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.complete_block" class="method"><h4 class="code-header">fn <a href="#tymethod.complete_block" class="fn">complete_block</a>(
|
||||
&self,
|
||||
block_ids: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://docs.rs/uuid/1.21.0/uuid/struct.Uuid.html" title="struct uuid::Uuid">Uuid</a>>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>complete_block will complete the block upload to build the final
|
||||
file.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.abort_block" class="method"><h4 class="code-header">fn <a href="#tymethod.abort_block" class="fn">abort_block</a>(
|
||||
&self,
|
||||
block_ids: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://docs.rs/uuid/1.21.0/uuid/struct.Uuid.html" title="struct uuid::Uuid">Uuid</a>>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>abort_block will cancel the block upload and purge all data.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../trait.impl/opendal/raw/oio/write/block_write/trait.BlockWrite.js" async></script></section></div></main></body></html>
|
||||
40
object_store/layers/mock/trait.Delete.html
Normal file
40
object_store/layers/mock/trait.Delete.html
Normal file
@@ -0,0 +1,40 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The Delete trait defines interfaces for performing deletion operations."><title>Delete in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Delete</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Delete</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.delete" title="delete">delete</a></li><li><a href="#tymethod.flush" title="flush">flush</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-Delete-for-()" title="()">()</a></li><li><a href="#impl-Delete-for-Box%3CT%3E" title="Box<T>">Box<T></a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">Delete</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait Delete:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.delete" class="fn">delete</a>(&mut self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.flush" class="fn">flush</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The Delete trait defines interfaces for performing deletion operations.</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.delete" class="method"><h4 class="code-header">fn <a href="#tymethod.delete" class="fn">delete</a>(&mut self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></summary><div class="docblock"><p>Requests deletion of a resource at the specified path with optional arguments</p>
|
||||
<h5 id="parameters"><a class="doc-anchor" href="#parameters">§</a>Parameters</h5>
|
||||
<ul>
|
||||
<li><code>path</code>: The path of the resource to delete</li>
|
||||
<li><code>args</code>: Additional arguments for the delete operation</li>
|
||||
</ul>
|
||||
<h5 id="returns"><a class="doc-anchor" href="#returns">§</a>Returns</h5>
|
||||
<ul>
|
||||
<li><code>Ok(())</code>: The deletion request has been successfully queued (does not guarantee actual deletion)</li>
|
||||
<li><code>Err(err)</code>: An error occurred and the deletion request was not queued</li>
|
||||
</ul>
|
||||
<h5 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h5>
|
||||
<p>This method just queue the delete request. The actual deletion will be
|
||||
performed when <code>flush</code> is called.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.flush" class="method"><h4 class="code-header">fn <a href="#tymethod.flush" class="fn">flush</a>(&mut self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Flushes the deletion queue to ensure queued deletions are executed</p>
|
||||
<h5 id="returns-1"><a class="doc-anchor" href="#returns-1">§</a>Returns</h5>
|
||||
<ul>
|
||||
<li><code>Ok(0)</code>: All queued deletions have been processed or the queue is empty.</li>
|
||||
<li><code>Ok(count)</code>: The number of resources successfully deleted. Implementations should
|
||||
return an error if the queue is non-empty but no resources were deleted</li>
|
||||
<li><code>Err(err)</code>: An error occurred while performing the deletions</li>
|
||||
</ul>
|
||||
<h5 id="notes-1"><a class="doc-anchor" href="#notes-1">§</a>Notes</h5>
|
||||
<ul>
|
||||
<li>This method is asynchronous and will wait for queued deletions to complete</li>
|
||||
</ul>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Delete-for-()" class="impl"><a href="#impl-Delete-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h3></section></summary><div class="impl-items"><section id="method.delete" class="method trait-impl"><a href="#method.delete" class="anchor">§</a><h4 class="code-header">fn <a class="fn">delete</a>(&mut self, _: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, _: <a class="struct" href="struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.flush" class="method trait-impl"><a href="#method.flush" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">flush</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Delete-for-Box%3CT%3E" class="impl"><a href="#impl-Delete-for-Box%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><T><div class="where">where
|
||||
T: <a class="trait" href="trait.DeleteDyn.html" title="trait object_store::layers::mock::DeleteDyn">DeleteDyn</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><section id="method.delete-1" class="method trait-impl"><a href="#method.delete-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">delete</a>(&mut self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.flush-1" class="method trait-impl"><a href="#method.flush-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">flush</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-Delete-for-MockDeleter" class="impl"><a class="src rightside" href="../../../src/object_store/layers/mock.rs.html#133-141">Source</a><a href="#impl-Delete-for-MockDeleter" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a> for <a class="struct" href="struct.MockDeleter.html" title="struct object_store::layers::mock::MockDeleter">MockDeleter</a></h3></section><section id="impl-Delete-for-BatchDeleter%3CD%3E" class="impl"><a href="#impl-Delete-for-BatchDeleter%3CD%3E" class="anchor">§</a><h3 class="code-header">impl<D> <a class="trait" href="trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a> for <a class="struct" href="struct.BatchDeleter.html" title="struct object_store::layers::mock::BatchDeleter">BatchDeleter</a><D><div class="where">where
|
||||
D: <a class="trait" href="trait.BatchDelete.html" title="trait object_store::layers::mock::BatchDelete">BatchDelete</a>,</div></h3></section><section id="impl-Delete-for-OneShotDeleter%3CD%3E" class="impl"><a href="#impl-Delete-for-OneShotDeleter%3CD%3E" class="anchor">§</a><h3 class="code-header">impl<D> <a class="trait" href="trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a> for <a class="struct" href="struct.OneShotDeleter.html" title="struct object_store::layers::mock::OneShotDeleter">OneShotDeleter</a><D><div class="where">where
|
||||
D: <a class="trait" href="trait.OneShotDelete.html" title="trait object_store::layers::mock::OneShotDelete">OneShotDelete</a>,</div></h3></section></div><script src="../../../trait.impl/opendal/raw/oio/delete/api/trait.Delete.js" data-ignore-extern-crates="std,alloc,opendal" async></script></section></div></main></body></html>
|
||||
16
object_store/layers/mock/trait.DeleteDyn.html
Normal file
16
object_store/layers/mock/trait.DeleteDyn.html
Normal file
@@ -0,0 +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="The dyn version of `Delete`"><title>DeleteDyn in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">DeleteDyn</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Delete<wbr>Dyn</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.delete_dyn" title="delete_dyn">delete_dyn</a></li><li><a href="#tymethod.flush_dyn" title="flush_dyn">flush_dyn</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">Delete<wbr>Dyn</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait DeleteDyn:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.delete_dyn" class="fn">delete_dyn</a>(&mut self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.flush_dyn" class="fn">flush_dyn</a>(
|
||||
&mut self,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + '_>>;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The dyn version of <a href="trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>Delete</code></a></p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.delete_dyn" class="method"><h4 class="code-header">fn <a href="#tymethod.delete_dyn" class="fn">delete_dyn</a>(&mut self, path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, args: <a class="struct" href="struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></summary><div class="docblock"><p>The dyn version of <a href="trait.Delete.html#tymethod.delete" title="method object_store::layers::mock::Delete::delete"><code>Delete::delete</code></a></p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.flush_dyn" class="method"><h4 class="code-header">fn <a href="#tymethod.flush_dyn" class="fn">flush_dyn</a>(
|
||||
&mut self,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + '_>></h4></section></summary><div class="docblock"><p>The dyn version of <a href="trait.Delete.html#tymethod.flush" title="method object_store::layers::mock::Delete::flush"><code>Delete::flush</code></a></p>
|
||||
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-DeleteDyn-for-T" class="impl"><a href="#impl-DeleteDyn-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="trait.DeleteDyn.html" title="trait object_store::layers::mock::DeleteDyn">DeleteDyn</a> for T<div class="where">where
|
||||
T: <a class="trait" href="trait.Delete.html" title="trait object_store::layers::mock::Delete">Delete</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></div><script src="../../../trait.impl/opendal/raw/oio/delete/api/trait.DeleteDyn.js" async></script></section></div></main></body></html>
|
||||
82
object_store/layers/mock/trait.Layer.html
Normal file
82
object_store/layers/mock/trait.Layer.html
Normal file
@@ -0,0 +1,82 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Layer is used to intercept the operations on the underlying storage."><title>Layer in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Layer</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Layer</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#notes" title="Notes">Notes</a><ul><li><a href="#inner" title="Inner">Inner</a></li></ul></li><li><a href="#examples" title="Examples">Examples</a></li></ul><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.LayeredAccess" title="LayeredAccess">LayeredAccess</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.layer" title="layer">layer</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">Layer</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait Layer<A><div class="where">where
|
||||
A: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>,</div>{
|
||||
type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a>: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>;
|
||||
|
||||
// Required method
|
||||
fn <a href="#tymethod.layer" class="fn">layer</a>(&self, inner: A) -> Self::<a class="associatedtype" href="trait.Layer.html#associatedtype.LayeredAccess" title="type object_store::layers::mock::Layer::LayeredAccess">LayeredAccess</a>;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Layer is used to intercept the operations on the underlying storage.</p>
|
||||
<p>Struct that implement this trait must accept input <code>Arc<dyn Accessor></code> as inner,
|
||||
and returns a new <code>Arc<dyn Accessor></code> as output.</p>
|
||||
<p>All functions in <code>Accessor</code> requires <code>&self</code>, so it’s implementer’s responsibility
|
||||
to maintain the internal mutability. Please also keep in mind that <code>Accessor</code>
|
||||
requires <code>Send</code> and <code>Sync</code>.</p>
|
||||
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2><h3 id="inner"><a class="doc-anchor" href="#inner">§</a>Inner</h3>
|
||||
<p>It’s required to implement <code>fn inner() -> Option<Arc<dyn Accessor>></code> for layer’s accessors.</p>
|
||||
<p>By implement this method, all API calls will be forwarded to inner accessor instead.</p>
|
||||
<h2 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h2>
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::sync::Arc;
|
||||
|
||||
<span class="kw">use </span>opendal::raw::<span class="kw-2">*</span>;
|
||||
<span class="kw">use </span>opendal::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="doccomment">/// Implement the real accessor logic here.
|
||||
</span><span class="attr">#[derive(Debug)]
|
||||
</span><span class="kw">struct </span>TraceAccessor<A: Access> {
|
||||
inner: A,
|
||||
}
|
||||
|
||||
<span class="kw">impl</span><A: Access> LayeredAccess <span class="kw">for </span>TraceAccessor<A> {
|
||||
<span class="kw">type </span>Inner = A;
|
||||
<span class="kw">type </span>Reader = A::Reader;
|
||||
<span class="kw">type </span>Writer = A::Writer;
|
||||
<span class="kw">type </span>Lister = A::Lister;
|
||||
<span class="kw">type </span>Deleter = A::Deleter;
|
||||
|
||||
<span class="kw">fn </span>inner(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span><span class="self">Self</span>::Inner {
|
||||
<span class="kw-2">&</span><span class="self">self</span>.inner
|
||||
}
|
||||
|
||||
<span class="kw">async fn </span>read(<span class="kw-2">&</span><span class="self">self</span>, path: <span class="kw-2">&</span>str, args: OpRead) -> <span class="prelude-ty">Result</span><(RpRead, <span class="self">Self</span>::Reader)> {
|
||||
<span class="self">self</span>.inner.read(path, args).<span class="kw">await
|
||||
</span>}
|
||||
|
||||
<span class="kw">async fn </span>write(<span class="kw-2">&</span><span class="self">self</span>, path: <span class="kw-2">&</span>str, args: OpWrite) -> <span class="prelude-ty">Result</span><(RpWrite, <span class="self">Self</span>::Writer)> {
|
||||
<span class="self">self</span>.inner.write(path, args).<span class="kw">await
|
||||
</span>}
|
||||
|
||||
<span class="kw">async fn </span>list(<span class="kw-2">&</span><span class="self">self</span>, path: <span class="kw-2">&</span>str, args: OpList) -> <span class="prelude-ty">Result</span><(RpList, <span class="self">Self</span>::Lister)> {
|
||||
<span class="self">self</span>.inner.list(path, args).<span class="kw">await
|
||||
</span>}
|
||||
|
||||
<span class="kw">async fn </span>delete(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Result</span><(RpDelete, <span class="self">Self</span>::Deleter)> {
|
||||
<span class="self">self</span>.inner.delete().<span class="kw">await
|
||||
</span>}
|
||||
}
|
||||
|
||||
<span class="doccomment">/// The public struct that exposed to users.
|
||||
///
|
||||
/// Will be used like `op.layer(TraceLayer)`
|
||||
</span><span class="kw">struct </span>TraceLayer;
|
||||
|
||||
<span class="kw">impl</span><A: Access> Layer<A> <span class="kw">for </span>TraceLayer {
|
||||
<span class="kw">type </span>LayeredAccess = TraceAccessor<A>;
|
||||
|
||||
<span class="kw">fn </span>layer(<span class="kw-2">&</span><span class="self">self</span>, inner: A) -> <span class="self">Self</span>::LayeredAccess {
|
||||
TraceAccessor { inner }
|
||||
}
|
||||
}</code></pre></div></div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.LayeredAccess" class="method"><h4 class="code-header">type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a>: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a></h4></section></summary><div class="docblock"><p>The layered accessor that returned by this layer.</p>
|
||||
</div></details></div><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.layer" class="method"><h4 class="code-header">fn <a href="#tymethod.layer" class="fn">layer</a>(&self, inner: A) -> Self::<a class="associatedtype" href="trait.Layer.html#associatedtype.LayeredAccess" title="type object_store::layers::mock::Layer::LayeredAccess">LayeredAccess</a></h4></section></summary><div class="docblock"><p>Intercept the operations on the underlying storage.</p>
|
||||
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-CapabilityCheckLayer" class="impl"><a href="#impl-Layer%3CA%3E-for-CapabilityCheckLayer" class="anchor">§</a><h3 class="code-header">impl<A> <a class="trait" href="trait.Layer.html" title="trait object_store::layers::mock::Layer">Layer</a><A> for <a class="struct" href="../struct.CapabilityCheckLayer.html" title="struct object_store::layers::CapabilityCheckLayer">CapabilityCheckLayer</a><div class="where">where
|
||||
A: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.LayeredAccess-1" class="associatedtype trait-impl"><a href="#associatedtype.LayeredAccess-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a> = CapabilityAccessor<A></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-ConcurrentLimitLayer" class="impl"><a href="#impl-Layer%3CA%3E-for-ConcurrentLimitLayer" class="anchor">§</a><h3 class="code-header">impl<A> <a class="trait" href="trait.Layer.html" title="trait object_store::layers::mock::Layer">Layer</a><A> for <a class="struct" href="../struct.ConcurrentLimitLayer.html" title="struct object_store::layers::ConcurrentLimitLayer">ConcurrentLimitLayer</a><div class="where">where
|
||||
A: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.LayeredAccess-2" class="associatedtype trait-impl"><a href="#associatedtype.LayeredAccess-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a> = ConcurrentLimitAccessor<A></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-HttpClientLayer" class="impl"><a href="#impl-Layer%3CA%3E-for-HttpClientLayer" class="anchor">§</a><h3 class="code-header">impl<A> <a class="trait" href="trait.Layer.html" title="trait object_store::layers::mock::Layer">Layer</a><A> for <a class="struct" href="../struct.HttpClientLayer.html" title="struct object_store::layers::HttpClientLayer">HttpClientLayer</a><div class="where">where
|
||||
A: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.LayeredAccess-3" class="associatedtype trait-impl"><a href="#associatedtype.LayeredAccess-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a> = HttpClientAccessor<A></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-ImmutableIndexLayer" class="impl"><a href="#impl-Layer%3CA%3E-for-ImmutableIndexLayer" class="anchor">§</a><h3 class="code-header">impl<A> <a class="trait" href="trait.Layer.html" title="trait object_store::layers::mock::Layer">Layer</a><A> for <a class="struct" href="../struct.ImmutableIndexLayer.html" title="struct object_store::layers::ImmutableIndexLayer">ImmutableIndexLayer</a><div class="where">where
|
||||
A: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.LayeredAccess-4" class="associatedtype trait-impl"><a href="#associatedtype.LayeredAccess-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a> = ImmutableIndexAccessor<A></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-PrometheusLayer" class="impl"><a href="#impl-Layer%3CA%3E-for-PrometheusLayer" class="anchor">§</a><h3 class="code-header">impl<A> <a class="trait" href="trait.Layer.html" title="trait object_store::layers::mock::Layer">Layer</a><A> for <a class="struct" href="../struct.PrometheusLayer.html" title="struct object_store::layers::PrometheusLayer">PrometheusLayer</a><div class="where">where
|
||||
A: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.LayeredAccess-5" class="associatedtype trait-impl"><a href="#associatedtype.LayeredAccess-5" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a> = <a class="struct" href="../observe/struct.MetricsAccessor.html" title="struct object_store::layers::observe::MetricsAccessor">MetricsAccessor</a><A, PrometheusInterceptor></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-TimeoutLayer" class="impl"><a href="#impl-Layer%3CA%3E-for-TimeoutLayer" class="anchor">§</a><h3 class="code-header">impl<A> <a class="trait" href="trait.Layer.html" title="trait object_store::layers::mock::Layer">Layer</a><A> for <a class="struct" href="../struct.TimeoutLayer.html" title="struct object_store::layers::TimeoutLayer">TimeoutLayer</a><div class="where">where
|
||||
A: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.LayeredAccess-6" class="associatedtype trait-impl"><a href="#associatedtype.LayeredAccess-6" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a> = TimeoutAccessor<A></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-TracingLayer" class="impl"><a href="#impl-Layer%3CA%3E-for-TracingLayer" class="anchor">§</a><h3 class="code-header">impl<A> <a class="trait" href="trait.Layer.html" title="trait object_store::layers::mock::Layer">Layer</a><A> for <a class="struct" href="../struct.TracingLayer.html" title="struct object_store::layers::TracingLayer">TracingLayer</a><div class="where">where
|
||||
A: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.LayeredAccess-7" class="associatedtype trait-impl"><a href="#associatedtype.LayeredAccess-7" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a> = TracingAccessor<A></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-MetricsLayer%3CI%3E" class="impl"><a href="#impl-Layer%3CA%3E-for-MetricsLayer%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<A, I> <a class="trait" href="trait.Layer.html" title="trait object_store::layers::mock::Layer">Layer</a><A> for <a class="struct" href="../observe/struct.MetricsLayer.html" title="struct object_store::layers::observe::MetricsLayer">MetricsLayer</a><I><div class="where">where
|
||||
A: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>,
|
||||
I: <a class="trait" href="../observe/trait.MetricsIntercept.html" title="trait object_store::layers::observe::MetricsIntercept">MetricsIntercept</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.LayeredAccess-8" class="associatedtype trait-impl"><a href="#associatedtype.LayeredAccess-8" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a> = <a class="struct" href="../observe/struct.MetricsAccessor.html" title="struct object_store::layers::observe::MetricsAccessor">MetricsAccessor</a><A, I></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-LoggingLayer%3CI%3E" class="impl"><a href="#impl-Layer%3CA%3E-for-LoggingLayer%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<A, I> <a class="trait" href="trait.Layer.html" title="trait object_store::layers::mock::Layer">Layer</a><A> for <a class="struct" href="../struct.LoggingLayer.html" title="struct object_store::layers::LoggingLayer">LoggingLayer</a><I><div class="where">where
|
||||
A: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>,
|
||||
I: <a class="trait" href="../trait.LoggingInterceptor.html" title="trait object_store::layers::LoggingInterceptor">LoggingInterceptor</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.LayeredAccess-9" class="associatedtype trait-impl"><a href="#associatedtype.LayeredAccess-9" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a> = LoggingAccessor<A, I></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-RetryLayer%3CI%3E" class="impl"><a href="#impl-Layer%3CA%3E-for-RetryLayer%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<A, I> <a class="trait" href="trait.Layer.html" title="trait object_store::layers::mock::Layer">Layer</a><A> for <a class="struct" href="../struct.RetryLayer.html" title="struct object_store::layers::RetryLayer">RetryLayer</a><I><div class="where">where
|
||||
A: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>,
|
||||
I: <a class="trait" href="../trait.RetryInterceptor.html" title="trait object_store::layers::RetryInterceptor">RetryInterceptor</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.LayeredAccess-10" class="associatedtype trait-impl"><a href="#associatedtype.LayeredAccess-10" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a> = RetryAccessor<A, I></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-MockLayer" class="impl"><a class="src rightside" href="../../../src/object_store/layers/mock.rs.html#59-72">Source</a><a href="#impl-Layer%3CA%3E-for-MockLayer" class="anchor">§</a><h3 class="code-header">impl<A: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a>> <a class="trait" href="trait.Layer.html" title="trait object_store::layers::mock::Layer">Layer</a><A> for <a class="struct" href="struct.MockLayer.html" title="struct object_store::layers::mock::MockLayer">MockLayer</a></h3></section></summary><div class="impl-items"><section id="associatedtype.LayeredAccess-11" class="associatedtype trait-impl"><a class="src rightside" href="../../../src/object_store/layers/mock.rs.html#60">Source</a><a href="#associatedtype.LayeredAccess-11" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a> = <a class="struct" href="struct.MockAccessor.html" title="struct object_store::layers::mock::MockAccessor">MockAccessor</a><A></h4></section></div></details></div><script src="../../../trait.impl/opendal/raw/layer/trait.Layer.js" data-ignore-extern-crates="opendal" async></script></section></div></main></body></html>
|
||||
103
object_store/layers/mock/trait.LayeredAccess.html
Normal file
103
object_store/layers/mock/trait.LayeredAccess.html
Normal file
File diff suppressed because one or more lines are too long
31
object_store/layers/mock/trait.List.html
Normal file
31
object_store/layers/mock/trait.List.html
Normal file
@@ -0,0 +1,31 @@
|
||||
<!DOCTYPE html><html lang="en"><head><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 `raw::Accessor` to implement `list` operation."><title>List in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">List</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">List</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.next" title="next">next</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-List-for-()" title="()">()</a></li><li><a href="#impl-List-for-Box%3CT%3E" title="Box<T>">Box<T></a></li><li><a href="#impl-List-for-Option%3CP%3E" title="Option<P>">Option<P></a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">List</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait List:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
|
||||
// Required method
|
||||
fn <a href="#tymethod.next" class="fn">next</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.Entry.html" title="struct object_store::layers::mock::Entry">Entry</a>>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Page trait is used by [<code>raw::Accessor</code>] to implement <code>list</code> operation.</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.next" class="method"><h4 class="code-header">fn <a href="#tymethod.next" class="fn">next</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.Entry.html" title="struct object_store::layers::mock::Entry">Entry</a>>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Fetch a new page of <a href="struct.Entry.html" title="struct object_store::layers::mock::Entry"><code>Entry</code></a></p>
|
||||
<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="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-List-for-()" class="impl"><a href="#impl-List-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h3></section></summary><div class="impl-items"><section id="method.next" class="method trait-impl"><a href="#method.next" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">next</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.Entry.html" title="struct object_store::layers::mock::Entry">Entry</a>>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-List-for-Option%3CP%3E" class="impl"><a href="#impl-List-for-Option%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P> <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><P><div class="where">where
|
||||
P: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section></summary><div class="impl-items"><section id="method.next-1" class="method trait-impl"><a href="#method.next-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">next</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.Entry.html" title="struct object_store::layers::mock::Entry">Entry</a>>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-List-for-Box%3CT%3E" class="impl"><a href="#impl-List-for-Box%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><T><div class="where">where
|
||||
T: ListDyn + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><section id="method.next-2" class="method trait-impl"><a href="#method.next-2" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">next</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.Entry.html" title="struct object_store::layers::mock::Entry">Entry</a>>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-List-for-MockLister" class="impl"><a class="src rightside" href="../../../src/object_store/layers/mock.rs.html#123-127">Source</a><a href="#impl-List-for-MockLister" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="struct" href="struct.MockLister.html" title="struct object_store::layers::mock::MockLister">MockLister</a></h3></section><section id="impl-List-for-FlatLister%3CA,+L%3E" class="impl"><a href="#impl-List-for-FlatLister%3CA,+L%3E" class="anchor">§</a><h3 class="code-header">impl<A, L> <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="struct" href="struct.FlatLister.html" title="struct object_store::layers::mock::FlatLister">FlatLister</a><A, L><div class="where">where
|
||||
A: <a class="trait" href="../../trait.Access.html" title="trait object_store::Access">Access</a><Lister = L>,
|
||||
L: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section><section id="impl-List-for-PageLister%3CL%3E" class="impl"><a href="#impl-List-for-PageLister%3CL%3E" class="anchor">§</a><h3 class="code-header">impl<L> <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="struct" href="struct.PageLister.html" title="struct object_store::layers::mock::PageLister">PageLister</a><L><div class="where">where
|
||||
L: <a class="trait" href="trait.PageList.html" title="trait object_store::layers::mock::PageList">PageList</a>,</div></h3></section><section id="impl-List-for-PrefixLister%3CL%3E" class="impl"><a href="#impl-List-for-PrefixLister%3CL%3E" class="anchor">§</a><h3 class="code-header">impl<L> <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="struct" href="struct.PrefixLister.html" title="struct object_store::layers::mock::PrefixLister">PrefixLister</a><L><div class="where">where
|
||||
L: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section><section id="impl-List-for-TwoWays%3CONE,+TWO%3E" class="impl"><a href="#impl-List-for-TwoWays%3CONE,+TWO%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO> <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a> for TwoWays<ONE, TWO><div class="where">where
|
||||
ONE: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>,
|
||||
TWO: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section><section id="impl-List-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="impl"><a href="#impl-List-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO, THREE> <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a> for ThreeWays<ONE, TWO, THREE><div class="where">where
|
||||
ONE: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>,
|
||||
TWO: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>,
|
||||
THREE: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section><section id="impl-List-for-FourWays%3CONE,+TWO,+THREE,+FOUR%3E" class="impl"><a href="#impl-List-for-FourWays%3CONE,+TWO,+THREE,+FOUR%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO, THREE, FOUR> <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a> for FourWays<ONE, TWO, THREE, FOUR><div class="where">where
|
||||
ONE: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>,
|
||||
TWO: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>,
|
||||
THREE: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>,
|
||||
FOUR: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section><section id="impl-List-for-HierarchyLister%3CP%3E" class="impl"><a href="#impl-List-for-HierarchyLister%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P> <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a> for <a class="struct" href="struct.HierarchyLister.html" title="struct object_store::layers::mock::HierarchyLister">HierarchyLister</a><P><div class="where">where
|
||||
P: <a class="trait" href="trait.List.html" title="trait object_store::layers::mock::List">List</a>,</div></h3></section></div><script src="../../../trait.impl/opendal/raw/oio/list/api/trait.List.js" data-ignore-extern-crates="opendal,std,core,alloc" async></script></section></div></main></body></html>
|
||||
95
object_store/layers/mock/trait.MultipartWrite.html
Normal file
95
object_store/layers/mock/trait.MultipartWrite.html
Normal file
@@ -0,0 +1,95 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="MultipartWrite is used to implement `oio::Write` based on multipart uploads. By implementing MultipartWrite, services don’t need to care about the details of uploading parts."><title>MultipartWrite in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">MultipartWrite</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Multipart<wbr>Write</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#architecture" title="Architecture">Architecture</a></li><li><a href="#notes" title="Notes">Notes</a></li><li><a href="#requirements" title="Requirements">Requirements</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.abort_part" title="abort_part">abort_part</a></li><li><a href="#tymethod.complete_part" title="complete_part">complete_part</a></li><li><a href="#tymethod.initiate_part" title="initiate_part">initiate_part</a></li><li><a href="#tymethod.write_once" title="write_once">write_once</a></li><li><a href="#tymethod.write_part" title="write_part">write_part</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">Multipart<wbr>Write</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait MultipartWrite:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.write_once" class="fn">write_once</a>(
|
||||
&self,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.initiate_part" class="fn">initiate_part</a>(
|
||||
&self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.write_part" class="fn">write_part</a>(
|
||||
&self,
|
||||
upload_id: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
part_number: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.MultipartPart.html" title="struct object_store::layers::mock::MultipartPart">MultipartPart</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.complete_part" class="fn">complete_part</a>(
|
||||
&self,
|
||||
upload_id: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
parts: &[<a class="struct" href="struct.MultipartPart.html" title="struct object_store::layers::mock::MultipartPart">MultipartPart</a>],
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.abort_part" class="fn">abort_part</a>(
|
||||
&self,
|
||||
upload_id: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>MultipartWrite is used to implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on multipart
|
||||
uploads. By implementing MultipartWrite, services don’t need to
|
||||
care about the details of uploading parts.</p>
|
||||
<h2 id="architecture"><a class="doc-anchor" href="#architecture">§</a>Architecture</h2>
|
||||
<p>The architecture after adopting <a href="trait.MultipartWrite.html" title="trait object_store::layers::mock::MultipartWrite"><code>MultipartWrite</code></a>:</p>
|
||||
<ul>
|
||||
<li>Services impl <code>MultipartWrite</code></li>
|
||||
<li><code>MultipartWriter</code> impl <code>Write</code></li>
|
||||
<li>Expose <code>MultipartWriter</code> as <code>Accessor::Writer</code></li>
|
||||
</ul>
|
||||
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2>
|
||||
<p><code>MultipartWrite</code> has an oneshot optimization when <code>write</code> has been called only once:</p>
|
||||
<div class="example-wrap"><pre class="language-no_build"><code>w.write(bs).await?;
|
||||
w.close().await?;</code></pre></div>
|
||||
<p>We will use <code>write_once</code> instead of starting a new multipart upload.</p>
|
||||
<h2 id="requirements"><a class="doc-anchor" href="#requirements">§</a>Requirements</h2>
|
||||
<p>Services that implement <code>BlockWrite</code> must fulfill the following requirements:</p>
|
||||
<ul>
|
||||
<li>Must be a http service that could accept <code>AsyncBody</code>.</li>
|
||||
<li>Don’t need initialization before writing.</li>
|
||||
<li>Block ID is generated by caller <code>BlockWrite</code> instead of services.</li>
|
||||
<li>Complete block by an ordered block id list.</li>
|
||||
</ul>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.write_once" class="method"><h4 class="code-header">fn <a href="#tymethod.write_once" class="fn">write_once</a>(
|
||||
&self,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>write_once is used to write the data to underlying storage at once.</p>
|
||||
<p>MultipartWriter will call this API when:</p>
|
||||
<ul>
|
||||
<li>All the data has been written to the buffer and we can perform the upload at once.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.initiate_part" class="method"><h4 class="code-header">fn <a href="#tymethod.initiate_part" class="fn">initiate_part</a>(
|
||||
&self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>initiate_part will call start a multipart upload and return the upload id.</p>
|
||||
<p>MultipartWriter will call this when:</p>
|
||||
<ul>
|
||||
<li>the total size of data is unknown.</li>
|
||||
<li>the total size of data is known, but the size of current write
|
||||
is less than the total size.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.write_part" class="method"><h4 class="code-header">fn <a href="#tymethod.write_part" class="fn">write_part</a>(
|
||||
&self,
|
||||
upload_id: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
part_number: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
|
||||
size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
body: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.MultipartPart.html" title="struct object_store::layers::mock::MultipartPart">MultipartPart</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>write_part will write a part of the data and returns the result
|
||||
<a href="struct.MultipartPart.html" title="struct object_store::layers::mock::MultipartPart"><code>MultipartPart</code></a>.</p>
|
||||
<p>MultipartWriter will call this API and stores the result in
|
||||
order.</p>
|
||||
<ul>
|
||||
<li>part_number is the index of the part, starting from 0.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.complete_part" class="method"><h4 class="code-header">fn <a href="#tymethod.complete_part" class="fn">complete_part</a>(
|
||||
&self,
|
||||
upload_id: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
parts: &[<a class="struct" href="struct.MultipartPart.html" title="struct object_store::layers::mock::MultipartPart">MultipartPart</a>],
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>complete_part will complete the multipart upload to build the final
|
||||
file.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.abort_part" class="method"><h4 class="code-header">fn <a href="#tymethod.abort_part" class="fn">abort_part</a>(
|
||||
&self,
|
||||
upload_id: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>abort_part will cancel the multipart upload and purge all data.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../trait.impl/opendal/raw/oio/write/multipart_write/trait.MultipartWrite.js" async></script></section></div></main></body></html>
|
||||
20
object_store/layers/mock/trait.OneShotDelete.html
Normal file
20
object_store/layers/mock/trait.OneShotDelete.html
Normal file
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OneShotDelete is used to implement `oio::Delete` based on one shot operation."><title>OneShotDelete in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">OneShotDelete</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">OneShot<wbr>Delete</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.delete_once" title="delete_once">delete_once</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">OneShot<wbr>Delete</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait OneShotDelete:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required method
|
||||
fn <a href="#tymethod.delete_once" class="fn">delete_once</a>(
|
||||
&self,
|
||||
path: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||||
args: <a class="struct" href="struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>OneShotDelete is used to implement <a href="trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>oio::Delete</code></a> based on one shot operation.</p>
|
||||
<p>OneShotDeleter will perform delete operation while calling <code>flush</code>.</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.delete_once" class="method"><h4 class="code-header">fn <a href="#tymethod.delete_once" class="fn">delete_once</a>(
|
||||
&self,
|
||||
path: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||||
args: <a class="struct" href="struct.OpDelete.html" title="struct object_store::layers::mock::OpDelete">OpDelete</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>delete_once delete one path at once.</p>
|
||||
<p>Implementations should make sure that the data is deleted correctly at once.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../trait.impl/opendal/raw/oio/delete/one_shot_delete/trait.OneShotDelete.js" async></script></section></div></main></body></html>
|
||||
20
object_store/layers/mock/trait.OneShotWrite.html
Normal file
20
object_store/layers/mock/trait.OneShotWrite.html
Normal file
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OneShotWrite is used to implement `oio::Write` based on one shot operation. By implementing OneShotWrite, services don’t need to care about the details."><title>OneShotWrite in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">OneShotWrite</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">OneShot<wbr>Write</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.write_once" title="write_once">write_once</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">OneShot<wbr>Write</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait OneShotWrite:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required method
|
||||
fn <a href="#tymethod.write_once" class="fn">write_once</a>(
|
||||
&self,
|
||||
bs: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>OneShotWrite is used to implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on one shot operation.
|
||||
By implementing OneShotWrite, services don’t need to care about the details.</p>
|
||||
<p>For example, S3 <code>PUT Object</code> and fs <code>write_all</code>.</p>
|
||||
<p>The layout after adopting <a href="trait.OneShotWrite.html" title="trait object_store::layers::mock::OneShotWrite"><code>OneShotWrite</code></a>:</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.write_once" class="method"><h4 class="code-header">fn <a href="#tymethod.write_once" class="fn">write_once</a>(
|
||||
&self,
|
||||
bs: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>write_once write all data at once.</p>
|
||||
<p>Implementations should make sure that the data is written correctly at once.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../trait.impl/opendal/raw/oio/write/one_shot_write/trait.OneShotWrite.js" async></script></section></div></main></body></html>
|
||||
24
object_store/layers/mock/trait.PageList.html
Normal file
24
object_store/layers/mock/trait.PageList.html
Normal file
@@ -0,0 +1,24 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PageList is used to implement `oio::List` based on API supporting pagination. By implementing PageList, services don’t need to care about the details of page list."><title>PageList in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">PageList</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Page<wbr>List</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#architecture" title="Architecture">Architecture</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.next_page" title="next_page">next_page</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">Page<wbr>List</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait PageList:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required method
|
||||
fn <a href="#tymethod.next_page" class="fn">next_page</a>(
|
||||
&self,
|
||||
ctx: &mut <a class="struct" href="struct.PageContext.html" title="struct object_store::layers::mock::PageContext">PageContext</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>PageList is used to implement <a href="trait.List.html" title="trait object_store::layers::mock::List"><code>oio::List</code></a> based on API supporting pagination. By implementing
|
||||
PageList, services don’t need to care about the details of page list.</p>
|
||||
<h2 id="architecture"><a class="doc-anchor" href="#architecture">§</a>Architecture</h2>
|
||||
<p>The architecture after adopting <a href="trait.PageList.html" title="trait object_store::layers::mock::PageList"><code>PageList</code></a>:</p>
|
||||
<ul>
|
||||
<li>Services impl <code>PageList</code></li>
|
||||
<li><code>PageLister</code> impl <code>List</code></li>
|
||||
<li>Expose <code>PageLister</code> as <code>Accessor::Lister</code></li>
|
||||
</ul>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.next_page" class="method"><h4 class="code-header">fn <a href="#tymethod.next_page" class="fn">next_page</a>(
|
||||
&self,
|
||||
ctx: &mut <a class="struct" href="struct.PageContext.html" title="struct object_store::layers::mock::PageContext">PageContext</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>next_page is used to fetch next page of entries from underlying storage.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../trait.impl/opendal/raw/oio/list/page_list/trait.PageList.js" async></script></section></div></main></body></html>
|
||||
36
object_store/layers/mock/trait.PositionWrite.html
Normal file
36
object_store/layers/mock/trait.PositionWrite.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PositionWrite is used to implement `oio::Write` based on position write."><title>PositionWrite in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">PositionWrite</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Position<wbr>Write</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#services" title="Services">Services</a></li><li><a href="#architecture" title="Architecture">Architecture</a></li><li><a href="#requirements" title="Requirements">Requirements</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.abort" title="abort">abort</a></li><li><a href="#tymethod.close" title="close">close</a></li><li><a href="#tymethod.write_all_at" title="write_all_at">write_all_at</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">Position<wbr>Write</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait PositionWrite:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ 'static {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.write_all_at" class="fn">write_all_at</a>(
|
||||
&self,
|
||||
offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
buf: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.close" class="fn">close</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.abort" class="fn">abort</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>PositionWrite is used to implement <a href="trait.Write.html" title="trait object_store::layers::mock::Write"><code>oio::Write</code></a> based on position write.</p>
|
||||
<h2 id="services"><a class="doc-anchor" href="#services">§</a>Services</h2>
|
||||
<p>Services like fs support position write.</p>
|
||||
<h2 id="architecture"><a class="doc-anchor" href="#architecture">§</a>Architecture</h2>
|
||||
<p>The architecture after adopting <a href="trait.PositionWrite.html" title="trait object_store::layers::mock::PositionWrite"><code>PositionWrite</code></a>:</p>
|
||||
<ul>
|
||||
<li>Services impl <code>PositionWrite</code></li>
|
||||
<li><code>PositionWriter</code> impl <code>Write</code></li>
|
||||
<li>Expose <code>PositionWriter</code> as <code>Accessor::Writer</code></li>
|
||||
</ul>
|
||||
<h2 id="requirements"><a class="doc-anchor" href="#requirements">§</a>Requirements</h2>
|
||||
<p>Services that implement <code>PositionWrite</code> must fulfill the following requirements:</p>
|
||||
<ul>
|
||||
<li>Writing data based on position: <code>offset</code>.</li>
|
||||
</ul>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.write_all_at" class="method"><h4 class="code-header">fn <a href="#tymethod.write_all_at" class="fn">write_all_at</a>(
|
||||
&self,
|
||||
offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
|
||||
buf: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>write_all_at is used to write the data to underlying storage at the specified offset.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.close" class="method"><h4 class="code-header">fn <a href="#tymethod.close" class="fn">close</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>close is used to close the underlying file.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.abort" class="method"><h4 class="code-header">fn <a href="#tymethod.abort" class="fn">abort</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>abort is used to abort the underlying abort.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../trait.impl/opendal/raw/oio/write/position_write/trait.PositionWrite.js" async></script></section></div></main></body></html>
|
||||
39
object_store/layers/mock/trait.Read.html
Normal file
39
object_store/layers/mock/trait.Read.html
Normal file
@@ -0,0 +1,39 @@
|
||||
<!DOCTYPE html><html lang="en"><head><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 internal trait used by OpenDAL to read data from storage."><title>Read in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Read</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Read</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#notes" title="Notes">Notes</a><ul><li><a href="#object-safety" title="Object Safety">Object Safety</a></li></ul></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.read" title="read">read</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.read_all" title="read_all">read_all</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-Read-for-()" title="()">()</a></li><li><a href="#impl-Read-for-Box%3CT%3E" title="Box<T>">Box<T></a></li><li><a href="#impl-Read-for-Bytes" title="Bytes">Bytes</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">Read</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait Read:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
|
||||
// Required method
|
||||
fn <a href="#tymethod.read" class="fn">read</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
|
||||
// Provided method
|
||||
fn <a href="#method.read_all" class="fn">read_all</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend { ... }
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Read is the internal trait used by OpenDAL to read data from storage.</p>
|
||||
<p>Users should not use or import this trait unless they are implementing an <code>Accessor</code>.</p>
|
||||
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2><h3 id="object-safety"><a class="doc-anchor" href="#object-safety">§</a>Object Safety</h3>
|
||||
<p><code>Read</code> uses <code>async in trait</code>, making it not object safe, preventing the use of <code>Box<dyn Read></code>.
|
||||
To address this, we’ve introduced <a href="trait.ReadDyn.html" title="trait object_store::layers::mock::ReadDyn"><code>ReadDyn</code></a> and its compatible type <code>Box<dyn ReadDyn></code>.</p>
|
||||
<p><code>ReadDyn</code> uses <code>Box::pin()</code> to transform the returned future into a [<code>BoxedFuture</code>], introducing
|
||||
an additional layer of indirection and an extra allocation. Ideally, <code>ReadDyn</code> should occur only
|
||||
once, at the outermost level of our API.</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.read" class="method"><h4 class="code-header">fn <a href="#tymethod.read" class="fn">read</a>(&mut self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Read at the given offset with the given size.</p>
|
||||
</div></details></div><h2 id="provided-methods" class="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_all" class="method"><h4 class="code-header">fn <a href="#method.read_all" class="fn">read_all</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Read all data from the reader.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Read-for-()" class="impl"><a href="#impl-Read-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h3></section></summary><div class="impl-items"><section id="method.read" class="method trait-impl"><a href="#method.read" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">read</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Read-for-Bytes" class="impl"><a href="#impl-Read-for-Bytes" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for Bytes</h3></section></summary><div class="impl-items"><section id="method.read-1" class="method trait-impl"><a href="#method.read-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">read</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Read-for-Box%3CT%3E" class="impl"><a href="#impl-Read-for-Box%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><T><div class="where">where
|
||||
T: <a class="trait" href="trait.ReadDyn.html" title="trait object_store::layers::mock::ReadDyn">ReadDyn</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3><div class="docblock"><h4 id="note"><a class="doc-anchor" href="#note">§</a>NOTE</h4>
|
||||
<p>Take care about the <code>deref_mut()</code> here. This makes sure that we are calling functions
|
||||
upon <code>&mut T</code> instead of <code>&mut Box<T></code>. The later could result in infinite recursion.</p>
|
||||
</div></section></summary><div class="impl-items"><section id="method.read-2" class="method trait-impl"><a href="#method.read-2" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">read</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.read_all-1" class="method trait-impl"><a href="#method.read_all-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">read_all</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-Read-for-Buffer" class="impl"><a href="#impl-Read-for-Buffer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a></h3></section><section id="impl-Read-for-MockReader" class="impl"><a class="src rightside" href="../../../src/object_store/layers/mock.rs.html#95-99">Source</a><a href="#impl-Read-for-MockReader" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for <a class="struct" href="struct.MockReader.html" title="struct object_store::layers::mock::MockReader">MockReader</a></h3></section><section id="impl-Read-for-HttpBody" class="impl"><a href="#impl-Read-for-HttpBody" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for HttpBody</h3></section><section id="impl-Read-for-TwoWays%3CONE,+TWO%3E" class="impl"><a href="#impl-Read-for-TwoWays%3CONE,+TWO%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO> <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for TwoWays<ONE, TWO><div class="where">where
|
||||
ONE: <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,
|
||||
TWO: <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,</div></h3></section><section id="impl-Read-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="impl"><a href="#impl-Read-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO, THREE> <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for ThreeWays<ONE, TWO, THREE><div class="where">where
|
||||
ONE: <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,
|
||||
TWO: <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,
|
||||
THREE: <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,</div></h3></section><section id="impl-Read-for-FourWays%3CONE,+TWO,+THREE,+FOUR%3E" class="impl"><a href="#impl-Read-for-FourWays%3CONE,+TWO,+THREE,+FOUR%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO, THREE, FOUR> <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> for FourWays<ONE, TWO, THREE, FOUR><div class="where">where
|
||||
ONE: <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,
|
||||
TWO: <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,
|
||||
THREE: <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,
|
||||
FOUR: <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a>,</div></h3></section></div><script src="../../../trait.impl/opendal/raw/oio/read/api/trait.Read.js" data-ignore-extern-crates="opendal,std,bytes,alloc" async></script></section></div></main></body></html>
|
||||
22
object_store/layers/mock/trait.ReadDyn.html
Normal file
22
object_store/layers/mock/trait.ReadDyn.html
Normal file
@@ -0,0 +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="ReadDyn is the dyn version of `Read` make it possible to use as `Box<dyn ReadDyn>`."><title>ReadDyn in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">ReadDyn</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">ReadDyn</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.read_all_dyn" title="read_all_dyn">read_all_dyn</a></li><li><a href="#tymethod.read_dyn" title="read_dyn">read_dyn</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">ReadDyn</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait ReadDyn:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.read_dyn" class="fn">read_dyn</a>(
|
||||
&mut self,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + '_>>;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.read_all_dyn" class="fn">read_all_dyn</a>(
|
||||
&mut self,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + '_>>;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>ReadDyn is the dyn version of <a href="trait.Read.html" title="trait object_store::layers::mock::Read"><code>Read</code></a> make it possible to use as
|
||||
<code>Box<dyn ReadDyn></code>.</p>
|
||||
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.read_dyn" class="method"><h4 class="code-header">fn <a href="#tymethod.read_dyn" class="fn">read_dyn</a>(
|
||||
&mut self,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + '_>></h4></section></summary><div class="docblock"><p>The dyn version of <a href="trait.Read.html#tymethod.read" title="method object_store::layers::mock::Read::read"><code>Read::read</code></a>.</p>
|
||||
<p>This function returns a boxed future to make it object safe.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.read_all_dyn" class="method"><h4 class="code-header">fn <a href="#tymethod.read_all_dyn" class="fn">read_all_dyn</a>(
|
||||
&mut self,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + '_>></h4></section></summary><div class="docblock"><p>The dyn version of <a href="trait.Read.html#method.read_all" title="method object_store::layers::mock::Read::read_all"><code>Read::read_all</code></a></p>
|
||||
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-ReadDyn-for-T" class="impl"><a href="#impl-ReadDyn-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="trait.ReadDyn.html" title="trait object_store::layers::mock::ReadDyn">ReadDyn</a> for T<div class="where">where
|
||||
T: <a class="trait" href="trait.Read.html" title="trait object_store::layers::mock::Read">Read</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></div><script src="../../../trait.impl/opendal/raw/oio/read/api/trait.ReadDyn.js" async></script></section></div></main></body></html>
|
||||
37
object_store/layers/mock/trait.Write.html
Normal file
37
object_store/layers/mock/trait.Write.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html><html lang="en"><head><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."><title>Write in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Write</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Write</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.abort" title="abort">abort</a></li><li><a href="#tymethod.close" title="close">close</a></li><li><a href="#tymethod.write" title="write">write</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-Write-for-()" title="()">()</a></li><li><a href="#impl-Write-for-Box%3CT%3E" title="Box<T>">Box<T></a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Trait <span class="trait">Write</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait Write:
|
||||
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
|
||||
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
|
||||
// Required methods
|
||||
fn <a href="#tymethod.write" class="fn">write</a>(
|
||||
&mut self,
|
||||
bs: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.close" class="fn">close</a>(
|
||||
&mut self,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.abort" class="fn">abort</a>(&mut self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend;
|
||||
}</code></pre><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="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"><h4 class="code-header">fn <a href="#tymethod.write" class="fn">write</a>(
|
||||
&mut self,
|
||||
bs: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>,
|
||||
) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Write given bytes into writer.</p>
|
||||
<h5 id="behavior"><a class="doc-anchor" href="#behavior">§</a>Behavior</h5>
|
||||
<ul>
|
||||
<li><code>Ok(())</code> means all bytes has been written successfully.</li>
|
||||
<li><code>Err(err)</code> means error happens and no bytes has been written.</li>
|
||||
</ul>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.close" class="method"><h4 class="code-header">fn <a href="#tymethod.close" class="fn">close</a>(&mut self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Close the writer and make sure all data has been flushed.</p>
|
||||
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.abort" class="method"><h4 class="code-header">fn <a href="#tymethod.abort" class="fn">abort</a>(&mut self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>>> + MaybeSend</h4></section></summary><div class="docblock"><p>Abort the pending writer.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Write-for-()" class="impl"><a href="#impl-Write-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h3></section></summary><div class="impl-items"><section id="method.write" class="method trait-impl"><a href="#method.write" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">write</a>(&mut self, _: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.close" class="method trait-impl"><a href="#method.close" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">close</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.abort" class="method trait-impl"><a href="#method.abort" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">abort</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Write-for-Box%3CT%3E" class="impl"><a href="#impl-Write-for-Box%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><T><div class="where">where
|
||||
T: WriteDyn + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><section id="method.write-1" class="method trait-impl"><a href="#method.write-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">write</a>(&mut self, bs: <a class="struct" href="../../struct.Buffer.html" title="struct object_store::Buffer">Buffer</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.close-1" class="method trait-impl"><a href="#method.close-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">close</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Metadata.html" title="struct object_store::layers::mock::Metadata">Metadata</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section><section id="method.abort-1" class="method trait-impl"><a href="#method.abort-1" class="anchor">§</a><h4 class="code-header">async fn <a class="fn">abort</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.Error.html" title="struct object_store::Error">Error</a>></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-Write-for-MockWriter" class="impl"><a class="src rightside" href="../../../src/object_store/layers/mock.rs.html#105-117">Source</a><a href="#impl-Write-for-MockWriter" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="struct.MockWriter.html" title="struct object_store::layers::mock::MockWriter">MockWriter</a></h3></section><section id="impl-Write-for-TwoWays%3CONE,+TWO%3E" class="impl"><a href="#impl-Write-for-TwoWays%3CONE,+TWO%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO> <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for TwoWays<ONE, TWO><div class="where">where
|
||||
ONE: <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a>,
|
||||
TWO: <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a>,</div></h3></section><section id="impl-Write-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="impl"><a href="#impl-Write-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO, THREE> <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for ThreeWays<ONE, TWO, THREE><div class="where">where
|
||||
ONE: <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a>,
|
||||
TWO: <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a>,
|
||||
THREE: <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a>,</div></h3></section><section id="impl-Write-for-AppendWriter%3CW%3E" class="impl"><a href="#impl-Write-for-AppendWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W> <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="struct.AppendWriter.html" title="struct object_store::layers::mock::AppendWriter">AppendWriter</a><W><div class="where">where
|
||||
W: <a class="trait" href="trait.AppendWrite.html" title="trait object_store::layers::mock::AppendWrite">AppendWrite</a>,</div></h3></section><section id="impl-Write-for-BlockWriter%3CW%3E" class="impl"><a href="#impl-Write-for-BlockWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W> <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="struct.BlockWriter.html" title="struct object_store::layers::mock::BlockWriter">BlockWriter</a><W><div class="where">where
|
||||
W: <a class="trait" href="trait.BlockWrite.html" title="trait object_store::layers::mock::BlockWrite">BlockWrite</a>,</div></h3></section><section id="impl-Write-for-MultipartWriter%3CW%3E" class="impl"><a href="#impl-Write-for-MultipartWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W> <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="struct.MultipartWriter.html" title="struct object_store::layers::mock::MultipartWriter">MultipartWriter</a><W><div class="where">where
|
||||
W: <a class="trait" href="trait.MultipartWrite.html" title="trait object_store::layers::mock::MultipartWrite">MultipartWrite</a>,</div></h3></section><section id="impl-Write-for-OneShotWriter%3CW%3E" class="impl"><a href="#impl-Write-for-OneShotWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W> <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="struct.OneShotWriter.html" title="struct object_store::layers::mock::OneShotWriter">OneShotWriter</a><W><div class="where">where
|
||||
W: <a class="trait" href="trait.OneShotWrite.html" title="trait object_store::layers::mock::OneShotWrite">OneShotWrite</a>,</div></h3></section><section id="impl-Write-for-PositionWriter%3CW%3E" class="impl"><a href="#impl-Write-for-PositionWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W> <a class="trait" href="trait.Write.html" title="trait object_store::layers::mock::Write">Write</a> for <a class="struct" href="struct.PositionWriter.html" title="struct object_store::layers::mock::PositionWriter">PositionWriter</a><W><div class="where">where
|
||||
W: <a class="trait" href="trait.PositionWrite.html" title="trait object_store::layers::mock::PositionWrite">PositionWrite</a>,</div></h3></section></div><script src="../../../trait.impl/opendal/raw/oio/write/api/trait.Write.js" data-ignore-extern-crates="opendal,std,alloc" async></script></section></div></main></body></html>
|
||||
1
object_store/layers/mock/type.CopyInterceptor.html
Normal file
1
object_store/layers/mock/type.CopyInterceptor.html
Normal file
@@ -0,0 +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="API documentation for the Rust `CopyInterceptor` type in crate `object_store`."><title>CopyInterceptor in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">CopyInterceptor</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Copy<wbr>Interceptor</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Type Alias <span class="type">Copy<wbr>Interceptor</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/object_store/layers/mock.rs.html#31">Source</a> </span></div><pre class="rust item-decl"><code>pub type CopyInterceptor = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, OpCopy) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="type" href="../../type.Result.html" title="type object_store::Result">Result</a><RpCopy>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>>;</code></pre><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct CopyInterceptor { <span class="comment">/* private fields */</span> }</code></pre><script src="../../../type.impl/alloc/sync/struct.Arc.js" data-self-path="object_store::layers::mock::CopyInterceptor" async></script></section></div></main></body></html>
|
||||
2
object_store/layers/mock/type.Deleter.html
Normal file
2
object_store/layers/mock/type.Deleter.html
Normal file
@@ -0,0 +1,2 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Deleter is a type erased `Delete`"><title>Deleter in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Deleter</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Deleter</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Type Alias <span class="type">Deleter</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub type Deleter = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="trait.DeleteDyn.html" title="trait object_store::layers::mock::DeleteDyn">DeleteDyn</a>>;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Deleter is a type erased <a href="trait.Delete.html" title="trait object_store::layers::mock::Delete"><code>Delete</code></a></p>
|
||||
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct Deleter(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../type.impl/alloc/boxed/struct.Box.js" data-self-path="object_store::layers::mock::Deleter" async></script></section></div></main></body></html>
|
||||
2
object_store/layers/mock/type.Lister.html
Normal file
2
object_store/layers/mock/type.Lister.html
Normal file
@@ -0,0 +1,2 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The boxed version of `List`"><title>Lister in object_store::layers::mock - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="object_store" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Lister</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../object_store/index.html">object_<wbr>store</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Lister</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In object_<wbr>store::<wbr>layers::<wbr>mock</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">object_store</a>::<wbr><a href="../index.html">layers</a>::<wbr><a href="index.html">mock</a></div><h1>Type Alias <span class="type">Lister</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub type Lister = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn ListDyn>;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The boxed version of <a href="trait.List.html" title="trait object_store::layers::mock::List"><code>List</code></a></p>
|
||||
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct Lister(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../type.impl/alloc/boxed/struct.Box.js" data-self-path="object_store::layers::mock::Lister" async></script></section></div></main></body></html>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user