<!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="Trait implemented by types which can be cleared in place, retaining any allocated memory."><title>Clear in sharded_slab - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><linkrel="stylesheet"href="../static.files/normalize-76eba96aa4d2e634.css"><linkrel="stylesheet"href="../static.files/rustdoc-dd39b87e5fcfba68.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.80.0 (051478957 2024-07-21)"data-channel="1.80.0"data-search-js="search-d52510db62a78183.js"data-settings-js="settings-4313503d2e1961c2.js"><scriptsrc="../static.files/storage-118b08c4c78b968e.js"></script><scriptdefersrc="sidebar-items.js"></script><scriptdefersrc="../static.files/main-20a3ad099b048cf2.js"></script><noscript><linkrel="stylesheet"href="../static.files/noscript-df360f571f6edeae.css"></noscript><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 trait"><!--[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="#">Clear</a></h2><divclass="sidebar-elems"><section><h3><ahref="#required-methods">Required Methods</a></h3><ulclass="block"><li><ahref="#tymethod.clear">clear</a></li></ul><h3><ahref="#foreign-impls">Implementations on Foreign Types</a></h3><ulclass="block"><li><ahref="#impl-Clear-for-Box%3CT%3E">Box<T></a></li><li><ahref="#impl-Clear-for-HashMap%3CK,+V,+S%3E">HashMap<K, V, S></a></li><li><ahref="#impl-Clear-for-HashSet%3CT,+S%3E">HashSet<T, S></a></li><li><ahref="#impl-Clear-for-Mutex%3CT%3E">Mutex<T></a></li><li><ahref="#impl-Clear-for-Option%3CT%3E">Option<T></a></li><li><ahref="#impl-Clear-for-RwLock%3CT%3E">RwLock<T></a></li><li><ahref="#impl-Clear-for-String">String</a></li><li><ahref="#impl-Clear-for-Vec%3CT%3E">Vec<T></a></li></ul><h3><ahref="#implementors">Implementors</a></h3></section><h2><ahref="index.html">In crate sharded_slab</a></h2></div></nav><divclass="sidebar-resizer"></div><main><divclass="width-limiter"><rustdoc-search></rustdoc-search><sectionid="main-content"class="content"><divclass="main-heading"><h1>Trait <ahref="index.html">sharded_slab</a>::<wbr><aclass="trait"href="#">Clear</a><buttonid="copy-path"title="Copy item path to clipboard">Copy item path</button></h1><spanclass="out-of-band"><aclass="src"href="../src/sharded_slab/clear.rs.html#24-27">source</a> · <buttonid="toggle-all-docs"title="collapse all docs">[<span>−</span>]</button></span></div><preclass="rust item-decl"><code>pub trait Clear {
}</code></pre><detailsclass="toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><p>Trait implemented by types which can be cleared in place, retaining any
allocated memory.</p>
<p>This is essentially a generalization of methods on standard library
collection types, including as <ahref="https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.clear"><code>Vec::clear</code></a>, <ahref="https://doc.rust-lang.org/stable/std/string/struct.String.html#method.clear"><code>String::clear</code></a>, and
<ahref="https://doc.rust-lang.org/stable/std/collections/struct.HashMap.html#method.clear"><code>HashMap::clear</code></a>. These methods drop all data stored in the collection,
but retain the collection’s heap allocation for future use. Types such as
<code>BTreeMap</code>, whose <code>clear</code> methods drops allocations, should not
implement this trait.</p>
<p>When implemented for types which do not own a heap allocation, <code>Clear</code>
should reset the type in place if possible. If the type has an empty state
or stores <code>Option</code>s, those values should be reset to the empty state. For
“plain old data” types, which hold no pointers to other data and do not have
an empty or initial state, it’s okay for a <code>Clear</code> implementation to be a
no-op. In that case, it essentially serves as a marker indicating that the
type may be reused to store new data.</p>
</div></details><h2id="required-methods"class="section-header">Required Methods<ahref="#required-methods"class="anchor">§</a></h2><divclass="methods"><detailsclass="toggle method-toggle"open><summary><sectionid="tymethod.clear"class="method"><aclass="src rightside"href="../src/sharded_slab/clear.rs.html#26">source</a><h4class="code-header">fn <ahref="#tymethod.clear"class="fn">clear</a>(&mut self)</h4></section></summary><divclass="docblock"><p>Clear all data in <code>self</code>, retaining the allocated capacithy.</p>