<!DOCTYPE html><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metaname="generator"content="rustdoc"><metaname="description"content="An owned reference to an occupied entry in a `Slab`."><title>OwnedEntry in sharded_slab - Rust</title><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><linkrel="stylesheet"href="../static.files/normalize-76eba96aa4d2e634.css"><linkrel="stylesheet"href="../static.files/rustdoc-5bc39a1768837dd0.css"><metaname="rustdoc-vars"data-root-path="../"data-static-root-path="../static.files/"data-current-crate="sharded_slab"data-themes=""data-resource-suffix=""data-rustdoc-version="1.77.0 (aedd173a2 2024-03-17)"data-channel="1.77.0"data-search-js="search-dd67cee4cfa65049.js"data-settings-js="settings-4313503d2e1961c2.js"><scriptsrc="../static.files/storage-4c98445ec4002617.js"></script><scriptdefersrc="sidebar-items.js"></script><scriptdefersrc="../static.files/main-48f368f3872407c8.js"></script><noscript><linkrel="stylesheet"href="../static.files/noscript-04d5337699b92874.css"></noscript><linkrel="alternate icon"type="image/png"href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><linkrel="alternate icon"type="image/png"href="../static.files/favicon-32x32-422f7d1d52889060.png"><linkrel="icon"type="image/svg+xml"href="../static.files/favicon-2c020d218678b618.svg"></head><bodyclass="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="mobile-topbar"><buttonclass="sidebar-menu-toggle"title="show sidebar"></button></nav><navclass="sidebar"><divclass="sidebar-crate"><h2><ahref="../sharded_slab/index.html">sharded_slab</a><spanclass="version">0.1.7</span></h2></div><h2class="location"><ahref="#">OwnedEntry</a></h2><divclass="sidebar-elems"><section><h3><ahref="#implementations">Methods</a></h3><ulclass="block method"><li><ahref="#method.key">key</a></li></ul><h3><ahref="#trait-implementations">Trait Implementations</a></h3><ulclass="block trait-implementation"><li><ahref="#impl-Debug-for-OwnedEntry%3CT,+C%3E">Debug</a></li><li><ahref="#impl-__Deref-for-OwnedEntry%3CT,+C%3E">Deref</a></li><li><ahref="#impl-Drop-for-OwnedEntry%3CT,+C%3E">Drop</a></li><li><ahref="#impl-PartialEq%3CT%3E-for-OwnedEntry%3CT,+C%3E">PartialEq<T></a></li><li><ahref="#impl-Send-for-OwnedEntry%3CT,+C%3E">Send</a></li><li><ahref="#impl-Sync-for-OwnedEntry%3CT,+C%3E">Sync</a></li></ul><h3><ahref="#synthetic-implementations">Auto Trait Implementations</a></h3><ulclass="block synthetic-implementation"><li><ahref="#impl-RefUnwindSafe-for-OwnedEntry%3CT,+C%3E">!RefUnwindSafe</a></li><li><ahref="#impl-UnwindSafe-for-OwnedEntry%3CT,+C%3E">!UnwindSafe</a></li><li><ahref="#impl-Unpin-for-OwnedEntry%3CT,+C%3E">Unpin</a></li></ul><h3><ahref="#blanket-implementations">Blanket Implementations</a></h3><ulclass="block blanket-implementation"><li><ahref="#impl-Any-for-T">Any</a></li><li><ahref="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><ahref="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><ahref="#impl-From%3CT%3E-for-T">From<T></a></li><li><ahref="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><ahref="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><ahref="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li></ul></section><h2><ahref="index.html">In crate sharded_slab</a>
<main><divclass="width-limiter"><navclass="sub"><formclass="search-form"><span></span><divid="sidebar-button"tabindex="-1"><ahref="../sharded_slab/all.html"title="show sidebar"></a></div><inputclass="search-input"name="search"aria-label="Run search in the documentation"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"><divid="help-button"tabindex="-1"><ahref="../help.html"title="help">?</a></div><divid="settings-menu"tabindex="-1"><ahref="../settings.html"title="settings"><imgwidth="22"height="22"alt="Change settings"src="../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><sectionid="main-content"class="content"><divclass="main-heading"><h1>Struct <ahref="index.html">sharded_slab</a>::<wbr><aclass="struct"href="#">OwnedEntry</a><buttonid="copy-path"title="Copy item path to clipboard"><imgsrc="../static.files/clipboard-7571035ce49a181d.svg"width="19"height="18"alt="Copy item path"></button></h1><spanclass="out-of-band"><aclass="src"href="../src/sharded_slab/lib.rs.html#365-373">source</a> · <buttonid="toggle-all-docs"title="collapse all docs">[<span>−</span>]</button></span></div><preclass="rust item-decl"><code>pub struct OwnedEntry<T, C = <aclass="struct"href="struct.DefaultConfig.html"title="struct sharded_slab::DefaultConfig">DefaultConfig</a>><divclass="where">where
C: <aclass="trait"href="trait.Config.html"title="trait sharded_slab::Config">Config</a>,</div>{ <spanclass="comment">/* private fields */</span> }</code></pre><detailsclass="toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><p>An owned reference to an occupied entry in a <ahref="struct.Slab.html"title="struct sharded_slab::Slab"><code>Slab</code></a>.</p>
<p>While the guard exists, it indicates to the slab that the item the guard
references is currently being accessed. If the item is removed from the slab
while the guard exists, the removal will be deferred until all guards are
<p>Unlike <ahref="struct.Entry.html"title="struct sharded_slab::Entry"><code>Entry</code></a>, which borrows the slab, an <code>OwnedEntry</code> clones the <ahref="https://doc.rust-lang.org/1.77.0/alloc/sync/struct.Arc.html"title="struct alloc::sync::Arc"><code>Arc</code></a>
<p>Unlike <ahref="struct.Entry.html"title="struct sharded_slab::Entry"><code>Entry</code></a>, an <code>OwnedEntry</code> may be stored in a struct which must live
C: <aclass="trait"href="trait.Config.html"title="trait sharded_slab::Config">Config</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.key"class="method"><aclass="src rightside"href="../src/sharded_slab/lib.rs.html#929-931">source</a><h4class="code-header">pub fn <ahref="#method.key"class="fn">key</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.0/std/primitive.usize.html">usize</a></h4></section></summary><divclass="docblock"><p>Returns the key used to access this guard</p>
</div></details></div></details></div><h2id="trait-implementations"class="section-header">Trait Implementations<ahref="#trait-implementations"class="anchor">§</a></h2><divid="trait-implementations-list"><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-Debug-for-OwnedEntry%3CT,+C%3E"class="impl"><aclass="src rightside"href="../src/sharded_slab/lib.rs.html#982-990">source</a><ahref="#impl-Debug-for-OwnedEntry%3CT,+C%3E"class="anchor">§</a><h3class="code-header">impl<T, C><aclass="trait"href="https://doc.rust-lang.org/1.77.0/core/fmt/trait.Debug.html"title="trait core::fmt::Debug">Debug</a> for <aclass="struct"href="struct.OwnedEntry.html"title="struct sharded_slab::OwnedEntry">OwnedEntry</a><T, C><divclass="where">where
C: <aclass="trait"href="trait.Config.html"title="trait sharded_slab::Config">Config</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.fmt"class="method trait-impl"><aclass="src rightside"href="../src/sharded_slab/lib.rs.html#987-989">source</a><ahref="#method.fmt"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.0/core/fmt/trait.Debug.html#tymethod.fmt"class="fn">fmt</a>(&self, f: &mut <aclass="struct"href="https://doc.rust-lang.org/1.77.0/core/fmt/struct.Formatter.html"title="struct core::fmt::Formatter">Formatter</a><'_>) -><aclass="type"href="https://doc.rust-lang.org/1.77.0/core/fmt/type.Result.html"title="type core::fmt::Result">Result</a></h4></section></summary><divclass='docblock'>Formats the value using the given formatter. <ahref="https://doc.rust-lang.org/1.77.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-Drop-for-OwnedEntry%3CT,+C%3E"class="impl"><aclass="src rightside"href="../src/sharded_slab/lib.rs.html#955-980">source</a><ahref="#impl-Drop-for-OwnedEntry%3CT,+C%3E"class="anchor">§</a><h3class="code-header">impl<T, C><aclass="trait"href="https://doc.rust-lang.org/1.77.0/core/ops/drop/trait.Drop.html"title="trait core::ops::drop::Drop">Drop</a> for <aclass="struct"href="struct.OwnedEntry.html"title="struct sharded_slab::OwnedEntry">OwnedEntry</a><T, C><divclass="where">where
C: <aclass="trait"href="trait.Config.html"title="trait sharded_slab::Config">Config</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.drop"class="method trait-impl"><aclass="src rightside"href="../src/sharded_slab/lib.rs.html#959-979">source</a><ahref="#method.drop"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.0/core/ops/drop/trait.Drop.html#tymethod.drop"class="fn">drop</a>(&mut self)</h4></section></summary><divclass='docblock'>Executes the destructor for this type. <ahref="https://doc.rust-lang.org/1.77.0/core/ops/drop/trait.Drop.html#tymethod.drop">Read more</a></div></details></div></details><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-PartialEq%3CT%3E-for-OwnedEntry%3CT,+C%3E"class="impl"><aclass="src rightside"href="../src/sharded_slab/lib.rs.html#992-1000">source</a><ahref="#impl-PartialEq%3CT%3E-for-OwnedEntry%3CT,+C%3E"class="anchor">§</a><h3class="code-header">impl<T, C><aclass="trait"href="https://doc.rust-lang.org/1.77.0/core/cmp/trait.PartialEq.html"title="trait core::cmp::PartialEq">PartialEq</a><T> for <aclass="struct"href="struct.OwnedEntry.html"title="struct sharded_slab::OwnedEntry">OwnedEntry</a><T, C><divclass="where">where
C: <aclass="trait"href="trait.Config.html"title="trait sharded_slab::Config">Config</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.eq"class="method trait-impl"><aclass="src rightside"href="../src/sharded_slab/lib.rs.html#997-999">source</a><ahref="#method.eq"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.0/core/cmp/trait.PartialEq.html#tymethod.eq"class="fn">eq</a>(&self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.77.0/std/primitive.reference.html">&T</a>) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.0/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
by <code>==</code>.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.ne"class="method trait-impl"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.0.0">1.0.0</span> · <aclass="src"href="https://doc.rust-lang.org/1.77.0/src/core/cmp.rs.html#242">source</a></span><ahref="#method.ne"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.0/core/cmp/trait.PartialEq.html#method.ne"class="fn">ne</a>(&self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.77.0/std/primitive.reference.html">&Rhs</a>) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.0/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
sufficient, and should not be overridden without very good reason.</div></details></div></details><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-__Deref-for-OwnedEntry%3CT,+C%3E"class="impl"><aclass="src rightside"href="../src/sharded_slab/lib.rs.html#944-953">source</a><ahref="#impl-__Deref-for-OwnedEntry%3CT,+C%3E"class="anchor">§</a><h3class="code-header">impl<T, C><aclass="trait"href="https://doc.rust-lang.org/1.77.0/core/ops/deref/trait.Deref.html"title="trait core::ops::deref::Deref">Deref</a> for <aclass="struct"href="struct.OwnedEntry.html"title="struct sharded_slab::OwnedEntry">OwnedEntry</a><T, C><divclass="where">where
C: <aclass="trait"href="trait.Config.html"title="trait sharded_slab::Config">Config</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle"open><summary><sectionid="associatedtype.Target"class="associatedtype trait-impl"><ahref="#associatedtype.Target"class="anchor">§</a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.77.0/core/ops/deref/trait.Deref.html#associatedtype.Target"class="associatedtype">Target</a> = T</h4></section></summary><divclass='docblock'>The resulting type after dereferencing.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.deref"class="method trait-impl"><aclass="src rightside"href="../src/sharded_slab/lib.rs.html#950-952">source</a><ahref="#method.deref"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.0/core/ops/deref/trait.Deref.html#tymethod.deref"class="fn">deref</a>(&self) ->&Self::<aclass="associatedtype"href="https://doc.rust-lang.org/1.77.0/core/ops/deref/trait.Deref.html#associatedtype.Target"title="type core::ops::deref::Deref::Target">Target</a></h4></section></summary><divclass='docblock'>Dereferences the value.</div></details></div></details><sectionid="impl-Send-for-OwnedEntry%3CT,+C%3E"class="impl"><aclass="src rightside"href="../src/sharded_slab/lib.rs.html#1009-1014">source</a><ahref="#impl-Send-for-OwnedEntry%3CT,+C%3E"class="anchor">§</a><h3class="code-header">impl<T, C><aclass="trait"href="https://doc.rust-lang.org/1.77.0/core/marker/trait.Send.html"title="trait core::marker::Send">Send</a> for <aclass="struct"href="struct.OwnedEntry.html"title="struct sharded_slab::OwnedEntry">OwnedEntry</a><T, C><divclass="where">where
<code><ahref="https://doc.rust-lang.org/1.77.0/core/convert/trait.From.html"title="trait core::convert::From">From</a><T> for U</code> chooses to do.</p>
</div></details></div></details><detailsclass="toggle implementors-toggle"><summary><sectionid="impl-TryFrom%3CU%3E-for-T"class="impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.0/src/core/convert/mod.rs.html#804-806">source</a><ahref="#impl-TryFrom%3CU%3E-for-T"class="anchor">§</a><h3class="code-header">impl<T, U><aclass="trait"href="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U> for T<divclass="where">where
U: <aclass="trait"href="https://doc.rust-lang.org/1.77.0/core/convert/trait.Into.html"title="trait core::convert::Into">Into</a><T>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle"open><summary><sectionid="associatedtype.Error-1"class="associatedtype trait-impl"><ahref="#associatedtype.Error-1"class="anchor">§</a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryFrom.html#associatedtype.Error"class="associatedtype">Error</a> = <aclass="enum"href="https://doc.rust-lang.org/1.77.0/core/convert/enum.Infallible.html"title="enum core::convert::Infallible">Infallible</a></h4></section></summary><divclass='docblock'>The type returned in the event of a conversion error.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.try_from"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.0/src/core/convert/mod.rs.html#811">source</a><ahref="#method.try_from"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryFrom.html#tymethod.try_from"class="fn">try_from</a>(value: U) -><aclass="enum"href="https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><T, <T as <aclass="trait"href="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U>>::<aclass="associatedtype"href="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><divclass='docblock'>Performs the conversion.</div></details></div></details><detailsclass="toggle implementors-toggle"><summary><sectionid="impl-TryInto%3CU%3E-for-T"class="impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.0/src/core/convert/mod.rs.html#789-791">source</a><ahref="#impl-TryInto%3CU%3E-for-T"class="anchor">§</a><h3class="code-header">impl<T, U><aclass="trait"href="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryInto.html"title="trait core::convert::TryInto">TryInto</a><U> for T<divclass="where">where
U: <aclass="trait"href="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle"open><summary><sectionid="associatedtype.Error"class="associatedtype trait-impl"><ahref="#associatedtype.Error"class="anchor">§</a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryInto.html#associatedtype.Error"class="associatedtype">Error</a> = <U as <aclass="trait"href="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="associatedtype"href="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><divclass='docblock'>The type returned in the event of a conversion error.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.try_into"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.0/src/core/convert/mod.rs.html#796">source</a><ahref="#method.try_into"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryInto.html#tymethod.try_into"class="fn">try_into</a>(self) -><aclass="enum"href="https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><U, <U as <aclass="trait"href="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="associatedtype"href="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><divclass='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main></body></html>