<!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="A view into an occupied entry in an `IndexMap`. It is part of the `Entry` enum."><title>OccupiedEntry in indexmap::map - 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="indexmap"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="../../indexmap/index.html">indexmap</a><spanclass="version">2.2.5</span></h2></div><h2class="location"><ahref="#">OccupiedEntry</a></h2><divclass="sidebar-elems"><section><h3><ahref="#implementations">Methods</a></h3><ulclass="block method"><li><ahref="#method.get">get</a></li><li><ahref="#method.get_mut">get_mut</a></li><li><ahref="#method.index">index</a></li><li><ahref="#method.insert">insert</a></li><li><ahref="#method.into_mut">into_mut</a></li><li><ahref="#method.key">key</a></li><li><ahref="#method.move_index">move_index</a></li><li><ahref="#method.remove">remove</a></li><li><ahref="#method.remove_entry">remove_entry</a></li><li><ahref="#method.shift_remove">shift_remove</a></li><li><ahref="#method.shift_remove_entry">shift_remove_entry</a></li><li><ahref="#method.swap_indices">swap_indices</a></li><li><ahref="#method.swap_remove">swap_remove</a></li><li><ahref="#method.swap_remove_entry">swap_remove_entry</a></li></ul><h3><ahref="#trait-implementations">Trait Implementations</a></h3><ulclass="block trait-implementation"><li><ahref="#impl-Debug-for-OccupiedEntry%3C'_,+K,+V%3E">Debug</a></li></ul><h3><ahref="#synthetic-implementations">Auto Trait Implementations</a></h3><ulclass="block synthetic-implementation"><li><ahref="#impl-UnwindSafe-for-OccupiedEntry%3C'a,+K,+V%3E">!UnwindSafe</a></li><li><ahref="#impl-RefUnwindSafe-for-OccupiedEntry%3C'a,+K,+V%3E">RefUnwindSafe</a></li><li><ahref="#impl-Send-for-OccupiedEntry%3C'a,+K,+V%3E">Send</a></li><li><ahref="#impl-Sync-for-OccupiedEntry%3C'a,+K,+V%3E">Sync</a></li><li><ahref="#impl-Unpin-for-OccupiedEntry%3C'a,+K,+V%3E">Unpin</a></li></ul><h3><ahref="#blanket-implementations">Blan
<main><divclass="width-limiter"><navclass="sub"><formclass="search-form"><span></span><divid="sidebar-button"tabindex="-1"><ahref="../../indexmap/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">indexmap</a>::<wbr><ahref="index.html">map</a>::<wbr><aclass="struct"href="#">OccupiedEntry</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/indexmap/map/core/entry.rs.html#127-129">source</a> · <buttonid="toggle-all-docs"title="collapse all docs">[<span>−</span>]</button></span></div><preclass="rust item-decl"><code>pub struct OccupiedEntry<'a, K, V> { <spanclass="comment">/* private fields */</span> }</code></pre><detailsclass="toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><p>A view into an occupied entry in an <ahref="struct.IndexMap.html"title="struct indexmap::map::IndexMap"><code>IndexMap</code></a>.
It is part of the <ahref="enum.Entry.html"title="enum indexmap::map::Entry"><code>Entry</code></a> enum.</p>
</div></details><h2id="implementations"class="section-header">Implementations<ahref="#implementations"class="anchor">§</a></h2><divid="implementations-list"><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-OccupiedEntry%3C'a,+K,+V%3E"class="impl"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#131-270">source</a><ahref="#impl-OccupiedEntry%3C'a,+K,+V%3E"class="anchor">§</a><h3class="code-header">impl<'a, K, V><aclass="struct"href="struct.OccupiedEntry.html"title="struct indexmap::map::OccupiedEntry">OccupiedEntry</a><'a, K, V></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.index"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#134-136">source</a><h4class="code-header">pub fn <ahref="#method.index"class="fn">index</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>Return the index of the key-value pair</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.key"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#143-145">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.reference.html">&K</a></h4></section></summary><divclass="docblock"><p>Gets a reference to the entry’s key in the map.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.get"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#148-150">source</a><h4class="code-header">pub fn <ahref="#method.get"class="fn">get</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.0/std/primitive.reference.html">&V</a></h4></section></summary><divclass="docblock"><p>Gets a reference to the entry’s value in the map.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.get_mut"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#156-158">source</a><h4class="code-header">pub fn <ahref="#method.get_mut"class="fn">get_mut</a>(&mut self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.0/std/primitive.reference.html">&mut V</a></h4></section></summary><divclass="docblock"><p>Gets a mutable reference to the entry’s value in the map.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.into_mut"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#162-164">source</a><h4class="code-header">pub fn <ahref="#method.into_mut"class="fn">into_mut</a>(self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.0/std/primitive.reference.html">&'a mut V</a></h4></section></summary><divclass="docblock"><p>Converts into a mutable reference to the entry’s value in the map,
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.insert"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#167-169">source</a><h4class="code-header">pub fn <ahref="#method.insert"class="fn">insert</a>(&mut self, value: V) -> V</h4></section></summary><divclass="docblock"><p>Sets the value of the entry to <code>value</code>, and returns the entry’s old value.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.remove"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#179-181">source</a><h4class="code-header">pub fn <ahref="#method.remove"class="fn">remove</a>(self) -> V</h4></section><spanclass="item-info"><divclass="stab deprecated"><spanclass="emoji">👎</span><span>Deprecated: <code>remove</code> disrupts the map order – use <code>swap_remove</code> or <code>shift_remove</code> for explicit behavior.</span></div></span></summary><divclass="docblock"><p>Remove the key, value pair stored in the map for this entry, and return the value.</p>
<p><strong>NOTE:</strong> This is equivalent to <ahref="struct.OccupiedEntry.html#method.swap_remove"title="method indexmap::map::OccupiedEntry::swap_remove"><code>.swap_remove()</code></a>, replacing this
entry’s position with the last element, and it is deprecated in favor of calling that
explicitly. If you need to preserve the relative order of the keys in the map, use
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.swap_remove"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#190-192">source</a><h4class="code-header">pub fn <ahref="#method.swap_remove"class="fn">swap_remove</a>(self) -> V</h4></section></summary><divclass="docblock"><p>Remove the key, value pair stored in the map for this entry, and return the value.</p>
<p>Like <ahref="https://doc.rust-lang.org/1.77.0/alloc/vec/struct.Vec.html#method.swap_remove"title="method alloc::vec::Vec::swap_remove"><code>Vec::swap_remove</code></a>, the pair is removed by swapping it with
<strong>This perturbs the position of what used to be the last element!</strong></p>
<p>Computes in <strong>O(1)</strong> time (average).</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.shift_remove"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#201-203">source</a><h4class="code-header">pub fn <ahref="#method.shift_remove"class="fn">shift_remove</a>(self) -> V</h4></section></summary><divclass="docblock"><p>Remove the key, value pair stored in the map for this entry, and return the value.</p>
<p>Like <ahref="https://doc.rust-lang.org/1.77.0/alloc/vec/struct.Vec.html#method.remove"title="method alloc::vec::Vec::remove"><code>Vec::remove</code></a>, the pair is removed by shifting all of the
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.remove_entry"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#213-215">source</a><h4class="code-header">pub fn <ahref="#method.remove_entry"class="fn">remove_entry</a>(self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html">(K, V)</a></h4></section><spanclass="item-info"><divclass="stab deprecated"><spanclass="emoji">👎</span><span>Deprecated: <code>remove_entry</code> disrupts the map order – use <code>swap_remove_entry</code> or <code>shift_remove_entry</code> for explicit behavior.</span></div></span></summary><divclass="docblock"><p>Remove and return the key, value pair stored in the map for this entry</p>
<p><strong>NOTE:</strong> This is equivalent to <ahref="struct.OccupiedEntry.html#method.swap_remove_entry"title="method indexmap::map::OccupiedEntry::swap_remove_entry"><code>.swap_remove_entry()</code></a>,
replacing this entry’s position with the last element, and it is deprecated in favor of
calling that explicitly. If you need to preserve the relative order of the keys in the map,
use <ahref="struct.OccupiedEntry.html#method.shift_remove_entry"title="method indexmap::map::OccupiedEntry::shift_remove_entry"><code>.shift_remove_entry()</code></a> instead.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.swap_remove_entry"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#224-227">source</a><h4class="code-header">pub fn <ahref="#method.swap_remove_entry"class="fn">swap_remove_entry</a>(self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html">(K, V)</a></h4></section></summary><divclass="docblock"><p>Remove and return the key, value pair stored in the map for this entry</p>
<p>Like <ahref="https://doc.rust-lang.org/1.77.0/alloc/vec/struct.Vec.html#method.swap_remove"title="method alloc::vec::Vec::swap_remove"><code>Vec::swap_remove</code></a>, the pair is removed by swapping it with
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.shift_remove_entry"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#236-239">source</a><h4class="code-header">pub fn <ahref="#method.shift_remove_entry"class="fn">shift_remove_entry</a>(self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html">(K, V)</a></h4></section></summary><divclass="docblock"><p>Remove and return the key, value pair stored in the map for this entry</p>
<p>Like <ahref="https://doc.rust-lang.org/1.77.0/alloc/vec/struct.Vec.html#method.remove"title="method alloc::vec::Vec::remove"><code>Vec::remove</code></a>, the pair is removed by shifting all of the
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.move_index"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#253-256">source</a><h4class="code-header">pub fn <ahref="#method.move_index"class="fn">move_index</a>(self, to: <aclass="primitive"href="https://doc.rust-lang.org/1.77.0/std/primitive.usize.html">usize</a>)</h4></section></summary><divclass="docblock"><p>Moves the position of the entry to a new index
<p>This is equivalent to <ahref="struct.IndexMap.html#method.move_index"title="method indexmap::map::IndexMap::move_index"><code>IndexMap::move_index</code></a>
coming <code>from</code> the current <ahref="struct.OccupiedEntry.html#method.index"title="method indexmap::map::OccupiedEntry::index"><code>.index()</code></a>.</p>
<ul>
<li>If <code>self.index() < to</code>, the other pairs will shift down while the targeted pair moves up.</li>
<li>If <code>self.index() > to</code>, the other pairs will shift up while the targeted pair moves down.</li>
</ul>
<p><em><strong>Panics</strong></em> if <code>to</code> is out of bounds.</p>
<p>Computes in <strong>O(n)</strong> time (average).</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.swap_indices"class="method"><aclass="src rightside"href="../../src/indexmap/map/core/entry.rs.html#266-269">source</a><h4class="code-header">pub fn <ahref="#method.swap_indices"class="fn">swap_indices</a>(self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.77.0/std/primitive.usize.html">usize</a>)</h4></section></summary><divclass="docblock"><p>Swaps the position of entry with another.</p>
<p>This is equivalent to <ahref="struct.IndexMap.html#method.swap_indices"title="method indexmap::map::IndexMap::swap_indices"><code>IndexMap::swap_indices</code></a>
with the current <ahref="struct.OccupiedEntry.html#method.index"title="method indexmap::map::OccupiedEntry::index"><code>.index()</code></a> as one of the two being swapped.</p>
<p><em><strong>Panics</strong></em> if the <code>other</code> index is out of bounds.</p>
<p>Computes in <strong>O(1)</strong> time (average).</p>
<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>