<!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="API documentation for the Rust `Asc` struct in crate `counting_pointer`."><meta name="keywords" content="rust, rustlang, rust-lang, Asc"><title>counting_pointer::Asc - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script id="default-settings"></script><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../counting_pointer/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class="location">Struct Asc</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#implementations">Methods</a><div class="sidebar-links"><a href="#method.as_ptr">as_ptr</a><a href="#method.count">count</a><a href="#method.downcast">downcast</a><a href="#method.from_raw_alloc">from_raw_alloc</a><a href="#method.from_slice_alloc">from_slice_alloc</a><a href="#method.get_mut">get_mut</a><a href="#method.into_raw_alloc">into_raw_alloc</a><a href="#method.make_mut">make_mut</a><a href="#method.new">new</a><a href="#method.new_any">new_any</a><a href="#method.ptr_eq">ptr_eq</a><a href="#method.to_any">to_any</a></div><a class="sidebar-title" href="#trait-implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-AsRef%3CT%3E">AsRef<T></a><a href="#impl-Borrow%3CT%3E">Borrow<T></a><a href="#impl-Clone">Clone</a><a href="#impl-Debug">Debug</a><a href="#impl-Default">Default</a><a href="#impl-Deref">Deref</a><a href="#impl-Display">Display</a><a href="#impl-Drop">Drop</a><a href="#impl-Eq">Eq</a><a href="#impl-From%3C%26%27_%20%5BT%5D%3E">From<&'_ [T]></a><a href="#impl-From%3CT%3E">From<T></a><a href="#impl-Hash">Hash</a><a href="#impl-Ord">Ord</a><a href="#impl-PartialEq%3CAsc%3CT%2C%20A%3E%3E">PartialEq<Asc<T, A>></a><a href="#impl-PartialOrd%3CAsc%3CT%2C%20A%3E%3E">PartialOrd<Asc<T, A>></a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><a class="sidebar-title" href="#blanket-implementations">Blanket Implementations</a><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow<T></a><a href="#impl-BorrowMut%3CT%3E">BorrowMut<T></a><a href="#impl-From%3C!%3E">From<!></a><a href="#impl-From%3CT%3E">From<T></a><a href="#impl-Into%3CU%3E">Into<U></a><a href="#impl-ToOwned">ToOwned</a><a href="#impl-ToString">ToString</a><a href="#impl-TryFrom%3CU%3E">TryFrom<U></a><a href="#impl-TryInto%3CU%3E">TryInto<U></a></div></div><p class="location"><a href="index.html">counting_pointer</a></p><script>window.sidebarCurrent = {name: "Asc", ty: "struct", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><span class="help-button">?</span>
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span><a class="srclink" href="../src/counting_pointer/asc.rs.html#127-133" title="goto source code">[src]</a></span><span class="in-band">Struct <a href="index.html">counting_pointer</a>::<wbr><a class="struct" href="">Asc</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust struct">pub struct Asc<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A = <a class="struct" href="https://doc.rust-lang.org/nightly/std/alloc/struct.System.html" title="struct std::alloc::System">System</a>> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span> { /* fields omitted */ }</pre></div><div class="docblock"><p>A thread-safe strong reference-counting pointer. 'Asc' stands for 'Atomic Strong Counted.'</p>
<p>It behaves like <code>std::Sync::Arc</code> except for that this treats only strong pointer; i.e. <code>Asc</code>
gives up weak pointer for the performance.</p>
<p>The inherent methods of <code>Asc</code> are all associated funcitons, which means that you have to call
them as e.g., <code>Asc::get_mut(&mut value)</code> instead of <code>value.get_mut()</code> . This avoids conflicts
with methods of the inner type <code>T</code> .</p>
<h1 id="thread-safety" class="section-header"><a href="#thread-safety">Thread Safety</a></h1>
<p>Unlike to <a href="struct.Sc.html"><code>Sc</code></a> , <code>Asc</code> uses atomic operations for its reference counting. This means that it
is thread-safe. The disadvangate is that atomic operations are more expensive than ordinary
memory access.</p>
</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><h3 id="impl" class="impl"><code class="in-band">impl<T, A> <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#216-294" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.new" class="method"><code>pub fn <a href="#method.new" class="fnname">new</a>(val: T, alloc: A) -> Self</code><a class="srclink" href="../src/counting_pointer/asc.rs.html#230-245" title="goto source code">[src]</a></h4><div class="docblock"><p>Creates a new instance.</p>
<h1 id="examples" class="section-header"><a href="#examples">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">alloc</span>::<span class="ident">System</span>;
<span class="kw">use</span> <span class="ident">counting_pointer</span>::<span class="ident">Asc</span>;
<span class="kw">let</span> <span class="ident">_five</span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">new</span>(<span class="number">5</span>, <span class="ident">System</span>);</pre></div>
</div><h4 id="method.from_slice_alloc" class="method"><code>pub fn <a href="#method.from_slice_alloc" class="fnname">from_slice_alloc</a>(vals: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&[T]</a>, alloc: A) -> <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>, A> <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, </span></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#259-293" title="goto source code">[src]</a></h4><div class="docblock"><p>Creates a new instance of <code>Asc<[T], A></code> .</p>
<h1 id="examples-1" class="section-header"><a href="#examples-1">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">alloc</span>::<span class="ident">System</span>;
<span class="kw">use</span> <span class="ident">counting_pointer</span>::<span class="ident">Asc</span>;
<span class="kw">let</span> <span class="ident">vals</span>: [<span class="ident">i32</span>; <span class="number">4</span>] <span class="op">=</span> [<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
<span class="kw">let</span> <span class="ident">sc</span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">from_slice_alloc</span>(<span class="kw-2">&</span><span class="ident">vals</span>, <span class="ident">System</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="kw-2">&</span><span class="ident">vals</span>, <span class="kw-2">&</span><span class="kw-2">*</span><span class="ident">sc</span>);</pre></div>
</div></div><h3 id="impl-1" class="impl"><code class="in-band">impl<A> <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-1" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#296-329" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.new_any" class="method"><code>pub fn <a href="#method.new_any" class="fnname">new_any</a><T>(val: T, alloc: A) -> Self <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>, </span></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#310-328" title="goto source code">[src]</a></h4><div class="docblock"><p>Creates <code>Asc<dyn Any></code> instance.</p>
<h1 id="examples-2" class="section-header"><a href="#examples-2">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">alloc</span>::<span class="ident">System</span>;
<span class="kw">use</span> <span class="ident">counting_pointer</span>::<span class="ident">Asc</span>;
<span class="kw">let</span> <span class="ident">_five</span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">new_any</span>(<span class="number">5</span>, <span class="ident">System</span>);</pre></div>
</div></div><h3 id="impl-2" class="impl"><code class="in-band">impl<T, A> <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-2" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#443-464" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.to_any" class="method"><code>pub fn <a href="#method.to_any" class="fnname">to_any</a>(this: Self) -> <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>, A> <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>, </span></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#457-463" title="goto source code">[src]</a></h4><div class="docblock"><p>Consumes <code>this</code>, returning <code>Asc<dyn Any, A></code></p>
<h1 id="examples-3" class="section-header"><a href="#examples-3">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">counting_pointer</span>::<span class="ident">Asc</span>;
<span class="kw">let</span> <span class="ident">sc</span>: <span class="ident">Asc</span><span class="op"><</span><span class="ident">i32</span><span class="op">></span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">from</span>(<span class="number">6</span>);
<span class="kw">let</span> <span class="ident">any</span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">to_any</span>(<span class="ident">sc</span>);</pre></div>
</div></div><h3 id="impl-3" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-3" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#466-625" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.as_ptr" class="method"><code>pub fn <a href="#method.as_ptr" class="fnname">as_ptr</a>(this: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*const T</a></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#484-486" title="goto source code">[src]</a></h4><div class="docblock"><p>Provides a raw pointer to the data.</p>
<p>The counts are not affected in any way and the <code>Asc</code> is not consumed. The pointer is valid
for as long as another <code>Asc</code> instance is pointing to the address.</p>
<h1 id="examples-4" class="section-header"><a href="#examples-4">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">counting_pointer</span>::<span class="ident">Asc</span>;
<span class="kw">let</span> <span class="ident">x</span>: <span class="ident">Asc</span><span class="op"><</span><span class="ident">String</span><span class="op">></span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">from</span>(<span class="ident">String</span>::<span class="ident">from</span>(<span class="string">"Hello"</span>));
<span class="kw">let</span> <span class="ident">x_ptr</span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">as_ptr</span>(<span class="kw-2">&</span><span class="ident">x</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="string">"Hello"</span>, <span class="kw">unsafe</span> { <span class="kw-2">&</span><span class="kw-2">*</span><span class="ident">x_ptr</span> });</pre></div>
</div><h4 id="method.count" class="method"><code>pub fn <a href="#method.count" class="fnname">count</a>(this: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#505-510" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the number of <code>Asc</code> pointers pointing to the same address.</p>
<h1 id="examples-5" class="section-header"><a href="#examples-5">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">counting_pointer</span>::<span class="ident">Asc</span>;
<span class="kw">let</span> <span class="ident">five</span>: <span class="ident">Asc</span><span class="op"><</span><span class="ident">i32</span><span class="op">></span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">from</span>(<span class="number">5</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">1</span>, <span class="ident">Asc</span>::<span class="ident">count</span>(<span class="kw-2">&</span><span class="ident">five</span>));
<span class="kw">let</span> <span class="ident">_also_five</span> <span class="op">=</span> <span class="ident">five</span>.<span class="ident">clone</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">2</span>, <span class="ident">Asc</span>::<span class="ident">count</span>(<span class="kw-2">&</span><span class="ident">five</span>));
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">2</span>, <span class="ident">Asc</span>::<span class="ident">count</span>(<span class="kw-2">&</span><span class="ident">_also_five</span>));
<span class="ident">drop</span>(<span class="ident">five</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">1</span>, <span class="ident">Asc</span>::<span class="ident">count</span>(<span class="kw-2">&</span><span class="ident">_also_five</span>));</pre></div>
</div><h4 id="method.get_mut" class="method"><code>pub fn <a href="#method.get_mut" class="fnname">get_mut</a>(this: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#535-541" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns a mutable reference into the given <code>Asc</code> , if no other <code>Asc</code> instance is pointing to
the same address; otherwise returns <code>None</code> .</p>
<p>See also <a href="#method.make_mut"><code>make_mut</code></a> , which will <code>clone</code> the inner value when some other <code>Asc</code> instances
are.</p>
<h1 id="examples-6" class="section-header"><a href="#examples-6">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">counting_pointer</span>::<span class="ident">Asc</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">x</span>: <span class="ident">Asc</span><span class="op"><</span><span class="ident">i32</span><span class="op">></span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">from</span>(<span class="number">3</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">3</span>, <span class="kw-2">*</span><span class="ident">x</span>);
<span class="kw-2">*</span><span class="ident">Asc</span>::<span class="ident">get_mut</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">x</span>).<span class="ident">unwrap</span>() <span class="op">=</span> <span class="number">4</span>;
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">4</span>, <span class="kw-2">*</span><span class="ident">x</span>);
<span class="kw">let</span> <span class="ident">_y</span> <span class="op">=</span> <span class="ident">x</span>.<span class="ident">clone</span>();
<span class="kw">let</span> <span class="ident">n</span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">get_mut</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">x</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">n</span>.<span class="ident">is_none</span>());</pre></div>
</div><h4 id="method.ptr_eq" class="method"><code>pub fn <a href="#method.ptr_eq" class="fnname">ptr_eq</a>(this: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#557-559" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns <code>true</code> if the two <code>Asc</code> instances point to the same address, or <code>false</code> .</p>
<h1 id="examples-7" class="section-header"><a href="#examples-7">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">counting_pointer</span>::<span class="ident">Asc</span>;
<span class="kw">let</span> <span class="ident">five</span>: <span class="ident">Asc</span><span class="op"><</span><span class="ident">i32</span><span class="op">></span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">from</span>(<span class="number">5</span>);
<span class="kw">let</span> <span class="ident">same_five</span> <span class="op">=</span> <span class="ident">five</span>.<span class="ident">clone</span>();
<span class="kw">let</span> <span class="ident">other_five</span>: <span class="ident">Asc</span><span class="op"><</span><span class="ident">i32</span><span class="op">></span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">from</span>(<span class="number">5</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="bool-val">true</span>, <span class="ident">Asc</span>::<span class="ident">ptr_eq</span>(<span class="kw-2">&</span><span class="ident">five</span>, <span class="kw-2">&</span><span class="ident">same_five</span>));
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="bool-val">false</span>, <span class="ident">Asc</span>::<span class="ident">ptr_eq</span>(<span class="kw-2">&</span><span class="ident">five</span>, <span class="kw-2">&</span><span class="ident">other_five</span>));</pre></div>
</div><h4 id="method.into_raw_alloc" class="method"><code>pub fn <a href="#method.into_raw_alloc" class="fnname">into_raw_alloc</a>(this: Self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*const T</a>, A<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#579-582" title="goto source code">[src]</a></h4><div class="docblock"><p>Consumes <code>this</code> , returning the wrapped pointer and the allocator.</p>
<p>To avoid memory leak, the returned pointer must be converted back to an <code>Asc</code> using
<a href="#method.from_raw_alloc"><code>from_raw_alloc</code></a> .</p>
<p>Using this function and <a href="#method.from_raw_alloc"><code>from_raw_alloc</code></a> , user can create an <code>Asc<T: ?Sized></code> instance.</p>
<h1 id="examples-8" class="section-header"><a href="#examples-8">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">counting_pointer</span>::<span class="ident">Asc</span>;
<span class="kw">let</span> <span class="ident">asc</span>: <span class="ident">Asc</span><span class="op"><</span><span class="ident">String</span><span class="op">></span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">from</span>(<span class="string">"Foo"</span>.<span class="ident">to_string</span>());
<span class="kw">let</span> (<span class="ident">ptr</span>, <span class="ident">alloc</span>) <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">into_raw_alloc</span>(<span class="ident">asc</span>);
<span class="kw">let</span> <span class="ident">_asc</span>: <span class="ident">Asc</span><span class="op"><</span><span class="ident">dyn</span> <span class="ident">AsRef</span><span class="op"><</span><span class="ident">str</span><span class="op">></span><span class="op">></span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">Asc</span>::<span class="ident">from_raw_alloc</span>(<span class="ident">ptr</span>, <span class="ident">alloc</span>) };</pre></div>
</div><h4 id="method.from_raw_alloc" class="method"><code>pub unsafe fn <a href="#method.from_raw_alloc" class="fnname">from_raw_alloc</a>(ptr: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*const T</a>, alloc: A) -> Self</code><a class="srclink" href="../src/counting_pointer/asc.rs.html#606-611" title="goto source code">[src]</a></h4><div class="docblock"><p>Constructs a new instance from a raw pointer and allocator.</p>
<p>The raw pointer must have been previously returned by a call to <a href="#method.into_raw_alloc"><code>into_raw_alloc</code></a> .</p>
<p>Using this function and <a href="#method.into_raw_alloc"><code>into_raw_alloc</code></a> , user can create an <code>Asc<T: ?Sized></code> instance.</p>
<h1 id="safety" class="section-header"><a href="#safety">Safety</a></h1>
<p>It may lead to memory unsafety to use improperly, even if the returned value will never be
accessed.</p>
<h1 id="examples-9" class="section-header"><a href="#examples-9">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">counting_pointer</span>::<span class="ident">Asc</span>;
<span class="kw">let</span> <span class="ident">asc</span>: <span class="ident">Asc</span><span class="op"><</span><span class="ident">String</span><span class="op">></span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">from</span>(<span class="string">"Foo"</span>.<span class="ident">to_string</span>());
<span class="kw">let</span> (<span class="ident">ptr</span>, <span class="ident">alloc</span>) <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">into_raw_alloc</span>(<span class="ident">asc</span>);
<span class="kw">let</span> <span class="ident">_asc</span>: <span class="ident">Asc</span><span class="op"><</span><span class="ident">dyn</span> <span class="ident">AsRef</span><span class="op"><</span><span class="ident">str</span><span class="op">></span><span class="op">></span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">Asc</span>::<span class="ident">from_raw_alloc</span>(<span class="ident">ptr</span>, <span class="ident">alloc</span>) };</pre></div>
</div></div><h3 id="impl-4" class="impl"><code class="in-band">impl<T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-4" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#627-664" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.make_mut" class="method"><code>pub fn <a href="#method.make_mut" class="fnname">make_mut</a>(this: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</code><a class="srclink" href="../src/counting_pointer/asc.rs.html#656-663" title="goto source code">[src]</a></h4><div class="docblock"><p>Makes a mutable reference into the given <code>Asc</code> .</p>
<p>If another <code>Asc</code> instance is pointing to the same address, <code>make_mut</code> will <code>clone</code> the inner
value to a new allocation to ensure unique ownership.</p>
<p>See also <a href="#method.get_mut"><code>get_mut</code></a> , which will fail rather than cloning.</p>
<h1 id="examples-10" class="section-header"><a href="#examples-10">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">counting_pointer</span>::<span class="ident">Asc</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">data</span>: <span class="ident">Asc</span><span class="op"><</span><span class="ident">i32</span><span class="op">></span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">from</span>(<span class="number">5</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">5</span>, <span class="kw-2">*</span><span class="ident">data</span>);
<span class="kw-2">*</span><span class="ident">Asc</span>::<span class="ident">make_mut</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">data</span>) <span class="op">+</span><span class="op">=</span> <span class="number">1</span>; <span class="comment">// Won't clone anything.</span>
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">6</span>, <span class="kw-2">*</span><span class="ident">data</span>);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">data2</span> <span class="op">=</span> <span class="ident">data</span>.<span class="ident">clone</span>(); <span class="comment">// Won't clone the inner data.</span>
<span class="kw-2">*</span><span class="ident">Asc</span>::<span class="ident">make_mut</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">data</span>) <span class="op">+</span><span class="op">=</span> <span class="number">1</span>; <span class="comment">// Clones inner data.</span>
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">7</span>, <span class="kw-2">*</span><span class="ident">data</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">6</span>, <span class="kw-2">*</span><span class="ident">data2</span>);</pre></div>
</div></div><h3 id="impl-5" class="impl"><code class="in-band">impl<A> <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-5" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#666-700" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.downcast" class="method"><code>pub fn <a href="#method.downcast" class="fnname">downcast</a><T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A>, Self></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#687-699" title="goto source code">[src]</a></h4><div class="docblock"><p>Attempts to downcast the <code>Asc<dyn Any, A></code> to a concrete type.</p>
<h1 id="examples-11" class="section-header"><a href="#examples-11">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">alloc</span>::<span class="ident">System</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">any</span>::<span class="ident">Any</span>;
<span class="kw">use</span> <span class="ident">counting_pointer</span>::<span class="ident">Asc</span>;
<span class="kw">let</span> <span class="ident">sc</span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">new_any</span>(<span class="number">8</span> <span class="kw">as</span> <span class="ident">i32</span>, <span class="ident">System</span>);
<span class="kw">let</span> <span class="ident">success</span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">downcast</span>::<span class="op"><</span><span class="ident">i32</span><span class="op">></span>(<span class="ident">sc</span>.<span class="ident">clone</span>()).<span class="ident">unwrap</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">8</span>, <span class="kw-2">*</span><span class="ident">success</span>);
<span class="kw">let</span> <span class="ident">fail</span> <span class="op">=</span> <span class="ident">Asc</span>::<span class="ident">downcast</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="ident">sc</span>.<span class="ident">clone</span>());
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="bool-val">true</span>, <span class="ident">fail</span>.<span class="ident">is_err</span>());</pre></div>
</div></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><h3 id="impl-AsRef%3CT%3E" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><T> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-AsRef%3CT%3E" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#414-421" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.as_ref" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref" class="fnname">as_ref</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</code><a class="srclink" href="../src/counting_pointer/asc.rs.html#418-420" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id="impl-Borrow%3CT%3E" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-Borrow%3CT%3E" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#423-430" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.borrow" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</code><a class="srclink" href="../src/counting_pointer/asc.rs.html#427-429" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></div><h3 id="impl-Clone" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-Clone" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#198-214" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.clone" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fnname">clone</a>(&self) -> Self</code><a class="srclink" href="../src/counting_pointer/asc.rs.html#202-213" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
</div><h4 id="method.clone_from" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fnname">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</code><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#128-130" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></p>
</div></div><h3 id="impl-Debug" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-Debug" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#331-344" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.fmt" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#335-343" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></div><h3 id="impl-Default" class="impl"><code class="in-band">impl<T, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-Default" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#169-177" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.default" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fnname">default</a>() -> Self</code><a class="srclink" href="../src/counting_pointer/asc.rs.html#174-176" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Returns the "default value" for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></p>
</div></div><h3 id="impl-Deref" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-Deref" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#432-441" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Target" class="type"><code>type <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" class="type">Target</a> = T</code></h4><div class='docblock'><p>The resulting type after dereferencing.</p>
</div><h4 id="method.deref" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#tymethod.deref" class="fnname">deref</a>(&self) -> &Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" title="type core::ops::deref::Deref::Target">Target</a></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#438-440" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Dereferences the value.</p>
</div></div><h3 id="impl-Display" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-Display" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#403-412" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.fmt-1" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fnname">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#408-411" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></p>
</div></div><h3 id="impl-Drop" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html" title="trait core::ops::drop::Drop">Drop</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-Drop" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#149-167" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.drop" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop" class="fnname">drop</a>(&mut self)</code><a class="srclink" href="../src/counting_pointer/asc.rs.html#153-166" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Executes the destructor for this type. <a href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop">Read more</a></p>
</div></div><h3 id="impl-Eq" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a>,<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-Eq" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#358-363" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-From%3C%26%27_%20%5BT%5D%3E" class="impl"><code class="in-band">impl<T, A, '_> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&'_ [T]</a>> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>, A> <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-From%3C%26%27_%20%5BT%5D%3E" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#188-196" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.from-1" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(vals: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&[T]</a>) -> Self</code><a class="srclink" href="../src/counting_pointer/asc.rs.html#193-195" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id="impl-From%3CT%3E" class="impl"><code class="in-band">impl<T, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-From%3CT%3E" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#179-186" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.from" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(val: T) -> Self</code><a class="srclink" href="../src/counting_pointer/asc.rs.html#183-185" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id="impl-Hash" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a>,<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-Hash" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#389-401" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.hash" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fnname">hash</a><H>(&self, hasher: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H) <span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>, </span></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#394-400" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></p>
</div><h4 id="method.hash_slice" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fnname">hash_slice</a><H>(data: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H) <span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>, </span></code><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#184-191" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></p>
</div></div><h3 id="impl-Ord" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a>,<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-Ord" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#377-387" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.cmp" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fnname">cmp</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#382-386" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></p>
</div><h4 id="method.max" class="method hidden"><code><span class="docblock attributes">#[must_use]</span>fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fnname">max</a>(self, other: Self) -> Self</code><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#605-610" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></p>
</div><h4 id="method.min" class="method hidden"><code><span class="docblock attributes">#[must_use]</span>fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fnname">min</a>(self, other: Self) -> Self</code><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#625-630" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></p>
</div><h4 id="method.clamp" class="method hidden"><code><span class="docblock attributes">#[must_use]</span>fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fnname">clamp</a>(self, min: Self, max: Self) -> Self</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#652-664" title="goto source code">[src]</a></h4><div class="stability hidden"><div class="stab unstable"><span class="emoji">🔬</span> This is a nightly-only experimental API. (<code>clamp</code>)</div></div><div class='docblock hidden'><p>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></p>
</div></div><h3 id="impl-PartialEq%3CAsc%3CT%2C%20A%3E%3E" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A>> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>,<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-PartialEq%3CAsc%3CT%2C%20A%3E%3E" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#346-356" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.eq" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fnname">eq</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#351-355" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></p>
</div><h4 id="method.ne" class="method hidden"><code><span class="docblock attributes">#[must_use]</span>fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fnname">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#209-211" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>This method tests for <code>!=</code>.</p>
</div></div><h3 id="impl-PartialOrd%3CAsc%3CT%2C%20A%3E%3E" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A>> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-PartialOrd%3CAsc%3CT%2C%20A%3E%3E" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#365-375" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.partial_cmp" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fnname">partial_cmp</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></code><a class="srclink" href="../src/counting_pointer/asc.rs.html#370-374" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></p>
</div><h4 id="method.lt" class="method hidden"><code><span class="docblock attributes">#[must_use]</span>fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fnname">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#847-849" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></p>
</div><h4 id="method.le" class="method hidden"><code><span class="docblock attributes">#[must_use]</span>fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fnname">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#866-868" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></p>
</div><h4 id="method.gt" class="method hidden"><code><span class="docblock attributes">#[must_use]</span>fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fnname">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#884-886" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></p>
</div><h4 id="method.ge" class="method hidden"><code><span class="docblock attributes">#[must_use]</span>fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fnname">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#903-905" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></p>
</div></div><h3 id="impl-Send" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-Send" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#142-147" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-Sync" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/global/trait.GlobalAlloc.html" title="trait core::alloc::global::GlobalAlloc">GlobalAlloc</a>, </span></code><a href="#impl-Sync" class="anchor"></a><a class="srclink" href="../src/counting_pointer/asc.rs.html#135-140" title="goto source code">[src]</a></h3><div class="impl-items"></div></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><h3 id="impl-RefUnwindSafe" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a>,<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a>, </span></code><a href="#impl-RefUnwindSafe" class="anchor"></a></h3><div class="impl-items"></div><h3 id="impl-Unpin" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>, </span></code><a href="#impl-Unpin" class="anchor"></a></h3><div class="impl-items"></div><h3 id="impl-UnwindSafe" class="impl"><code class="in-band">impl<T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A> <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="../counting_pointer/struct.Asc.html" title="struct counting_pointer::Asc">Asc</a><T, A> <span class="where fmt-newline">where<br> A: <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a>,<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a>, </span></code><a href="#impl-UnwindSafe" class="anchor"></a></h3><div class="impl-items"></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><h3 id="impl-Any" class="impl"><code class="in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></code><a href="#impl-Any" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#108-112" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.type_id" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#109-111" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></div><h3 id="impl-Borrow%3CT%3E-1" class="impl"><code class="in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T <span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></code><a href="#impl-Borrow%3CT%3E-1" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210-214" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.borrow-1" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211-213" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></div><h3 id="impl-BorrowMut%3CT%3E" class="impl"><code class="in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T <span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></code><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217-221" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.borrow_mut" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218-220" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></div><h3 id="impl-From%3C!%3E" class="impl"><code class="in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.never.html">!</a>> for T</code><a href="#impl-From%3C!%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#567-571" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.from-3" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.never.html">!</a>) -> T</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#568-570" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id="impl-From%3CT%3E-1" class="impl"><code class="in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</code><a href="#impl-From%3CT%3E-1" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#552-556" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.from-2" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -> T</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#553-555" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id="impl-Into%3CU%3E" class="impl"><code class="in-band">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T <span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>, </span></code><a href="#impl-Into%3CU%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#541-548" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.into" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -> U</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#545-547" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id="impl-ToOwned" class="impl"><code class="in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, </span></code><a href="#impl-ToOwned" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#80-92" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Owned" class="type"><code>type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="type">Owned</a> = T</code></h4><div class='docblock'><p>The resulting type after obtaining ownership.</p>
</div><h4 id="method.to_owned" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fnname">to_owned</a>(&self) -> T</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#85-87" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></p>
</div><h4 id="method.clone_into" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fnname">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#89-91" title="goto source code">[src]</a></h4><div class="stability hidden"><div class="stab unstable"><details><summary><span class="emoji">🔬</span> This is a nightly-only experimental API. (<code>toowned_clone_into</code>)</summary><p>recently added</p>
</details></div></div><div class='docblock hidden'><p>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></p>
</div></div><h3 id="impl-ToString" class="impl"><code class="in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></code><a href="#impl-ToString" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2194-2207" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.to_string" class="method hidden"><code>pub default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fnname">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2200-2206" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></p>
</div></div><h3 id="impl-TryFrom%3CU%3E" class="impl"><code class="in-band">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T <span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>, </span></code><a href="#impl-TryFrom%3CU%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#589-598" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Error" class="type"><code>type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="type">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id="method.try_from" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fnname">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#595-597" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id="impl-TryInto%3CU%3E" class="impl"><code class="in-band">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T <span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>, </span></code><a href="#impl-TryInto%3CU%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#575-584" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Error-1" class="type"><code>type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="type">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="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><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id="method.try_into" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fnname">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#581-583" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div></div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "counting_pointer";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>