Adding large folders

This commit is contained in:
2026-02-26 12:00:21 -05:00
parent 5400d82acd
commit 49701c85ad
47332 changed files with 1942573 additions and 0 deletions

View File

@@ -0,0 +1 @@
<!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="List of all items in this crate"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="crossbeam_epoch" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc mod sys"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">All</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../crossbeam_epoch/index.html">crossbeam_<wbr>epoch</a><span class="version">0.9.18</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h3><a href="#structs">Crate Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#traits" title="Traits">Traits</a></li><li><a href="#functions" title="Functions">Functions</a></li><li><a href="#types" title="Type Aliases">Type Aliases</a></li></ul></section><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><h1>List of all items</h1><rustdoc-toolbar></rustdoc-toolbar></div><h3 id="structs">Structs</h3><ul class="all-items"><li><a href="struct.Atomic.html">Atomic</a></li><li><a href="struct.Collector.html">Collector</a></li><li><a href="struct.CompareExchangeError.html">CompareExchangeError</a></li><li><a href="struct.Guard.html">Guard</a></li><li><a href="struct.LocalHandle.html">LocalHandle</a></li><li><a href="struct.Owned.html">Owned</a></li><li><a href="struct.Shared.html">Shared</a></li></ul><h3 id="traits">Traits</h3><ul class="all-items"><li><a href="trait.CompareAndSetOrdering.html">CompareAndSetOrdering</a></li><li><a href="trait.Pointable.html">Pointable</a></li><li><a href="trait.Pointer.html">Pointer</a></li></ul><h3 id="functions">Functions</h3><ul class="all-items"><li><a href="fn.default_collector.html">default_collector</a></li><li><a href="fn.is_pinned.html">is_pinned</a></li><li><a href="fn.pin.html">pin</a></li><li><a href="fn.unprotected.html">unprotected</a></li></ul><h3 id="types">Type Aliases</h3><ul class="all-items"><li><a href="type.CompareAndSetError.html">CompareAndSetError</a></li></ul></section></div></main></body></html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/struct.Atomic.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/struct.Atomic.html">../../crossbeam_epoch/struct.Atomic.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/struct.Atomic.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/struct.CompareExchangeError.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/struct.CompareExchangeError.html">../../crossbeam_epoch/struct.CompareExchangeError.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/struct.CompareExchangeError.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/struct.Owned.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/struct.Owned.html">../../crossbeam_epoch/struct.Owned.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/struct.Owned.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/struct.Shared.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/struct.Shared.html">../../crossbeam_epoch/struct.Shared.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/struct.Shared.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/trait.CompareAndSetOrdering.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/trait.CompareAndSetOrdering.html">../../crossbeam_epoch/trait.CompareAndSetOrdering.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/trait.CompareAndSetOrdering.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/trait.Pointable.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/trait.Pointable.html">../../crossbeam_epoch/trait.Pointable.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/trait.Pointable.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/trait.Pointer.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/trait.Pointer.html">../../crossbeam_epoch/trait.Pointer.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/trait.Pointer.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/type.CompareAndSetError.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/type.CompareAndSetError.html">../../crossbeam_epoch/type.CompareAndSetError.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/type.CompareAndSetError.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/struct.Collector.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/struct.Collector.html">../../crossbeam_epoch/struct.Collector.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/struct.Collector.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/struct.LocalHandle.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/struct.LocalHandle.html">../../crossbeam_epoch/struct.LocalHandle.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/struct.LocalHandle.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/fn.default_collector.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/fn.default_collector.html">../../crossbeam_epoch/fn.default_collector.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/fn.default_collector.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/fn.is_pinned.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/fn.is_pinned.html">../../crossbeam_epoch/fn.is_pinned.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/fn.is_pinned.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/fn.pin.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/fn.pin.html">../../crossbeam_epoch/fn.pin.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/fn.pin.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,2 @@
<!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="Returns the default global collector."><title>default_collector in crossbeam_epoch - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="crossbeam_epoch" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">default_collector</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../crossbeam_epoch/index.html">crossbeam_<wbr>epoch</a><span class="version">0.9.18</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="index.html">crossbeam_epoch</a></div><h1>Function <span class="fn">default_<wbr>collector</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/crossbeam_epoch/default.rs.html#50-52">Source</a> </span></div><pre class="rust item-decl"><code>pub fn default_collector() -&gt; &amp;'static <a class="struct" href="struct.Collector.html" title="struct crossbeam_epoch::Collector">Collector</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Returns the default global collector.</p>
</div></details></section></div></main></body></html>

View File

@@ -0,0 +1,2 @@
<!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="Returns `true` if the current thread is pinned."><title>is_pinned in crossbeam_epoch - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="crossbeam_epoch" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">is_pinned</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../crossbeam_epoch/index.html">crossbeam_<wbr>epoch</a><span class="version">0.9.18</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="index.html">crossbeam_epoch</a></div><h1>Function <span class="fn">is_<wbr>pinned</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/crossbeam_epoch/default.rs.html#45-47">Source</a> </span></div><pre class="rust item-decl"><code>pub fn is_pinned() -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Returns <code>true</code> if the current thread is pinned.</p>
</div></details></section></div></main></body></html>

View File

@@ -0,0 +1,2 @@
<!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="Pins the current thread."><title>pin in crossbeam_epoch - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="crossbeam_epoch" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">pin</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../crossbeam_epoch/index.html">crossbeam_<wbr>epoch</a><span class="version">0.9.18</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="index.html">crossbeam_epoch</a></div><h1>Function <span class="fn">pin</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/crossbeam_epoch/default.rs.html#39-41">Source</a> </span></div><pre class="rust item-decl"><code>pub fn pin() -&gt; <a class="struct" href="struct.Guard.html" title="struct crossbeam_epoch::Guard">Guard</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pins the current thread.</p>
</div></details></section></div></main></body></html>

View File

@@ -0,0 +1,68 @@
<!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="Returns a reference to a dummy guard that allows unprotected access to `Atomic`s."><title>unprotected in crossbeam_epoch - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="crossbeam_epoch" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">unprotected</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../crossbeam_epoch/index.html">crossbeam_<wbr>epoch</a><span class="version">0.9.18</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">unprotected</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#safety" title="Safety">Safety</a></li><li><a href="#examples" title="Examples">Examples</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate crossbeam_<wbr>epoch</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="index.html">crossbeam_epoch</a></div><h1>Function <span class="fn">unprotected</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/crossbeam_epoch/guard.rs.html#513-523">Source</a> </span></div><pre class="rust item-decl"><code>pub unsafe fn unprotected() -&gt; &amp;'static <a class="struct" href="struct.Guard.html" title="struct crossbeam_epoch::Guard">Guard</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Returns a reference to a dummy guard that allows unprotected access to <a href="struct.Atomic.html" title="struct crossbeam_epoch::Atomic"><code>Atomic</code></a>s.</p>
<p>This guard should be used in special occasions only. Note that it doesnt actually keep any
thread pinned - its just a fake guard that allows loading from <a href="struct.Atomic.html" title="struct crossbeam_epoch::Atomic"><code>Atomic</code></a>s unsafely.</p>
<p>Note that calling <a href="struct.Guard.html#method.defer" title="method crossbeam_epoch::Guard::defer"><code>defer</code></a> with a dummy guard will not defer the function - it will just
execute the function immediately.</p>
<p>If necessary, its possible to create more dummy guards by cloning: <code>unprotected().clone()</code>.</p>
<h2 id="safety"><a class="doc-anchor" href="#safety">§</a>Safety</h2>
<p>Loading and dereferencing data from an <a href="struct.Atomic.html" title="struct crossbeam_epoch::Atomic"><code>Atomic</code></a> using this guard is safe only if the
<a href="struct.Atomic.html" title="struct crossbeam_epoch::Atomic"><code>Atomic</code></a> is not being concurrently modified by other threads.</p>
<h2 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h2>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>crossbeam_epoch::{<span class="self">self </span><span class="kw">as </span>epoch, Atomic};
<span class="kw">use </span>std::sync::atomic::Ordering::Relaxed;
<span class="kw">let </span>a = Atomic::new(<span class="number">7</span>);
<span class="kw">unsafe </span>{
<span class="comment">// Load `a` without pinning the current thread.
</span>a.load(Relaxed, epoch::unprotected());
<span class="comment">// It's possible to create more dummy guards.
</span><span class="kw">let </span>dummy = epoch::unprotected();
dummy.defer(<span class="kw">move </span>|| {
<span class="macro">println!</span>(<span class="string">"This gets executed immediately."</span>);
});
<span class="comment">// Dropping `dummy` doesn't affect the current thread - it's just a noop.
</span>}</code></pre></div>
<p>The most common use of this function is when constructing or destructing a data structure.</p>
<p>For example, we can use a dummy guard in the destructor of a Treiber stack because at that
point no other thread could concurrently modify the <a href="struct.Atomic.html" title="struct crossbeam_epoch::Atomic"><code>Atomic</code></a>s we are accessing.</p>
<p>If we were to actually pin the current thread during destruction, that would just unnecessarily
delay garbage collection and incur some performance cost, so in cases like these <code>unprotected</code>
is very helpful.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>crossbeam_epoch::{<span class="self">self </span><span class="kw">as </span>epoch, Atomic};
<span class="kw">use </span>std::mem::ManuallyDrop;
<span class="kw">use </span>std::sync::atomic::Ordering::Relaxed;
<span class="kw">struct </span>Stack&lt;T&gt; {
head: Atomic&lt;Node&lt;T&gt;&gt;,
}
<span class="kw">struct </span>Node&lt;T&gt; {
data: ManuallyDrop&lt;T&gt;,
next: Atomic&lt;Node&lt;T&gt;&gt;,
}
<span class="kw">impl</span>&lt;T&gt; Drop <span class="kw">for </span>Stack&lt;T&gt; {
<span class="kw">fn </span>drop(<span class="kw-2">&amp;mut </span><span class="self">self</span>) {
<span class="kw">unsafe </span>{
<span class="comment">// Unprotected load.
</span><span class="kw">let </span><span class="kw-2">mut </span>node = <span class="self">self</span>.head.load(Relaxed, epoch::unprotected());
<span class="kw">while let </span><span class="prelude-val">Some</span>(n) = node.as_ref() {
<span class="comment">// Unprotected load.
</span><span class="kw">let </span>next = n.next.load(Relaxed, epoch::unprotected());
<span class="comment">// Take ownership of the node, then drop its data and deallocate it.
</span><span class="kw">let </span><span class="kw-2">mut </span>o = node.into_owned();
ManuallyDrop::drop(<span class="kw-2">&amp;mut </span>o.data);
drop(o);
node = next;
}
}
}
}</code></pre></div></div></details></section></div></main></body></html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/fn.unprotected.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/fn.unprotected.html">../../crossbeam_epoch/fn.unprotected.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/fn.unprotected.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../crossbeam_epoch/struct.Guard.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../crossbeam_epoch/struct.Guard.html">../../crossbeam_epoch/struct.Guard.html</a>...</p>
<script>location.replace("../../crossbeam_epoch/struct.Guard.html" + location.search + location.hash);</script>
</body>
</html>

View File

@@ -0,0 +1,37 @@
<!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="Epoch-based memory reclamation."><title>crossbeam_epoch - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="crossbeam_epoch" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Crate crossbeam_epoch</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../crossbeam_epoch/index.html">crossbeam_<wbr>epoch</a><span class="version">0.9.18</span></h2></div><div class="sidebar-elems"><ul class="block"><li><a id="all-types" href="all.html">All Items</a></li></ul><section id="rustdoc-toc"><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#pointers" title="Pointers">Pointers</a></li><li><a href="#pinning" title="Pinning">Pinning</a></li><li><a href="#garbage" title="Garbage">Garbage</a></li><li><a href="#apis" title="APIs">APIs</a></li></ul><h3><a href="#structs">Crate Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#traits" title="Traits">Traits</a></li><li><a href="#functions" title="Functions">Functions</a></li><li><a href="#types" title="Type Aliases">Type Aliases</a></li></ul></section><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><h1>Crate <span>crossbeam_<wbr>epoch</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/crossbeam_epoch/lib.rs.html#1-166">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Epoch-based memory reclamation.</p>
<p>An interesting problem concurrent collections deal with comes from the remove operation.
Suppose that a thread removes an element from a lock-free map, while another thread is reading
that same element at the same time. The first thread must wait until the second thread stops
reading the element. Only then it is safe to destruct it.</p>
<p>Programming languages that come with garbage collectors solve this problem trivially. The
garbage collector will destruct the removed element when no thread can hold a reference to it
anymore.</p>
<p>This crate implements a basic memory reclamation mechanism, which is based on epochs. When an
element gets removed from a concurrent collection, it is inserted into a pile of garbage and
marked with the current epoch. Every time a thread accesses a collection, it checks the current
epoch, attempts to increment it, and destructs some garbage that became so old that no thread
can be referencing it anymore.</p>
<p>That is the general mechanism behind epoch-based memory reclamation, but the details are a bit
more complicated. Anyhow, memory reclamation is designed to be fully automatic and something
users of concurrent collections dont have to worry much about.</p>
<h2 id="pointers"><a class="doc-anchor" href="#pointers">§</a>Pointers</h2>
<p>Concurrent collections are built using atomic pointers. This module provides <a href="struct.Atomic.html" title="struct crossbeam_epoch::Atomic"><code>Atomic</code></a>, which
is just a shared atomic pointer to a heap-allocated object. Loading an <a href="struct.Atomic.html" title="struct crossbeam_epoch::Atomic"><code>Atomic</code></a> yields a
<a href="struct.Shared.html" title="struct crossbeam_epoch::Shared"><code>Shared</code></a>, which is an epoch-protected pointer through which the loaded object can be safely
read.</p>
<h2 id="pinning"><a class="doc-anchor" href="#pinning">§</a>Pinning</h2>
<p>Before an <a href="struct.Atomic.html" title="struct crossbeam_epoch::Atomic"><code>Atomic</code></a> can be loaded, a participant must be <a href="fn.pin.html" title="fn crossbeam_epoch::pin"><code>pin</code></a>ned. By pinning a participant
we declare that any object that gets removed from now on must not be destructed just
yet. Garbage collection of newly removed objects is suspended until the participant gets
unpinned.</p>
<h2 id="garbage"><a class="doc-anchor" href="#garbage">§</a>Garbage</h2>
<p>Objects that get removed from concurrent collections must be stashed away until all currently
pinned participants get unpinned. Such objects can be stored into a thread-local or global
storage, where they are kept until the right time for their destruction comes.</p>
<p>There is a global shared instance of garbage queue. You can <a href="struct.Guard.html#method.defer" title="method crossbeam_epoch::Guard::defer"><code>defer</code></a> the execution of an
arbitrary function until the global epoch is advanced enough. Most notably, concurrent data
structures may defer the deallocation of an object.</p>
<h2 id="apis"><a class="doc-anchor" href="#apis">§</a>APIs</h2>
<p>For majority of use cases, just use the default garbage collector by invoking <a href="fn.pin.html" title="fn crossbeam_epoch::pin"><code>pin</code></a>. If you
want to create your own garbage collector, use the <a href="struct.Collector.html" title="struct crossbeam_epoch::Collector"><code>Collector</code></a> API.</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.Atomic.html" title="struct crossbeam_epoch::Atomic">Atomic</a></dt><dd>An atomic pointer that can be safely shared between threads.</dd><dt><a class="struct" href="struct.Collector.html" title="struct crossbeam_epoch::Collector">Collector</a></dt><dd>An epoch-based garbage collector.</dd><dt><a class="struct" href="struct.CompareExchangeError.html" title="struct crossbeam_epoch::CompareExchangeError">Compare<wbr>Exchange<wbr>Error</a></dt><dd>The error returned on failed compare-and-swap operation.</dd><dt><a class="struct" href="struct.Guard.html" title="struct crossbeam_epoch::Guard">Guard</a></dt><dd>A guard that keeps the current thread pinned.</dd><dt><a class="struct" href="struct.LocalHandle.html" title="struct crossbeam_epoch::LocalHandle">Local<wbr>Handle</a></dt><dd>A handle to a garbage collector.</dd><dt><a class="struct" href="struct.Owned.html" title="struct crossbeam_epoch::Owned">Owned</a></dt><dd>An owned heap-allocated object.</dd><dt><a class="struct" href="struct.Shared.html" title="struct crossbeam_epoch::Shared">Shared</a></dt><dd>A pointer to an object protected by the epoch GC.</dd></dl><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><dl class="item-table"><dt><a class="trait" href="trait.CompareAndSetOrdering.html" title="trait crossbeam_epoch::CompareAndSetOrdering">Compare<wbr>AndSet<wbr>Ordering</a><wbr><span class="stab deprecated" title="">Deprecated</span></dt><dd>Memory orderings for compare-and-set operations.</dd><dt><a class="trait" href="trait.Pointable.html" title="trait crossbeam_epoch::Pointable">Pointable</a></dt><dd>Types that are pointed to by a single word.</dd><dt><a class="trait" href="trait.Pointer.html" title="trait crossbeam_epoch::Pointer">Pointer</a></dt><dd>A trait for either <code>Owned</code> or <code>Shared</code> pointers.</dd></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.default_collector.html" title="fn crossbeam_epoch::default_collector">default_<wbr>collector</a></dt><dd>Returns the default global collector.</dd><dt><a class="fn" href="fn.is_pinned.html" title="fn crossbeam_epoch::is_pinned">is_<wbr>pinned</a></dt><dd>Returns <code>true</code> if the current thread is pinned.</dd><dt><a class="fn" href="fn.pin.html" title="fn crossbeam_epoch::pin">pin</a></dt><dd>Pins the current thread.</dd><dt><a class="fn" href="fn.unprotected.html" title="fn crossbeam_epoch::unprotected">unprotected</a><sup title="unsafe function"></sup></dt><dd>Returns a reference to a dummy guard that allows unprotected access to <a href="struct.Atomic.html" title="struct crossbeam_epoch::Atomic"><code>Atomic</code></a>s.</dd></dl><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><dl class="item-table"><dt><a class="type" href="type.CompareAndSetError.html" title="type crossbeam_epoch::CompareAndSetError">Compare<wbr>AndSet<wbr>Error</a><wbr><span class="stab deprecated" title="">Deprecated</span></dt><dd>The error returned on failed compare-and-set operation.</dd></dl></section></div></main></body></html>

View File

@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {"fn":["default_collector","is_pinned","pin","unprotected"],"struct":["Atomic","Collector","CompareExchangeError","Guard","LocalHandle","Owned","Shared"],"trait":["CompareAndSetOrdering","Pointable","Pointer"],"type":["CompareAndSetError"]};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
<!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="A trait for either `Owned` or `Shared` pointers."><title>Pointer in crossbeam_epoch - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="crossbeam_epoch" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.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]--><rustdoc-topbar><h2><a href="#">Pointer</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../crossbeam_epoch/index.html">crossbeam_<wbr>epoch</a><span class="version">0.9.18</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Pointer</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.from_usize" title="from_usize">from_usize</a></li><li><a href="#tymethod.into_usize" title="into_usize">into_usize</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate crossbeam_<wbr>epoch</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="index.html">crossbeam_epoch</a></div><h1>Trait <span class="trait">Pointer</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/crossbeam_epoch/atomic.rs.html#1029-1040">Source</a> </span></div><pre class="rust item-decl"><code>pub trait Pointer&lt;T: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="trait.Pointable.html" title="trait crossbeam_epoch::Pointable">Pointable</a>&gt; {
// Required methods
fn <a href="#tymethod.into_usize" class="fn">into_usize</a>(self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>;
<span class="item-spacer"></span> unsafe fn <a href="#tymethod.from_usize" class="fn">from_usize</a>(data: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>) -&gt; Self;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A trait for either <code>Owned</code> or <code>Shared</code> pointers.</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.into_usize" class="method"><a class="src rightside" href="../src/crossbeam_epoch/atomic.rs.html#1031">Source</a><h4 class="code-header">fn <a href="#tymethod.into_usize" class="fn">into_usize</a>(self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Returns the machine representation of the pointer.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.from_usize" class="method"><a class="src rightside" href="../src/crossbeam_epoch/atomic.rs.html#1039">Source</a><h4 class="code-header">unsafe fn <a href="#tymethod.from_usize" class="fn">from_usize</a>(data: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Returns a new pointer pointing to the tagged pointer <code>data</code>.</p>
<h5 id="safety"><a class="doc-anchor" href="#safety">§</a>Safety</h5>
<p>The given <code>data</code> should have been created by <code>Pointer::into_usize()</code>, and one <code>data</code> should
not be converted back by <code>Pointer::from_usize()</code> multiple times.</p>
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/1.93.1/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-Pointer%3CT%3E-for-Owned%3CT%3E" class="impl"><a class="src rightside" href="../src/crossbeam_epoch/atomic.rs.html#1053-1074">Source</a><a href="#impl-Pointer%3CT%3E-for-Owned%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="trait.Pointable.html" title="trait crossbeam_epoch::Pointable">Pointable</a>&gt; <a class="trait" href="trait.Pointer.html" title="trait crossbeam_epoch::Pointer">Pointer</a>&lt;T&gt; for <a class="struct" href="struct.Owned.html" title="struct crossbeam_epoch::Owned">Owned</a>&lt;T&gt;</h3></section><section id="impl-Pointer%3CT%3E-for-Shared%3C'_,+T%3E" class="impl"><a class="src rightside" href="../src/crossbeam_epoch/atomic.rs.html#1310-1323">Source</a><a href="#impl-Pointer%3CT%3E-for-Shared%3C'_,+T%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="trait.Pointable.html" title="trait crossbeam_epoch::Pointable">Pointable</a>&gt; <a class="trait" href="trait.Pointer.html" title="trait crossbeam_epoch::Pointer">Pointer</a>&lt;T&gt; for <a class="struct" href="struct.Shared.html" title="struct crossbeam_epoch::Shared">Shared</a>&lt;'_, T&gt;</h3></section></div><script src="../trait.impl/crossbeam_epoch/atomic/trait.Pointer.js" async></script></section></div></main></body></html>

View File

@@ -0,0 +1,7 @@
<!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="The error returned on failed compare-and-set operation."><title>CompareAndSetError in crossbeam_epoch - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="crossbeam_epoch" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">CompareAndSetError</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../crossbeam_epoch/index.html">crossbeam_<wbr>epoch</a><span class="version">0.9.18</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Compare<wbr>AndSet<wbr>Error</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3><h3><a href="#fields">Fields</a></h3><ul class="block field"><li><a href="#structfield.current" title="current">current</a></li><li><a href="#structfield.new" title="new">new</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate crossbeam_<wbr>epoch</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="index.html">crossbeam_epoch</a></div><h1>Type Alias <span class="type">Compare<wbr>AndSet<wbr>Error</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/crossbeam_epoch/atomic.rs.html#31">Source</a> </span></div><pre class="rust item-decl"><code>pub type CompareAndSetError&lt;'g, T, P&gt; = <a class="struct" href="struct.CompareExchangeError.html" title="struct crossbeam_epoch::CompareExchangeError">CompareExchangeError</a>&lt;'g, T, P&gt;;</code></pre><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: Use <code>CompareExchangeError</code> instead</span></div></span><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The error returned on failed compare-and-set operation.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct CompareAndSetError&lt;'g, T, P&gt; {
pub current: <a class="struct" href="struct.Shared.html" title="struct crossbeam_epoch::Shared">Shared</a>&lt;'g, T&gt;,
pub new: P,
}</code></pre><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.current" class="structfield section-header"><a href="#structfield.current" class="anchor field">§</a><code>current: <a class="struct" href="struct.Shared.html" title="struct crossbeam_epoch::Shared">Shared</a>&lt;'g, T&gt;</code></span><div class="docblock"><p>The value in the atomic pointer at the time of the failed operation.</p>
</div><span id="structfield.new" class="structfield section-header"><a href="#structfield.new" class="anchor field">§</a><code>new: P</code></span><div class="docblock"><p>The new value, which the operation failed to store.</p>
</div><script src="../type.impl/crossbeam_epoch/struct.CompareExchangeError.js" data-self-path="crossbeam_epoch::atomic::CompareAndSetError" async></script></section></div></main></body></html>