blob: 51c8ea3d92c716165548d4d2482af2dabc66887e [file] [log] [blame]
<!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="An object-safe version of the [`Access`] trait."><meta name="keywords" content="rust, rustlang, rust-lang, DynAccess"><title>DynAccess in arc_swap::access - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../../normalize.css"><link rel="stylesheet" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../../ayu.css" disabled><link rel="stylesheet" href="../../dark.css" disabled><link rel="stylesheet" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../main.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../favicon.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../arc_swap/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../arc_swap/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">DynAccess</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.load">load</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Access%3CT%3E-for-dyn%20DynAccess%3CT%3E%20+%20%27_">Access&lt;T&gt;</a></li><li><a href="#impl-Access%3CT%3E-for-dyn%20DynAccess%3CT%3E%20+%20Send%20+%20%27_">Access&lt;T&gt;</a></li><li><a href="#impl-Access%3CT%3E-for-dyn%20DynAccess%3CT%3E%20+%20Sync%20+%20Send%20+%20%27_">Access&lt;T&gt;</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In arc_swap::access</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">arc_swap</a>::<wbr><a href="index.html">access</a>::<wbr><a class="trait" href="#">DynAccess</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/arc_swap/access.rs.html#216-219">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait DynAccess&lt;T&gt; {
fn <a href="#tymethod.load" class="fnname">load</a>(&amp;self) -&gt; DynGuard&lt;T&gt;;
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An object-safe version of the <a href="trait.Access.html" title="Access"><code>Access</code></a> trait.</p>
<p>This can be used instead of the <a href="trait.Access.html" title="Access"><code>Access</code></a> trait in case a type erasure is desired. This has
the effect of performance hit (due to boxing of the result and due to dynamic dispatch), but
makes certain code simpler and possibly makes the executable smaller.</p>
<p>This is automatically implemented for everything that implements <a href="trait.Access.html" title="Access"><code>Access</code></a>.</p>
<h2 id="examples"><a href="#examples">Examples</a></h2>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>arc_swap::access::{Constant, DynAccess};
<span class="kw">fn </span>do_something(value: Box&lt;<span class="kw">dyn </span>DynAccess&lt;usize&gt; + Send&gt;) {
<span class="kw">let </span>v = value.load();
<span class="macro">println!</span>(<span class="string">&quot;{}&quot;</span>, <span class="kw-2">*</span>v);
}
do_something(Box::new(Constant(<span class="number">42</span>)));</code></pre></div>
</div></details><h2 id="required-methods" class="small-section-header">Required Methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.load" class="method has-srclink"><a class="srclink rightside" href="../../src/arc_swap/access.rs.html#218">source</a><h4 class="code-header">fn <a href="#tymethod.load" class="fnname">load</a>(&amp;self) -&gt; DynGuard&lt;T&gt;</h4></section></summary><div class="docblock"><p>The equivalent of <a href="trait.Access.html#tymethod.load" title="Access::load"><code>Access::load</code></a>.</p>
</div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Access%3CT%3E-for-dyn%20DynAccess%3CT%3E%20+%20%27_" class="impl has-srclink"><a class="srclink rightside" href="../../src/arc_swap/access.rs.html#122-128">source</a><a href="#impl-Access%3CT%3E-for-dyn%20DynAccess%3CT%3E%20+%20%27_" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.Access.html" title="trait arc_swap::access::Access">Access</a>&lt;T&gt; for dyn <a class="trait" href="trait.DynAccess.html" title="trait arc_swap::access::DynAccess">DynAccess</a>&lt;T&gt; + '_</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Guard" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Guard" class="anchor"></a><h4 class="code-header">type <a href="trait.Access.html#associatedtype.Guard" class="associatedtype">Guard</a> = DynGuard&lt;T&gt;</h4></section></summary><div class='docblock'>A guard object containing the value and keeping it alive. <a href="trait.Access.html#associatedtype.Guard">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.load" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/arc_swap/access.rs.html#125-127">source</a><a href="#method.load" class="anchor"></a><h4 class="code-header">fn <a href="trait.Access.html#tymethod.load" class="fnname">load</a>(&amp;self) -&gt; Self::<a class="associatedtype" href="trait.Access.html#associatedtype.Guard" title="type arc_swap::access::Access::Guard">Guard</a></h4></section></summary><div class='docblock'>The loading method. <a href="trait.Access.html#tymethod.load">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Access%3CT%3E-for-dyn%20DynAccess%3CT%3E%20+%20Send%20+%20%27_" class="impl has-srclink"><a class="srclink rightside" href="../../src/arc_swap/access.rs.html#130-136">source</a><a href="#impl-Access%3CT%3E-for-dyn%20DynAccess%3CT%3E%20+%20Send%20+%20%27_" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.Access.html" title="trait arc_swap::access::Access">Access</a>&lt;T&gt; for dyn <a class="trait" href="trait.DynAccess.html" title="trait arc_swap::access::DynAccess">DynAccess</a>&lt;T&gt; + Send + '_</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Guard-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Guard-1" class="anchor"></a><h4 class="code-header">type <a href="trait.Access.html#associatedtype.Guard" class="associatedtype">Guard</a> = DynGuard&lt;T&gt;</h4></section></summary><div class='docblock'>A guard object containing the value and keeping it alive. <a href="trait.Access.html#associatedtype.Guard">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.load-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/arc_swap/access.rs.html#133-135">source</a><a href="#method.load-1" class="anchor"></a><h4 class="code-header">fn <a href="trait.Access.html#tymethod.load" class="fnname">load</a>(&amp;self) -&gt; Self::<a class="associatedtype" href="trait.Access.html#associatedtype.Guard" title="type arc_swap::access::Access::Guard">Guard</a></h4></section></summary><div class='docblock'>The loading method. <a href="trait.Access.html#tymethod.load">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Access%3CT%3E-for-dyn%20DynAccess%3CT%3E%20+%20Sync%20+%20Send%20+%20%27_" class="impl has-srclink"><a class="srclink rightside" href="../../src/arc_swap/access.rs.html#138-144">source</a><a href="#impl-Access%3CT%3E-for-dyn%20DynAccess%3CT%3E%20+%20Sync%20+%20Send%20+%20%27_" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.Access.html" title="trait arc_swap::access::Access">Access</a>&lt;T&gt; for dyn <a class="trait" href="trait.DynAccess.html" title="trait arc_swap::access::DynAccess">DynAccess</a>&lt;T&gt; + Sync + Send + '_</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Guard-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Guard-2" class="anchor"></a><h4 class="code-header">type <a href="trait.Access.html#associatedtype.Guard" class="associatedtype">Guard</a> = DynGuard&lt;T&gt;</h4></section></summary><div class='docblock'>A guard object containing the value and keeping it alive. <a href="trait.Access.html#associatedtype.Guard">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.load-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/arc_swap/access.rs.html#141-143">source</a><a href="#method.load-2" class="anchor"></a><h4 class="code-header">fn <a href="trait.Access.html#tymethod.load" class="fnname">load</a>(&amp;self) -&gt; Self::<a class="associatedtype" href="trait.Access.html#associatedtype.Guard" title="type arc_swap::access::Access::Guard">Guard</a></h4></section></summary><div class='docblock'>The loading method. <a href="trait.Access.html#tymethod.load">Read more</a></div></details></div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div id="implementors-list"><section id="impl-DynAccess%3CT%3E-for-A" class="impl has-srclink"><a class="srclink rightside" href="../../src/arc_swap/access.rs.html#221-229">source</a><a href="#impl-DynAccess%3CT%3E-for-A" class="anchor"></a><h3 class="code-header">impl&lt;T, A&gt; <a class="trait" href="trait.DynAccess.html" title="trait arc_swap::access::DynAccess">DynAccess</a>&lt;T&gt; for A<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="trait.Access.html" title="trait arc_swap::access::Access">Access</a>&lt;T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A::<a class="associatedtype" href="trait.Access.html#associatedtype.Guard" title="type arc_swap::access::Access::Guard">Guard</a>: 'static,</span></h3></section></div><script src="../../implementors/arc_swap/access/trait.DynAccess.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="arc_swap" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>