|
|
<!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 `OwningRefMut` struct in crate `owning_ref`."><meta name="keywords" content="rust, rustlang, rust-lang, OwningRefMut"><title>owning_ref::OwningRefMut - 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="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="shortcut icon" href="../favicon.ico"><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='../owning_ref/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a><p class='location'>Struct OwningRefMut</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.as_owner">as_owner</a><a href="#method.as_owner_mut">as_owner_mut</a><a href="#method.erase_owner">erase_owner</a><a href="#method.into_owner">into_owner</a><a href="#method.map">map</a><a href="#method.map_mut">map_mut</a><a href="#method.map_owner">map_owner</a><a href="#method.map_owner_box">map_owner_box</a><a href="#method.new">new</a><a href="#method.new_assert_stable_address">new_assert_stable_address</a><a href="#method.try_map">try_map</a><a href="#method.try_map_mut">try_map_mut</a></div><a class="sidebar-title" href="#implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-AsMut%3CT%3E">AsMut<T></a><a href="#impl-AsRef%3CT%3E">AsRef<T></a><a href="#impl-Debug">Debug</a><a href="#impl-Deref">Deref</a><a href="#impl-DerefMut">DerefMut</a><a href="#impl-Eq">Eq</a><a href="#impl-From%3CO%3E">From<O></a><a href="#impl-From%3COwningRefMut%3CO%2C%20T%3E%3E">From<OwningRefMut<O, T>></a><a href="#impl-Hash">Hash</a><a href="#impl-Ord">Ord</a><a href="#impl-PartialEq%3COwningRefMut%3CO%2C%20T%3E%3E">PartialEq<OwningRefMut<O, T>></a><a href="#impl-PartialOrd%3COwningRefMut%3CO%2C%20T%3E%3E">PartialOrd<OwningRefMut<O, T>></a><a href="#impl-Send">Send</a><a href="#impl-StableDeref">StableDeref</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-Erased">Erased</a><a href="#impl-From%3CT%3E">From<T></a><a href="#impl-Into%3CU%3E">Into<U></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'>owning_ref</a></p><script>window.sidebarCurrent = {name: 'OwningRefMut', 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!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><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/owning_ref/lib.rs.html#272-275' title='goto source code'>[src]</a></span><span class='in-band'>Struct <a href='index.html'>owning_ref</a>::<wbr><a class="struct" href=''>OwningRefMut</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class='rust struct'>pub struct OwningRefMut<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>> { /* fields omitted */ }</pre></div><div class='docblock'><p>An mutable owning reference.</p>
|
|
|
<p>This wraps an owner <code>O</code> and a reference <code>&mut T</code> pointing
|
|
|
at something reachable from <code>O::Target</code> while keeping
|
|
|
the ability to move <code>self</code> around.</p>
|
|
|
<p>The owner is usually a pointer that points at some base type.</p>
|
|
|
<p>For more details and examples, see the module and method docs.</p>
|
|
|
</div><h2 id='methods' class='small-section-header'>Methods<a href='#methods' class='anchor'></a></h2><h3 id='impl' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>> <a class="struct" href="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T></code><a href='#impl' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#479-726' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.new' class="method"><code id='new.v'>pub fn <a href='#method.new' class='fnname'>new</a>(o: O) -> Self <span class="where fmt-newline">where<br> O: <a class="trait" href="../owning_ref/trait.StableAddress.html" title="trait owning_ref::StableAddress">StableAddress</a>,<br> O: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a><Target = T>, </span></code><a class='srclink' href='../src/owning_ref/lib.rs.html#493-501' title='goto source code'>[src]</a></h4><div class='docblock'><p>Creates a new owning reference from a owner
|
|
|
initialized to the direct dereference of it.</p>
|
|
|
<h1 id="example" class="section-header"><a href="#example">Example</a></h1>
|
|
|
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
|
|
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">owning_ref</span>;
|
|
|
<span class="kw">use</span> <span class="ident">owning_ref</span>::<span class="ident">OwningRefMut</span>;
|
|
|
|
|
|
<span class="kw">fn</span> <span class="ident">main</span>() {
|
|
|
<span class="kw">let</span> <span class="ident">owning_ref_mut</span> <span class="op">=</span> <span class="ident">OwningRefMut</span>::<span class="ident">new</span>(<span class="ident">Box</span>::<span class="ident">new</span>(<span class="number">42</span>));
|
|
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="kw-2">*</span><span class="ident">owning_ref_mut</span>, <span class="number">42</span>);
|
|
|
}</pre></div>
|
|
|
</div><h4 id='method.new_assert_stable_address' class="method"><code id='new_assert_stable_address.v'>pub unsafe fn <a href='#method.new_assert_stable_address' class='fnname'>new_assert_stable_address</a>(o: O) -> Self <span class="where fmt-newline">where<br> O: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a><Target = T>, </span></code><a class='srclink' href='../src/owning_ref/lib.rs.html#508-515' title='goto source code'>[src]</a></h4><div class='docblock'><p>Like <code>new</code>, but doesn’t require <code>O</code> to implement the <code>StableAddress</code> trait.
|
|
|
Instead, the caller is responsible to make the same promises as implementing the trait.</p>
|
|
|
<p>This is useful for cases where coherence rules prevents implementing the trait
|
|
|
without adding a dependency to this crate in a third-party library.</p>
|
|
|
</div><h4 id='method.map' class="method"><code id='map.v'>pub fn <a href='#method.map' class='fnname'>map</a><F, U: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>>(self, f: F) -> <a class="struct" href="../owning_ref/struct.OwningRef.html" title="struct owning_ref::OwningRef">OwningRef</a><O, U> <span class="where fmt-newline">where<br> O: <a class="trait" href="../owning_ref/trait.StableAddress.html" title="trait owning_ref::StableAddress">StableAddress</a>,<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>U, </span></code><a class='srclink' href='../src/owning_ref/lib.rs.html#537-545' title='goto source code'>[src]</a></h4><div class='docblock'><p>Converts <code>self</code> into a new <em>shared</em> owning reference that points at
|
|
|
something reachable from the previous one.</p>
|
|
|
<p>This can be a reference to a field of <code>U</code>, something reachable from a field of
|
|
|
<code>U</code>, or even something unrelated with a <code>'static</code> lifetime.</p>
|
|
|
<h1 id="example-1" class="section-header"><a href="#example-1">Example</a></h1>
|
|
|
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
|
|
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">owning_ref</span>;
|
|
|
<span class="kw">use</span> <span class="ident">owning_ref</span>::<span class="ident">OwningRefMut</span>;
|
|
|
|
|
|
<span class="kw">fn</span> <span class="ident">main</span>() {
|
|
|
<span class="kw">let</span> <span class="ident">owning_ref_mut</span> <span class="op">=</span> <span class="ident">OwningRefMut</span>::<span class="ident">new</span>(<span class="ident">Box</span>::<span class="ident">new</span>([<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]));
|
|
|
|
|
|
<span class="comment">// create a owning reference that points at the</span>
|
|
|
<span class="comment">// third element of the array.</span>
|
|
|
<span class="kw">let</span> <span class="ident">owning_ref</span> <span class="op">=</span> <span class="ident">owning_ref_mut</span>.<span class="ident">map</span>(<span class="op">|</span><span class="ident">array</span><span class="op">|</span> <span class="kw-2">&</span><span class="ident">array</span>[<span class="number">2</span>]);
|
|
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="kw-2">*</span><span class="ident">owning_ref</span>, <span class="number">3</span>);
|
|
|
}</pre></div>
|
|
|
</div><h4 id='method.map_mut' class="method"><code id='map_mut.v'>pub fn <a href='#method.map_mut' class='fnname'>map_mut</a><F, U: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>>(self, f: F) -> <a class="struct" href="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, U> <span class="where fmt-newline">where<br> O: <a class="trait" href="../owning_ref/trait.StableAddress.html" title="trait owning_ref::StableAddress">StableAddress</a>,<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>U, </span></code><a class='srclink' href='../src/owning_ref/lib.rs.html#567-575' title='goto source code'>[src]</a></h4><div class='docblock'><p>Converts <code>self</code> into a new <em>mutable</em> owning reference that points at
|
|
|
something reachable from the previous one.</p>
|
|
|
<p>This can be a reference to a field of <code>U</code>, something reachable from a field of
|
|
|
<code>U</code>, or even something unrelated with a <code>'static</code> lifetime.</p>
|
|
|
<h1 id="example-2" class="section-header"><a href="#example-2">Example</a></h1>
|
|
|
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
|
|
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">owning_ref</span>;
|
|
|
<span class="kw">use</span> <span class="ident">owning_ref</span>::<span class="ident">OwningRefMut</span>;
|
|
|
|
|
|
<span class="kw">fn</span> <span class="ident">main</span>() {
|
|
|
<span class="kw">let</span> <span class="ident">owning_ref_mut</span> <span class="op">=</span> <span class="ident">OwningRefMut</span>::<span class="ident">new</span>(<span class="ident">Box</span>::<span class="ident">new</span>([<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]));
|
|
|
|
|
|
<span class="comment">// create a owning reference that points at the</span>
|
|
|
<span class="comment">// third element of the array.</span>
|
|
|
<span class="kw">let</span> <span class="ident">owning_ref_mut</span> <span class="op">=</span> <span class="ident">owning_ref_mut</span>.<span class="ident">map_mut</span>(<span class="op">|</span><span class="ident">array</span><span class="op">|</span> <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">array</span>[<span class="number">2</span>]);
|
|
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="kw-2">*</span><span class="ident">owning_ref_mut</span>, <span class="number">3</span>);
|
|
|
}</pre></div>
|
|
|
</div><h4 id='method.try_map' class="method"><code id='try_map.v'>pub fn <a href='#method.try_map' class='fnname'>try_map</a><F, U: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, E>(self, f: F) -> <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="../owning_ref/struct.OwningRef.html" title="struct owning_ref::OwningRef">OwningRef</a><O, U>, E> <span class="where fmt-newline">where<br> O: <a class="trait" href="../owning_ref/trait.StableAddress.html" title="trait owning_ref::StableAddress">StableAddress</a>,<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>U, E>, </span></code><a class='srclink' href='../src/owning_ref/lib.rs.html#599-607' title='goto source code'>[src]</a></h4><div class='docblock'><p>Tries to convert <code>self</code> into a new <em>shared</em> owning reference that points
|
|
|
at something reachable from the previous one.</p>
|
|
|
<p>This can be a reference to a field of <code>U</code>, something reachable from a field of
|
|
|
<code>U</code>, or even something unrelated with a <code>'static</code> lifetime.</p>
|
|
|
<h1 id="example-3" class="section-header"><a href="#example-3">Example</a></h1>
|
|
|
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
|
|
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">owning_ref</span>;
|
|
|
<span class="kw">use</span> <span class="ident">owning_ref</span>::<span class="ident">OwningRefMut</span>;
|
|
|
|
|
|
<span class="kw">fn</span> <span class="ident">main</span>() {
|
|
|
<span class="kw">let</span> <span class="ident">owning_ref_mut</span> <span class="op">=</span> <span class="ident">OwningRefMut</span>::<span class="ident">new</span>(<span class="ident">Box</span>::<span class="ident">new</span>([<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]));
|
|
|
|
|
|
<span class="comment">// create a owning reference that points at the</span>
|
|
|
<span class="comment">// third element of the array.</span>
|
|
|
<span class="kw">let</span> <span class="ident">owning_ref</span> <span class="op">=</span> <span class="ident">owning_ref_mut</span>.<span class="ident">try_map</span>(<span class="op">|</span><span class="ident">array</span><span class="op">|</span> {
|
|
|
<span class="kw">if</span> <span class="ident">array</span>[<span class="number">2</span>] <span class="op">=</span><span class="op">=</span> <span class="number">3</span> { <span class="prelude-val">Ok</span>(<span class="kw-2">&</span><span class="ident">array</span>[<span class="number">2</span>]) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(()) }
|
|
|
});
|
|
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="kw-2">*</span><span class="ident">owning_ref</span>.<span class="ident">unwrap</span>(), <span class="number">3</span>);
|
|
|
}</pre></div>
|
|
|
</div><h4 id='method.try_map_mut' class="method"><code id='try_map_mut.v'>pub fn <a href='#method.try_map_mut' class='fnname'>try_map_mut</a><F, U: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, E>(self, f: F) -> <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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, U>, E> <span class="where fmt-newline">where<br> O: <a class="trait" href="../owning_ref/trait.StableAddress.html" title="trait owning_ref::StableAddress">StableAddress</a>,<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>U, E>, </span></code><a class='srclink' href='../src/owning_ref/lib.rs.html#631-639' title='goto source code'>[src]</a></h4><div class='docblock'><p>Tries to convert <code>self</code> into a new <em>mutable</em> owning reference that points
|
|
|
at something reachable from the previous one.</p>
|
|
|
<p>This can be a reference to a field of <code>U</code>, something reachable from a field of
|
|
|
<code>U</code>, or even something unrelated with a <code>'static</code> lifetime.</p>
|
|
|
<h1 id="example-4" class="section-header"><a href="#example-4">Example</a></h1>
|
|
|
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
|
|
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">owning_ref</span>;
|
|
|
<span class="kw">use</span> <span class="ident">owning_ref</span>::<span class="ident">OwningRefMut</span>;
|
|
|
|
|
|
<span class="kw">fn</span> <span class="ident">main</span>() {
|
|
|
<span class="kw">let</span> <span class="ident">owning_ref_mut</span> <span class="op">=</span> <span class="ident">OwningRefMut</span>::<span class="ident">new</span>(<span class="ident">Box</span>::<span class="ident">new</span>([<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]));
|
|
|
|
|
|
<span class="comment">// create a owning reference that points at the</span>
|
|
|
<span class="comment">// third element of the array.</span>
|
|
|
<span class="kw">let</span> <span class="ident">owning_ref_mut</span> <span class="op">=</span> <span class="ident">owning_ref_mut</span>.<span class="ident">try_map_mut</span>(<span class="op">|</span><span class="ident">array</span><span class="op">|</span> {
|
|
|
<span class="kw">if</span> <span class="ident">array</span>[<span class="number">2</span>] <span class="op">=</span><span class="op">=</span> <span class="number">3</span> { <span class="prelude-val">Ok</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">array</span>[<span class="number">2</span>]) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(()) }
|
|
|
});
|
|
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="kw-2">*</span><span class="ident">owning_ref_mut</span>.<span class="ident">unwrap</span>(), <span class="number">3</span>);
|
|
|
}</pre></div>
|
|
|
</div><h4 id='method.map_owner' class="method"><code id='map_owner.v'>pub unsafe fn <a href='#method.map_owner' class='fnname'>map_owner</a><F, P>(self, f: F) -> <a class="struct" href="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><P, T> <span class="where fmt-newline">where<br> O: <a class="trait" href="../owning_ref/trait.StableAddress.html" title="trait owning_ref::StableAddress">StableAddress</a>,<br> P: <a class="trait" href="../owning_ref/trait.StableAddress.html" title="trait owning_ref::StableAddress">StableAddress</a>,<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(O) -> P, </span></code><a class='srclink' href='../src/owning_ref/lib.rs.html#646-655' title='goto source code'>[src]</a></h4><div class='docblock'><p>Converts <code>self</code> into a new owning reference with a different owner type.</p>
|
|
|
<p>The new owner type needs to still contain the original owner in some way
|
|
|
so that the reference into it remains valid. This function is marked unsafe
|
|
|
because the user needs to manually uphold this guarantee.</p>
|
|
|
</div><h4 id='method.map_owner_box' class="method"><code id='map_owner_box.v'>pub fn <a href='#method.map_owner_box' class='fnname'>map_owner_box</a>(self) -> <a class="struct" href="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><O>, T></code><a class='srclink' href='../src/owning_ref/lib.rs.html#662-667' title='goto source code'>[src]</a></h4><div class='docblock'><p>Converts <code>self</code> into a new owning reference where the owner is wrapped
|
|
|
in an additional <code>Box<O></code>.</p>
|
|
|
<p>This can be used to safely erase the owner of any <code>OwningRefMut<O, T></code>
|
|
|
to a <code>OwningRefMut<Box<Erased>, T></code>.</p>
|
|
|
</div><h4 id='method.erase_owner' class="method"><code id='erase_owner.v'>pub fn <a href='#method.erase_owner' class='fnname'>erase_owner</a><'a>(self) -> <a class="struct" href="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O::<a class="type" href="../owning_ref/trait.IntoErased.html#associatedtype.Erased" title="type owning_ref::IntoErased::Erased">Erased</a>, T> <span class="where fmt-newline">where<br> O: <a class="trait" href="../owning_ref/trait.IntoErased.html" title="trait owning_ref::IntoErased">IntoErased</a><'a>, </span></code><a class='srclink' href='../src/owning_ref/lib.rs.html#701-708' title='goto source code'>[src]</a></h4><div class='docblock'><p>Erases the concrete base type of the owner with a trait object.</p>
|
|
|
<p>This allows mixing of owned references with different owner base types.</p>
|
|
|
<h1 id="example-5" class="section-header"><a href="#example-5">Example</a></h1>
|
|
|
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
|
|
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">owning_ref</span>;
|
|
|
<span class="kw">use</span> <span class="ident">owning_ref</span>::{<span class="ident">OwningRefMut</span>, <span class="ident">Erased</span>};
|
|
|
|
|
|
<span class="kw">fn</span> <span class="ident">main</span>() {
|
|
|
<span class="comment">// NB: Using the concrete types here for explicitnes.</span>
|
|
|
<span class="comment">// For less verbose code type aliases like `BoxRef` are provided.</span>
|
|
|
|
|
|
<span class="kw">let</span> <span class="ident">owning_ref_mut_a</span>: <span class="ident">OwningRefMut</span><span class="op"><</span><span class="ident">Box</span><span class="op"><</span>[<span class="ident">i32</span>; <span class="number">4</span>]<span class="op">></span>, [<span class="ident">i32</span>; <span class="number">4</span>]<span class="op">></span>
|
|
|
<span class="op">=</span> <span class="ident">OwningRefMut</span>::<span class="ident">new</span>(<span class="ident">Box</span>::<span class="ident">new</span>([<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]));
|
|
|
|
|
|
<span class="kw">let</span> <span class="ident">owning_ref_mut_b</span>: <span class="ident">OwningRefMut</span><span class="op"><</span><span class="ident">Box</span><span class="op"><</span><span class="ident">Vec</span><span class="op"><</span>(<span class="ident">i32</span>, <span class="ident">bool</span>)<span class="op">></span><span class="op">></span>, <span class="ident">Vec</span><span class="op"><</span>(<span class="ident">i32</span>, <span class="ident">bool</span>)<span class="op">></span><span class="op">></span>
|
|
|
<span class="op">=</span> <span class="ident">OwningRefMut</span>::<span class="ident">new</span>(<span class="ident">Box</span>::<span class="ident">new</span>(<span class="macro">vec</span><span class="macro">!</span>[(<span class="number">0</span>, <span class="bool-val">false</span>), (<span class="number">1</span>, <span class="bool-val">true</span>)]));
|
|
|
|
|
|
<span class="kw">let</span> <span class="ident">owning_ref_mut_a</span>: <span class="ident">OwningRefMut</span><span class="op"><</span><span class="ident">Box</span><span class="op"><</span>[<span class="ident">i32</span>; <span class="number">4</span>]<span class="op">></span>, <span class="ident">i32</span><span class="op">></span>
|
|
|
<span class="op">=</span> <span class="ident">owning_ref_mut_a</span>.<span class="ident">map_mut</span>(<span class="op">|</span><span class="ident">a</span><span class="op">|</span> <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">a</span>[<span class="number">0</span>]);
|
|
|
|
|
|
<span class="kw">let</span> <span class="ident">owning_ref_mut_b</span>: <span class="ident">OwningRefMut</span><span class="op"><</span><span class="ident">Box</span><span class="op"><</span><span class="ident">Vec</span><span class="op"><</span>(<span class="ident">i32</span>, <span class="ident">bool</span>)<span class="op">></span><span class="op">></span>, <span class="ident">i32</span><span class="op">></span>
|
|
|
<span class="op">=</span> <span class="ident">owning_ref_mut_b</span>.<span class="ident">map_mut</span>(<span class="op">|</span><span class="ident">a</span><span class="op">|</span> <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">a</span>[<span class="number">1</span>].<span class="number">0</span>);
|
|
|
|
|
|
<span class="kw">let</span> <span class="ident">owning_refs_mut</span>: [<span class="ident">OwningRefMut</span><span class="op"><</span><span class="ident">Box</span><span class="op"><</span><span class="ident">Erased</span><span class="op">></span>, <span class="ident">i32</span><span class="op">></span>; <span class="number">2</span>]
|
|
|
<span class="op">=</span> [<span class="ident">owning_ref_mut_a</span>.<span class="ident">erase_owner</span>(), <span class="ident">owning_ref_mut_b</span>.<span class="ident">erase_owner</span>()];
|
|
|
|
|
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="kw-2">*</span><span class="ident">owning_refs_mut</span>[<span class="number">0</span>], <span class="number">1</span>);
|
|
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="kw-2">*</span><span class="ident">owning_refs_mut</span>[<span class="number">1</span>], <span class="number">1</span>);
|
|
|
}</pre></div>
|
|
|
</div><h4 id='method.as_owner' class="method"><code id='as_owner.v'>pub fn <a href='#method.as_owner' class='fnname'>as_owner</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>O</code><a class='srclink' href='../src/owning_ref/lib.rs.html#713-715' title='goto source code'>[src]</a></h4><div class='docblock'><p>A reference to the underlying owner.</p>
|
|
|
</div><h4 id='method.as_owner_mut' class="method"><code id='as_owner_mut.v'>pub fn <a href='#method.as_owner_mut' class='fnname'>as_owner_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>O</code><a class='srclink' href='../src/owning_ref/lib.rs.html#718-720' title='goto source code'>[src]</a></h4><div class='docblock'><p>A mutable reference to the underlying owner.</p>
|
|
|
</div><h4 id='method.into_owner' class="method"><code id='into_owner.v'>pub fn <a href='#method.into_owner' class='fnname'>into_owner</a>(self) -> O</code><a class='srclink' href='../src/owning_ref/lib.rs.html#723-725' title='goto source code'>[src]</a></h4><div class='docblock'><p>Discards the reference and retrieves the owner.</p>
|
|
|
</div></div><h2 id='implementations' class='small-section-header'>Trait Implementations<a href='#implementations' class='anchor'></a></h2><div id='implementations-list'><h3 id='impl-Send' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T> <span class="where fmt-newline">where<br> O: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a mut </a>T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>, </span></code><a href='#impl-Send' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#1013-1014' title='goto source code'>[src]</a></h3><div class='impl-items'></div><h3 id='impl-Eq' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T> <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>, </span></code><a href='#impl-Eq' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#1056' title='goto source code'>[src]</a></h3><div class='impl-items'></div><h3 id='impl-AsMut%3CT%3E' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a><T> for <a class="struct" href="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T></code><a href='#impl-AsMut%3CT%3E' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#926-930' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.as_mut' class="method hidden"><code id='as_mut.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html#tymethod.as_mut' class='fnname'>as_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='../src/owning_ref/lib.rs.html#927-929' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
|
|
|
</div></div><h3 id='impl-Sync' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T> <span class="where fmt-newline">where<br> O: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a mut </a>T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>, </span></code><a href='#impl-Sync' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#1015-1016' title='goto source code'>[src]</a></h3><div class='impl-items'></div><h3 id='impl-AsRef%3CT%3E' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T></code><a href='#impl-AsRef%3CT%3E' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#920-924' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.as_ref' class="method hidden"><code id='as_ref.v'>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/owning_ref/lib.rs.html#921-923' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
|
|
|
</div></div><h3 id='impl-PartialOrd%3COwningRefMut%3CO%2C%20T%3E%3E' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T>> for <a class="struct" href="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T> <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>, </span></code><a href='#impl-PartialOrd%3COwningRefMut%3CO%2C%20T%3E%3E' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#1058-1062' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.partial_cmp' class="method hidden"><code id='partial_cmp.v'>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/owning_ref/lib.rs.html#1059-1061' 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 id='lt.v'><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#801-806' 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 id='le.v'><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#823-828' 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 id='gt.v'><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#844-849' 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 id='ge.v'><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#866-871' 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-PartialEq%3COwningRefMut%3CO%2C%20T%3E%3E' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T>> for <a class="struct" href="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T> <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>, </span></code><a href='#impl-PartialEq%3COwningRefMut%3CO%2C%20T%3E%3E' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#1050-1054' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.eq' class="method hidden"><code id='eq.v'>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/owning_ref/lib.rs.html#1051-1053' 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 id='ne.v'><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#208' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>This method tests for <code>!=</code>.</p>
|
|
|
</div></div><h3 id='impl-Ord' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T> <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>, </span></code><a href='#impl-Ord' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#1064-1068' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.cmp' class="method hidden"><code id='cmp.v'>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/owning_ref/lib.rs.html#1065-1067' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>This method returns an <code>Ordering</code> 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 id='max.v'>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#571-574' 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 id='min.v'>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#588-591' 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 id='clamp.v'>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#612-622' 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-From%3CO%3E' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><O> for <a class="struct" href="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T> <span class="where fmt-newline">where<br> O: <a class="trait" href="../owning_ref/trait.StableAddress.html" title="trait owning_ref::StableAddress">StableAddress</a>,<br> O: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a><Target = T>, </span></code><a href='#impl-From%3CO%3E' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#947-954' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from' class="method hidden"><code id='from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from' class='fnname'>from</a>(owner: O) -> Self</code><a class='srclink' href='../src/owning_ref/lib.rs.html#951-953' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
|
|
|
</div></div><h3 id='impl-From%3COwningRefMut%3CO%2C%20T%3E%3E' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="struct" href="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T>> for <a class="struct" href="../owning_ref/struct.OwningRef.html" title="struct owning_ref::OwningRef">OwningRef</a><O, T> <span class="where fmt-newline">where<br> O: <a class="trait" href="../owning_ref/trait.StableAddress.html" title="trait owning_ref::StableAddress">StableAddress</a>,<br> O: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a><Target = T>, </span></code><a href='#impl-From%3COwningRefMut%3CO%2C%20T%3E%3E' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#956-966' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from-1' class="method hidden"><code id='from.v-1'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from' class='fnname'>from</a>(other: <a class="struct" href="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T>) -> Self</code><a class='srclink' href='../src/owning_ref/lib.rs.html#960-965' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
|
|
|
</div></div><h3 id='impl-DerefMut' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a> for <a class="struct" href="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T></code><a href='#impl-DerefMut' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#902-908' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.deref_mut' class="method hidden"><code id='deref_mut.v'>fn <a href='https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html#tymethod.deref_mut' class='fnname'>deref_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='../src/owning_ref/lib.rs.html#903-907' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Mutably dereferences the value.</p>
|
|
|
</div></div><h3 id='impl-Hash' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T> <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>, </span></code><a href='#impl-Hash' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#1070-1074' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.hash' class="method hidden"><code id='hash.v'>fn <a href='https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash' class='fnname'>hash</a><H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)</code><a class='srclink' href='../src/owning_ref/lib.rs.html#1071-1073' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Feeds this value into the given [<code>Hasher</code>]. <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 id='hash_slice.v'>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#192-198' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Feeds a slice of this type into the given [<code>Hasher</code>]. <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-Deref' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T></code><a href='#impl-Deref' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#892-900' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Target' class="type"><code id='Target.t'>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 id='deref.v'>fn <a href='https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#tymethod.deref' class='fnname'>deref</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</code><a class='srclink' href='../src/owning_ref/lib.rs.html#895-899' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Dereferences the value.</p>
|
|
|
</div></div><h3 id='impl-Debug' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T> <span class="where fmt-newline">where<br> O: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>, </span></code><a href='#impl-Debug' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#982-992' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.fmt' class="method hidden"><code id='fmt.v'>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="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></code><a class='srclink' href='../src/owning_ref/lib.rs.html#986-991' 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-StableDeref' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>> <a class="trait" href="../owning_ref/trait.StableAddress.html" title="trait owning_ref::StableAddress">StableDeref</a> for <a class="struct" href="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T></code><a href='#impl-StableDeref' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#912' 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-Unpin' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T> <span class="where fmt-newline">where<br> O: <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<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T> <span class="where fmt-newline">where<br> O: <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><h3 id='impl-RefUnwindSafe' class='impl'><code class='in-band'>impl<O, T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</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="../owning_ref/struct.OwningRefMut.html" title="struct owning_ref::OwningRefMut">OwningRefMut</a><O, T> <span class="where fmt-newline">where<br> O: <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></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-Erased' class='impl'><code class='in-band'>impl<T> <a class="trait" href="../owning_ref/trait.Erased.html" title="trait owning_ref::Erased">Erased</a> for T</code><a href='#impl-Erased' class='anchor'></a><a class='srclink' href='../src/owning_ref/lib.rs.html#281' title='goto source code'>[src]</a></h3><div class='impl-items'></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.rs.html#544-549' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.into' class="method hidden"><code id='into.v'>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.rs.html#546-548' 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 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' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#553-555' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from-2' class="method hidden"><code id='from.v-2'>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.rs.html#554' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</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.rs.html#572-578' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error' class="type"><code id='Error.t'>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 id='try_from.v'>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.rs.html#575-577' 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.rs.html#560-567' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error-1' class="type"><code id='Error.t-1'>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 id='try_into.v'>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.rs.html#564-566' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</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#218-220' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow_mut' class="method hidden"><code id='borrow_mut.v'>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#219' 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-Borrow%3CT%3E' 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' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213-215' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow' class="method hidden"><code id='borrow.v'>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#214' 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-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#100-102' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.type_id' class="method hidden"><code id='type_id.v'>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#101' 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></div></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="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><div class="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 = "owning_ref";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html> |