Files

172 lines
40 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`LogStore` serves as a Write-Ahead-Log for storage engine."><title>LogStore in store_api::logstore - 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-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="store_api" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.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"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">LogStore</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../store_api/index.html">store_<wbr>api</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">LogStore</a></h2><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Error" title="Error">Error</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.append_batch" title="append_batch">append_batch</a></li><li><a href="#tymethod.create_namespace" title="create_namespace">create_namespace</a></li><li><a href="#tymethod.delete_namespace" title="delete_namespace">delete_namespace</a></li><li><a href="#tymethod.entry" title="entry">entry</a></li><li><a href="#tymethod.latest_entry_id" title="latest_entry_id">latest_entry_id</a></li><li><a href="#tymethod.list_namespaces" title="list_namespaces">list_namespaces</a></li><li><a href="#tymethod.obsolete" title="obsolete">obsolete</a></li><li><a href="#tymethod.obsolete_all" title="obsolete_all">obsolete_all</a></li><li><a href="#tymethod.read" title="read">read</a></li><li><a href="#tymethod.stop" title="stop">stop</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.wait_durable" title="wait_durable">wait_durable</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In store_<wbr>api::<wbr>logstore</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">store_api</a>::<wbr><a href="index.html">logstore</a></div><h1>Trait <span class="trait">LogStore</span>&nbsp;<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/store_api/logstore.rs.html#51-126">Source</a> </span></div><pre class="rust item-decl"><code>pub trait LogStore:
<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
+ <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
+ 'static
+ <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> {
type <a href="#associatedtype.Error" class="associatedtype">Error</a>: ErrorExt + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static;
// Required methods
fn <a href="#tymethod.stop" class="fn">stop</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.append_batch" class="fn">append_batch</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
entries: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="entry/enum.Entry.html" title="enum store_api::logstore::entry::Entry">Entry</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.AppendBatchResponse.html" title="struct store_api::logstore::AppendBatchResponse">AppendBatchResponse</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.read" class="fn">read</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
provider: &amp;'life1 <a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
id: <a class="type" href="entry/type.Id.html" title="type store_api::logstore::entry::Id">EntryId</a>,
index: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.WalIndex.html" title="struct store_api::logstore::WalIndex">WalIndex</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="type.SendableEntryStream.html" title="type store_api::logstore::SendableEntryStream">SendableEntryStream</a>&lt;'static, <a class="enum" href="entry/enum.Entry.html" title="enum store_api::logstore::entry::Entry">Entry</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.create_namespace" class="fn">create_namespace</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
ns: &amp;'life1 <a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.delete_namespace" class="fn">delete_namespace</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
ns: &amp;'life1 <a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.list_namespaces" class="fn">list_namespaces</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>&gt;, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.obsolete" class="fn">obsolete</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
provider: &amp;'life1 <a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
entry_id: <a class="type" href="entry/type.Id.html" title="type store_api::logstore::entry::Id">EntryId</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.obsolete_all" class="fn">obsolete_all</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
provider: &amp;'life1 <a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.entry" class="fn">entry</a>(
&amp;self,
data: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.u8.html">u8</a>&gt;,
entry_id: <a class="type" href="entry/type.Id.html" title="type store_api::logstore::entry::Id">EntryId</a>,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
provider: &amp;<a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="entry/enum.Entry.html" title="enum store_api::logstore::entry::Entry">Entry</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.latest_entry_id" class="fn">latest_entry_id</a>(
&amp;self,
provider: &amp;<a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="entry/type.Id.html" title="type store_api::logstore::entry::Id">EntryId</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;;
// Provided method
fn <a href="#method.wait_durable" class="fn">wait_durable</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
_provider: &amp;'life1 <a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
_entry_id: <a class="type" href="entry/type.Id.html" title="type store_api::logstore::entry::Id">EntryId</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait</span> { ... }
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p><code>LogStore</code> serves as a Write-Ahead-Log for storage engine.</p>
</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><section id="associatedtype.Error" class="method"><a class="src rightside" href="../../src/store_api/logstore.rs.html#52">Source</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a>: ErrorExt + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static</h4></section></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.stop" class="method"><a class="src rightside" href="../../src/store_api/logstore.rs.html#55">Source</a><h4 class="code-header">fn <a href="#tymethod.stop" class="fn">stop</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Stops components of the logstore.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.append_batch" class="method"><a class="src rightside" href="../../src/store_api/logstore.rs.html#59">Source</a><h4 class="code-header">fn <a href="#tymethod.append_batch" class="fn">append_batch</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
entries: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="entry/enum.Entry.html" title="enum store_api::logstore::entry::Entry">Entry</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.AppendBatchResponse.html" title="struct store_api::logstore::AppendBatchResponse">AppendBatchResponse</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Appends a batch of entries and returns a response containing a map where the key is a region id
while the value is the id of the last successfully written entry of the region.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.read" class="method"><a class="src rightside" href="../../src/store_api/logstore.rs.html#63-68">Source</a><h4 class="code-header">fn <a href="#tymethod.read" class="fn">read</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
provider: &amp;'life1 <a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
id: <a class="type" href="entry/type.Id.html" title="type store_api::logstore::entry::Id">EntryId</a>,
index: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.WalIndex.html" title="struct store_api::logstore::WalIndex">WalIndex</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="type.SendableEntryStream.html" title="type store_api::logstore::SendableEntryStream">SendableEntryStream</a>&lt;'static, <a class="enum" href="entry/enum.Entry.html" title="enum store_api::logstore::entry::Entry">Entry</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Creates a new <code>EntryStream</code> to asynchronously generates <code>Entry</code> with ids
starting from <code>id</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.create_namespace" class="method"><a class="src rightside" href="../../src/store_api/logstore.rs.html#71">Source</a><h4 class="code-header">fn <a href="#tymethod.create_namespace" class="fn">create_namespace</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
ns: &amp;'life1 <a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Creates a new <code>Namespace</code> from the given ref.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.delete_namespace" class="method"><a class="src rightside" href="../../src/store_api/logstore.rs.html#74">Source</a><h4 class="code-header">fn <a href="#tymethod.delete_namespace" class="fn">delete_namespace</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
ns: &amp;'life1 <a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Deletes an existing <code>Namespace</code> specified by the given ref.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.list_namespaces" class="method"><a class="src rightside" href="../../src/store_api/logstore.rs.html#77">Source</a><h4 class="code-header">fn <a href="#tymethod.list_namespaces" class="fn">list_namespaces</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>&gt;, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Lists all existing namespaces.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.obsolete" class="method"><a class="src rightside" href="../../src/store_api/logstore.rs.html#82-87">Source</a><h4 class="code-header">fn <a href="#tymethod.obsolete" class="fn">obsolete</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
provider: &amp;'life1 <a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
entry_id: <a class="type" href="entry/type.Id.html" title="type store_api::logstore::entry::Id">EntryId</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Marks all entries with ids <code>&lt;=entry_id</code> of the given <code>namespace</code> as obsolete,
so that the log store can safely delete those entries. This method does not guarantee
that the obsolete entries are deleted immediately.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.obsolete_all" class="method"><a class="src rightside" href="../../src/store_api/logstore.rs.html#91-95">Source</a><h4 class="code-header">fn <a href="#tymethod.obsolete_all" class="fn">obsolete_all</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
provider: &amp;'life1 <a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Marks all entries of a region as obsolete and removes its dedicated namespace when
supported by the backend.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.entry" class="method"><a class="src rightside" href="../../src/store_api/logstore.rs.html#98-104">Source</a><h4 class="code-header">fn <a href="#tymethod.entry" class="fn">entry</a>(
&amp;self,
data: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.u8.html">u8</a>&gt;,
entry_id: <a class="type" href="entry/type.Id.html" title="type store_api::logstore::entry::Id">EntryId</a>,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
provider: &amp;<a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="entry/enum.Entry.html" title="enum store_api::logstore::entry::Entry">Entry</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Makes an entry instance of the associated Entry type</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.latest_entry_id" class="method"><a class="src rightside" href="../../src/store_api/logstore.rs.html#107">Source</a><h4 class="code-header">fn <a href="#tymethod.latest_entry_id" class="fn">latest_entry_id</a>(&amp;self, provider: &amp;<a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="entry/type.Id.html" title="type store_api::logstore::entry::Id">EntryId</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the latest entry id in the log store.</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.wait_durable" class="method"><a class="src rightside" href="../../src/store_api/logstore.rs.html#119-125">Source</a><h4 class="code-header">fn <a href="#method.wait_durable" class="fn">wait_durable</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
_provider: &amp;'life1 <a class="enum" href="provider/enum.Provider.html" title="enum store_api::logstore::provider::Provider">Provider</a>,
_entry_id: <a class="type" href="entry/type.Id.html" title="type store_api::logstore::entry::Id">EntryId</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>, Self::<a class="associatedtype" href="trait.LogStore.html#associatedtype.Error" title="type store_api::logstore::LogStore::Error">Error</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Waits until every entry of the provider’s region with an id at or below
<code>entry_id</code> has the persistence this log store guarantees for an
acknowledged append, so that a caller can persist <code>entry_id</code> as a
replay watermark.</p>
<p>The default returns at once and keeps each log store’s own
acknowledgement guarantee, whatever it is: Raft Engine with
<code>sync_write = false</code>, for example, acknowledges an append before its
periodic sync. A log store that acknowledges an append before its
entries have that persistence overrides this method.</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 <b>is</b> <a href="https://doc.rust-lang.org/1.98.1/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety".</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/store_api/logstore/trait.LogStore.js" async></script></section></div></main></body></html>