<!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="API documentation for the Rust `Atomic` struct in crate `crossbeam_epoch`."><metaname="keywords"content="rust, rustlang, rust-lang, Atomic"><title>crossbeam_epoch::Atomic - Rust</title><linkrel="stylesheet"type="text/css"href="../normalize.css"><linkrel="stylesheet"type="text/css"href="../rustdoc.css"id="mainThemeStyle"><linkrel="stylesheet"type="text/css"href="../dark.css"><linkrel="stylesheet"type="text/css"href="../light.css"id="themeStyle"><scriptsrc="../storage.js"></script><noscript><linkrel="stylesheet"href="../noscript.css"></noscript><linkrel="shortcut icon"href="../favicon.ico"><styletype="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><bodyclass="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu">☰</div><ahref='../crossbeam_epoch/index.html'><divclass='logo-container'><imgsrc='../rust-logo.png'alt='logo'></div></a><pclass='location'>Struct Atomic</p><divclass="sidebar-elems"><divclass="block items"><aclass="sidebar-title"href="#methods">Methods</a><divclass="sidebar-links"><ahref="#method.compare_and_set">compare_and_set</a><ahref="#method.compare_and_set_weak">compare_and_set_weak</a><ahref="#method.fetch_and">fetch_and</a><ahref="#method.fetch_or">fetch_or</a><ahref="#method.fetch_xor">fetch_xor</a><ahref="#method.into_owned">into_owned</a><ahref="#method.load">load</a><ahref="#method.load_consume">load_consume</a><ahref="#method.new">new</a><ahref="#method.null">null</a><ahref="#method.store">store</a><ahref="#method.swap">swap</a></div><aclass="sidebar-title"href="#implementations">Trait Implementations</a><divclass="sidebar-links"><ahref="#impl-Clone">Clone</a><ahref="#impl-Debug">Debug</a><ahref="#impl-Default">Default</a><ahref="#impl-From%3C*const%20T%3E">From<*const T></a><ahref="#impl-From%3CBox%3CT%3E%3E">From<Box<T>></a><ahref="#impl-From%3COwned%3CT%3E%3E">From<Owned<T>></a><ahref="#impl-From%3CShared%3C%27g%2C%20T%3E%3E">From<Shared<'g, T>></a><ahref="#impl-From%3CT%3E">From<T></a><ahref="#impl-Pointer">Pointer</a><ahref="#impl-Send">Send</a><ahref="#impl-Sync">Sync</a></div><aclass="sidebar-title"href="#synthetic-implementations">Auto Trait Implementations</a><divclass="sidebar-links"><ahref="#impl-RefUnwindSafe">RefUnwindSafe</a><ahref="#impl-Unpin">Unpin</a><ahref="#impl-UnwindSafe">UnwindSafe</a></div><aclass="sidebar-title"href="#blanket-implementations">Blanket Implementations</a><divclass="sidebar-links"><ahref="#impl-Any">Any</a><ahref="#impl-Borrow%3CT%3E">Borrow<T></a><ahref="#impl-BorrowMut%3CT%3E">BorrowMut<T></a><ahref="#impl-From%3CT%3E">From<T></a><ahref="#impl-Into%3CU%3E">Into<U></a><ahref="#impl-ToOwned">ToOwned</a><ahref="#impl-TryFrom%3CU%3E">TryFrom<U></a><ahref="#impl-TryInto%3CU%3E">TryInto<U></a></div></div><pclass='location'><ahref='index.html'>crossbeam_epoch</a></p><script>window.sidebarCurrent={name:'Atomic',ty:'struct',relpath:''};</script><scriptdefersrc="sidebar-items.js"></script></div></nav><divclass="theme-picker"><buttonid="theme-picker"aria-label="Pick another theme!"><imgsrc="../brush.svg"width="18"alt="Pick another theme!"></button><divid="theme-choices"></div></div><scriptsrc="../theme.js"></script><navclass="sub"><formclass="search-form js-only"><divclass="search-container"><div><selectid="crate-search"><optionvalue="All crates">All crates</option></select><inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><aid="settings-menu"href="../settings.html"><imgsrc="../whee
<p>The pointer must be properly aligned. Since it is aligned, a tag can be stored into the unused
least significant bits of the address. More precisely, a tag should be less than <code>(1 << mem::align_of::<T>().trailing_zeros())</code>.</p>
<p>Any method that loads the pointer must be passed a reference to a <ahref="struct.Guard.html"><code>Guard</code></a>.</p>
</div><h2id='methods'class='small-section-header'>Methods<ahref='#methods'class='anchor'></a></h2><h3id='impl'class='impl'><codeclass='in-band'>impl<T><aclass="struct"href="../crossbeam_epoch/struct.Atomic.html"title="struct crossbeam_epoch::Atomic">Atomic</a><T></code><ahref='#impl'class='anchor'></a><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#135-511'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.null'class="method"><codeid='null.v'>pub fn <ahref='#method.null'class='fnname'>null</a>() -><aclass="struct"href="../crossbeam_epoch/struct.Atomic.html"title="struct crossbeam_epoch::Atomic">Atomic</a><T></code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#154-159'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Returns a new null atomic pointer.</p>
</div><h4id='method.new'class="method"><codeid='new.v'>pub fn <ahref='#method.new'class='fnname'>new</a>(value: T) -><aclass="struct"href="../crossbeam_epoch/struct.Atomic.html"title="struct crossbeam_epoch::Atomic">Atomic</a><T></code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#187-189'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Allocates <code>value</code> on the heap and returns a new atomic pointer pointing to it.</p>
</div><h4id='method.load'class="method"><codeid='load.v'>pub fn <ahref='#method.load'class='fnname'>load</a><'g>(&self, ord: <aclass="enum"href="https://doc.rust-lang.org/nightly/core/sync/atomic/enum.Ordering.html"title="enum core::sync::atomic::Ordering">Ordering</a>, _: &'g <aclass="struct"href="../crossbeam_epoch/struct.Guard.html"title="struct crossbeam_epoch::Guard">Guard</a>) -><aclass="struct"href="../crossbeam_epoch/struct.Shared.html"title="struct crossbeam_epoch::Shared">Shared</a><'g, T></code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#208-210'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Loads a <code>Shared</code> from the atomic pointer.</p>
<p>This method takes an <ahref="https://doc.rust-lang.org/std/sync/atomic/enum.Ordering.html"><code>Ordering</code></a> argument which describes the memory ordering of this
</div><h4id='method.load_consume'class="method"><codeid='load_consume.v'>pub fn <ahref='#method.load_consume'class='fnname'>load_consume</a><'g>(&self, _: &'g <aclass="struct"href="../crossbeam_epoch/struct.Guard.html"title="struct crossbeam_epoch::Guard">Guard</a>) -><aclass="struct"href="../crossbeam_epoch/struct.Shared.html"title="struct crossbeam_epoch::Shared">Shared</a><'g, T></code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#233-235'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Loads a <code>Shared</code> from the atomic pointer using a "consume" memory ordering.</p>
<p>This is similar to the "acquire" ordering, except that an ordering is
only guaranteed with operations that "depend on" the result of the load.
However consume loads are usually much faster than acquire loads on
architectures with a weak memory model since they don't require memory
fence instructions.</p>
<p>The exact definition of "depend on" is a bit vague, but it works as you
would expect in practice since a lot of software, especially the Linux
</div><h4id='method.store'class="method"><codeid='store.v'>pub fn <ahref='#method.store'class='fnname'>store</a><'g, P: <aclass="trait"href="../crossbeam_epoch/trait.Pointer.html"title="trait crossbeam_epoch::Pointer">Pointer</a><T>>(&self, new: P, ord: <aclass="enum"href="https://doc.rust-lang.org/nightly/core/sync/atomic/enum.Ordering.html"title="enum core::sync::atomic::Ordering">Ordering</a>)</code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#254-256'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Stores a <code>Shared</code> or <code>Owned</code> pointer into the atomic pointer.</p>
<p>This method takes an <ahref="https://doc.rust-lang.org/std/sync/atomic/enum.Ordering.html"><code>Ordering</code></a> argument which describes the memory ordering of this
</div><h4id='method.swap'class="method"><codeid='swap.v'>pub fn <ahref='#method.swap'class='fnname'>swap</a><'g, P: <aclass="trait"href="../crossbeam_epoch/trait.Pointer.html"title="trait crossbeam_epoch::Pointer">Pointer</a><T>>(<br> &self, <br> new: P, <br> ord: <aclass="enum"href="https://doc.rust-lang.org/nightly/core/sync/atomic/enum.Ordering.html"title="enum core::sync::atomic::Ordering">Ordering</a>, <br> _: &'g <aclass="struct"href="../crossbeam_epoch/struct.Guard.html"title="struct crossbeam_epoch::Guard">Guard</a><br>) -><aclass="struct"href="../crossbeam_epoch/struct.Shared.html"title="struct crossbeam_epoch::Shared">Shared</a><'g, T></code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#276-278'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Stores a <code>Shared</code> or <code>Owned</code> pointer into the atomic pointer, returning the previous
<code>Shared</code>.</p>
<p>This method takes an <ahref="https://doc.rust-lang.org/std/sync/atomic/enum.Ordering.html"><code>Ordering</code></a> argument which describes the memory ordering of this
</div><h4id='method.compare_and_set'class="method"><codeid='compare_and_set.v'>pub fn <ahref='#method.compare_and_set'class='fnname'>compare_and_set</a><'g, O, P>(<br> &self, <br> current: <aclass="struct"href="../crossbeam_epoch/struct.Shared.html"title="struct crossbeam_epoch::Shared">Shared</a><T>, <br> new: P, <br> ord: O, <br> _: &'g <aclass="struct"href="../crossbeam_epoch/struct.Guard.html"title="struct crossbeam_epoch::Guard">Guard</a><br>) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="struct"href="../crossbeam_epoch/struct.Shared.html"title="struct crossbeam_epoch::Shared">Shared</a><'g, T>, <aclass="struct"href="../crossbeam_epoch/struct.CompareAndSetError.html"title="struct crossbeam_epoch::CompareAndSetError">CompareAndSetError</a><'g, T, P>><spanclass="where fmt-newline">where<br> O: <aclass="trait"href="../crossbeam_epoch/trait.CompareAndSetOrdering.html"title="trait crossbeam_epoch::CompareAndSetOrdering">CompareAndSetOrdering</a>,<br> P: <aclass="trait"href="../crossbeam_epoch/trait.Pointer.html"title="trait crossbeam_epoch::Pointer">Pointer</a><T>, </span></code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#306-327'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Stores the pointer <code>new</code> (either <code>Shared</code> or <code>Owned</code>) into the atomic pointer if the current
value is the same as <code>current</code>. The tag is also taken into account, so two pointers to the
same object, but with different tags, will not be considered equal.</p>
<p>The return value is a result indicating whether the new pointer was written. On success the
pointer that was written is returned. On failure the actual current value and <code>new</code> are
returned.</p>
<p>This method takes a <ahref="trait.CompareAndSetOrdering.html"><code>CompareAndSetOrdering</code></a> argument which describes the memory
</div><h4id='method.compare_and_set_weak'class="method"><codeid='compare_and_set_weak.v'>pub fn <ahref='#method.compare_and_set_weak'class='fnname'>compare_and_set_weak</a><'g, O, P>(<br> &self, <br> current: <aclass="struct"href="../crossbeam_epoch/struct.Shared.html"title="struct crossbeam_epoch::Shared">Shared</a><T>, <br> new: P, <br> ord: O, <br> _: &'g <aclass="struct"href="../crossbeam_epoch/struct.Guard.html"title="struct crossbeam_epoch::Guard">Guard</a><br>) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="struct"href="../crossbeam_epoch/struct.Shared.html"title="struct crossbeam_epoch::Shared">Shared</a><'g, T>, <aclass="struct"href="../crossbeam_epoch/struct.CompareAndSetError.html"title="struct crossbeam_epoch::CompareAndSetError">CompareAndSetError</a><'g, T, P>><spanclass="where fmt-newline">where<br> O: <aclass="trait"href="../crossbeam_epoch/trait.CompareAndSetOrdering.html"title="trait crossbeam_epoch::CompareAndSetOrdering">CompareAndSetOrdering</a>,<br> P: <aclass="trait"href="../crossbeam_epoch/trait.Pointer.html"title="trait crossbeam_epoch::Pointer">Pointer</a><T>, </span></code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#376-397'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Stores the pointer <code>new</code> (either <code>Shared</code> or <code>Owned</code>) into the atomic pointer if the current
value is the same as <code>current</code>. The tag is also taken into account, so two pointers to the
same object, but with different tags, will not be considered equal.</p>
<p>Unlike <ahref="struct.Atomic.html#method.compare_and_set"><code>compare_and_set</code></a>, this method is allowed to spuriously fail even when comparison
succeeds, which can result in more efficient code on some platforms. The return value is a
result indicating whether the new pointer was written. On success the pointer that was
written is returned. On failure the actual current value and <code>new</code> are returned.</p>
<p>This method takes a <ahref="trait.CompareAndSetOrdering.html"><code>CompareAndSetOrdering</code></a> argument which describes the memory
</div><h4id='method.fetch_and'class="method"><codeid='fetch_and.v'>pub fn <ahref='#method.fetch_and'class='fnname'>fetch_and</a><'g>(<br> &self, <br> val: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br> ord: <aclass="enum"href="https://doc.rust-lang.org/nightly/core/sync/atomic/enum.Ordering.html"title="enum core::sync::atomic::Ordering">Ordering</a>, <br> _: &'g <aclass="struct"href="../crossbeam_epoch/struct.Guard.html"title="struct crossbeam_epoch::Guard">Guard</a><br>) -><aclass="struct"href="../crossbeam_epoch/struct.Shared.html"title="struct crossbeam_epoch::Shared">Shared</a><'g, T></code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#420-422'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Bitwise "and" with the current tag.</p>
<p>Performs a bitwise "and" operation on the current tag and the argument <code>val</code>, and sets the
new tag to the result. Returns the previous pointer.</p>
<p>This method takes an <ahref="https://doc.rust-lang.org/std/sync/atomic/enum.Ordering.html"><code>Ordering</code></a> argument which describes the memory ordering of this
</div><h4id='method.fetch_or'class="method"><codeid='fetch_or.v'>pub fn <ahref='#method.fetch_or'class='fnname'>fetch_or</a><'g>(<br> &self, <br> val: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br> ord: <aclass="enum"href="https://doc.rust-lang.org/nightly/core/sync/atomic/enum.Ordering.html"title="enum core::sync::atomic::Ordering">Ordering</a>, <br> _: &'g <aclass="struct"href="../crossbeam_epoch/struct.Guard.html"title="struct crossbeam_epoch::Guard">Guard</a><br>) -><aclass="struct"href="../crossbeam_epoch/struct.Shared.html"title="struct crossbeam_epoch::Shared">Shared</a><'g, T></code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#445-447'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Bitwise "or" with the current tag.</p>
<p>Performs a bitwise "or" operation on the current tag and the argument <code>val</code>, and sets the
new tag to the result. Returns the previous pointer.</p>
<p>This method takes an <ahref="https://doc.rust-lang.org/std/sync/atomic/enum.Ordering.html"><code>Ordering</code></a> argument which describes the memory ordering of this
</div><h4id='method.fetch_xor'class="method"><codeid='fetch_xor.v'>pub fn <ahref='#method.fetch_xor'class='fnname'>fetch_xor</a><'g>(<br> &self, <br> val: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br> ord: <aclass="enum"href="https://doc.rust-lang.org/nightly/core/sync/atomic/enum.Ordering.html"title="enum core::sync::atomic::Ordering">Ordering</a>, <br> _: &'g <aclass="struct"href="../crossbeam_epoch/struct.Guard.html"title="struct crossbeam_epoch::Guard">Guard</a><br>) -><aclass="struct"href="../crossbeam_epoch/struct.Shared.html"title="struct crossbeam_epoch::Shared">Shared</a><'g, T></code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#470-472'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Bitwise "xor" with the current tag.</p>
<p>Performs a bitwise "xor" operation on the current tag and the argument <code>val</code>, and sets the
new tag to the result. Returns the previous pointer.</p>
<p>This method takes an <ahref="https://doc.rust-lang.org/std/sync/atomic/enum.Ordering.html"><code>Ordering</code></a> argument which describes the memory ordering of this
</div><h4id='method.into_owned'class="method"><codeid='into_owned.v'>pub unsafe fn <ahref='#method.into_owned'class='fnname'>into_owned</a>(self) -><aclass="struct"href="../crossbeam_epoch/struct.Owned.html"title="struct crossbeam_epoch::Owned">Owned</a><T></code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#508-510'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Takes ownership of the pointee.</p>
<p>This consumes the atomic and converts it into <ahref="../crossbeam_epoch/struct.Owned.html"title="`Owned`"><code>Owned</code></a>. As <ahref="../crossbeam_epoch/struct.Atomic.html"title="`Atomic`"><code>Atomic</code></a> doesn't have a
destructor and doesn't drop the pointee while <ahref="../crossbeam_epoch/struct.Owned.html"title="`Owned`"><code>Owned</code></a> does, this is suitable for
</div></div><h3id='impl-Debug'class='impl'><codeclass='in-band'>impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html"title="trait core::fmt::Debug">Debug</a> for <aclass="struct"href="../crossbeam_epoch/struct.Atomic.html"title="struct crossbeam_epoch::Atomic">Atomic</a><T></code><ahref='#impl-Debug'class='anchor'></a><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#513-523'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.fmt'class="method hidden"><codeid='fmt.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt'class='fnname'>fmt</a>(&self, f: &mut <aclass="struct"href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html"title="struct core::fmt::Formatter">Formatter</a>) -><aclass="type"href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html"title="type core::fmt::Result">Result</a></code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#514-522'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Formats the value using the given formatter. <ahref="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></div><h3id='impl-Pointer'class='impl'><codeclass='in-band'>impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html"title="trait core::fmt::Pointer">Pointer</a> for <aclass="struct"href="../crossbeam_epoch/struct.Atomic.html"title="struct crossbeam_epoch::Atomic">Atomic</a><T></code><ahref='#impl-Pointer'class='anchor'></a><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#525-531'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.fmt-1'class="method hidden"><codeid='fmt.v-1'>fn <ahref='https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html#tymethod.fmt'class='fnname'>fmt</a>(&self, f: &mut <aclass="struct"href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html"title="struct core::fmt::Formatter">Formatter</a>) -><aclass="type"href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html"title="type core::fmt::Result">Result</a></code><aclass='srclink'href='../src/crossbeam_epoch/atomic.rs.html#526-530'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Formats the value using the given formatter.</p>
</div></div><h3id='impl-ToOwned'class='impl'><codeclass='in-band'>impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html"title="trait alloc::borrow::ToOwned">ToOwned</a> for T <spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></code><ahref='#impl-ToOwned'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#81-92'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='associatedtype.Owned'class="type"><codeid='Owned.t'>type <ahref='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned'class="type">Owned</a> = T</code></h4><divclass='docblock'><p>The resulting type after obtaining ownership.</p>
</div><h4id='method.to_owned'class="method hidden"><codeid='to_owned.v'>fn <ahref='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned'class='fnname'>to_owned</a>(&self) -> T</code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#85-87'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Creates owned data from borrowed data, usually by cloning. <ahref="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></p>
</div><h4id='method.clone_into'class="method hidden"><codeid='clone_into.v'>fn <ahref='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into'class='fnname'>clone_into</a>(&self, target: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#89-91'title='goto source code'>[src]</a></h4><divclass='stability hidden'><divclass='stab unstable'><details><summary><spanclass='emoji'>🔬</span> This is a nightly-only experimental API. (<code>toowned_clone_into</code>)</summary><p>recently added</p>
</details></div></div><divclass='docblock hidden'><p>Uses borrowed data to replace owned data, usually by cloning. <ahref="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></p>
</div></div><h3id='impl-TryFrom%3CU%3E'class='impl'><codeclass='in-band'>impl<T, U><aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U> for T <spanclass="where fmt-newline">where<br> U: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"title="trait core::convert::Into">Into</a><T>, </span></code><ahref='#impl-TryFrom%3CU%3E'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#571-577'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='associatedtype.Error'class="type"><codeid='Error.t'>type <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error'class="type">Error</a> = <aclass="enum"href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html"title="enum core::convert::Infallible">Infallible</a></code></h4><divclass='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4id='method.try_from'class="method hidden"><codeid='try_from.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from'class='fnname'>try_from</a>(value: U) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><T, <T as <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U>>::<aclass="type"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#574-576'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3id='impl-TryInto%3CU%3E'class='impl'><codeclass='in-band'>impl<T, U><aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html"title="trait core::convert::TryInto">TryInto</a><U> for T <spanclass="where fmt-newline">where<br> U: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>, </span></code><ahref='#impl-TryInto%3CU%3E'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#559-566'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='associatedtype.Error-1'class="type"><codeid='Error.t-1'>type <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error'class="type">Error</a> = <U as <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="type"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a></code></h4><divclass='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4id='method.try_into'class="method hidden"><codeid='try_into.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into'class='fnname'>try_into</a>(self) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><U, <U as <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="type"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#563-565'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3id='impl-BorrowMut%3CT%3E'class='impl'><codeclass='in-band'>impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html"title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T <spanclass="where fmt-newline">where<br> T: ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></code><ahref='#impl-BorrowMut%3CT%3E'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218-220'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.borrow_mut'class="method hidden"><codeid='borrow_mut.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut'class='fnname'>borrow_mut</a>(&mut self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#219'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Mutably borrows from an owned value. <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></div><h3id='impl-Borrow%3CT%3E'class='impl'><codeclass='in-band'>impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><T> for T <spanclass="where fmt-newline">where<br> T: ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></code><ahref='#impl-Borrow%3CT%3E'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213-215'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.borrow'class="method hidden"><codeid='borrow.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow'class='fnname'>borrow</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#214'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Immutably borrows from an owned value. <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></div><h3id='impl-Any'class='impl'><codeclass='in-band'>impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a> for T <spanclass="where fmt-newline">where<br> T: 'static + ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></code><ahref='#impl-Any'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#100-102'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.type_id'class="method hidden"><codeid='type_id.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id'class='fnname'>type_id</a>(&self) -><aclass="struct"href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html"title="struct core::any::TypeId">TypeId</a></code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#101'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Gets the <code>TypeId</code> of <code>self</code>. <ahref="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></div></div></section><sectionid="search"class="content hidden"></section><sectionclass="footer"></section><asideid="help"class="hidden"><div><h1class="hidden">Help</h1><divclass="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd>↑</kbd></dt><dd>Move up in search results</dd><dt><kbd>↓</kbd></dt><dd>Move down in search results</dd><dt><kbd>↹</kbd></dt><dd>Switch tab</dd><dt><kbd>⏎</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><divclass="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath="../";window.currentCrate="crossbeam_epoch";</script><scriptsrc="../aliases.js"></script><scriptsrc="../main.js"></script><scriptdefersrc="../search-index.js"></script></body></html>