oxipng/doc/bitflags/__core/ptr/struct.Shared.html
2016-04-20 15:59:23 -04:00

255 lines
No EOL
23 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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 `Shared` struct in crate `bitflags`.">
<meta name="keywords" content="rust, rustlang, rust-lang, Shared">
<title>bitflags::__core::ptr::Shared - Rust</title>
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../main.css">
</head>
<body class="rustdoc">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
<p class='location'><a href='../../index.html'>bitflags</a>::<wbr><a href='../index.html'>__core</a>::<wbr><a href='index.html'>ptr</a></p><script>window.sidebarCurrent = {name: 'Shared', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script>
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content struct">
<h1 class='fqn'><span class='in-band'>Struct <a href='../../index.html'>bitflags</a>::<wbr><a href='../index.html'>__core</a>::<wbr><a href='index.html'>ptr</a>::<wbr><a class='struct' href=''>Shared</a></span><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'>&#x2212;</span>]
</a>
</span><a id='src-12908' class='srclink' href='https://doc.rust-lang.org/nightly/core/ptr/struct.Shared.html?gotosrc=12908' title='goto source code'>[src]</a></span></h1>
<pre class='rust struct'>pub struct Shared&lt;T&gt; <span class='where'>where T: ?<a class='trait' href='../../../bitflags/__core/marker/trait.Sized.html' title='bitflags::__core::marker::Sized'>Sized</a></span> {
// some fields omitted
}</pre><div class='stability'><em class='stab unstable'>Unstable (<code>shared</code>)<p>: needs an RFC to flesh out design</p>
</em></div><div class='docblock'><p>A wrapper around a raw non-null <code>*mut T</code> that indicates that the possessor
of this wrapper has shared ownership of the referent. Useful for
building abstractions like <code>Rc&lt;T&gt;</code> or <code>Arc&lt;T&gt;</code>, which internally
use raw pointers to manage the memory that they own.</p>
</div><h2 id='methods'>Methods</h2><h3 class='impl'><code>impl&lt;T&gt; <a class='struct' href='../../../bitflags/__core/ptr/struct.Shared.html' title='bitflags::__core::ptr::Shared'>Shared</a>&lt;T&gt; <span class='where'>where T: ?<a class='trait' href='../../../bitflags/__core/marker/trait.Sized.html' title='bitflags::__core::marker::Sized'>Sized</a></span></code></h3><div class='impl-items'><h4 id='method.new' class='method'><code>unsafe fn <a href='#method.new' class='fnname'>new</a>(ptr: <a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.pointer.html'>*mut T</a>) -&gt; <a class='struct' href='../../../bitflags/__core/ptr/struct.Shared.html' title='bitflags::__core::ptr::Shared'>Shared</a>&lt;T&gt;</code></h4>
<div class='stability'><em class='stab unstable'>Unstable (<code>shared</code>)</em></div><div class='docblock'><p>Creates a new <code>Shared</code>.</p>
<h1 id='safety' class='section-header'><a href='#safety'>Safety</a></h1>
<p><code>ptr</code> must be non-null.</p>
</div></div><h2 id='deref-methods'>Methods from <a class='trait' href='../../../bitflags/__core/ops/trait.Deref.html' title='bitflags::__core::ops::Deref'>Deref</a>&lt;Target=<a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.pointer.html'>*mut T</a>&gt;</h2><div class='impl-items'><h4 id='method.is_null' class='method'><span class="since">1.0.0</span><code>fn <a href='#method.is_null' class='fnname'>is_null</a>(self) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.bool.html'>bool</a></code></h4>
<div class='docblock'><p>Returns true if the pointer is null.</p>
<h1 id='examples' class='section-header'><a href='#examples'>Examples</a></h1>
<p>Basic usage:</p>
<pre class='rust rust-example-rendered'>
<span class='kw'>let</span> <span class='kw-2'>mut</span> <span class='ident'>s</span> <span class='op'>=</span> [<span class='number'>1</span>, <span class='number'>2</span>, <span class='number'>3</span>];
<span class='kw'>let</span> <span class='ident'>ptr</span>: <span class='op'>*</span><span class='kw-2'>mut</span> <span class='ident'>u32</span> <span class='op'>=</span> <span class='ident'>s</span>.<span class='ident'>as_mut_ptr</span>();
<span class='macro'>assert</span><span class='macro'>!</span>(<span class='op'>!</span><span class='ident'>ptr</span>.<span class='ident'>is_null</span>());</pre>
</div><h4 id='method.as_ref' class='method'><span class="since">1.9.0</span><code>unsafe fn <a href='#method.as_ref' class='fnname'>as_ref</a>(self) -&gt; <a class='enum' href='../../../bitflags/__core/option/enum.Option.html' title='bitflags::__core::option::Option'>Option</a>&lt;&amp;'a T&gt;</code></h4>
<div class='docblock'><p>Returns <code>None</code> if the pointer is null, or else returns a reference to
the value wrapped in <code>Some</code>.</p>
<h1 id='safety-1' class='section-header'><a href='#safety-1'>Safety</a></h1>
<p>While this method and its mutable counterpart are useful for
null-safety, it is important to note that this is still an unsafe
operation because the returned value could be pointing to invalid
memory.</p>
<p>Additionally, the lifetime <code>&#39;a</code> returned is arbitrarily chosen and does
not necessarily reflect the actual lifetime of the data.</p>
<h1 id='examples-1' class='section-header'><a href='#examples-1'>Examples</a></h1>
<p>Basic usage:</p>
<pre class='rust rust-example-rendered'>
<span class='kw'>let</span> <span class='ident'>val</span>: <span class='op'>*</span><span class='kw-2'>mut</span> <span class='ident'>u8</span> <span class='op'>=</span> <span class='kw-2'>&amp;</span><span class='kw-2'>mut</span> <span class='number'>10u8</span> <span class='kw'>as</span> <span class='op'>*</span><span class='kw-2'>mut</span> <span class='ident'>u8</span>;
<span class='kw'>unsafe</span> {
<span class='kw'>if</span> <span class='kw'>let</span> <span class='prelude-val'>Some</span>(<span class='ident'>val_back</span>) <span class='op'>=</span> <span class='ident'>val</span>.<span class='ident'>as_ref</span>() {
<span class='macro'>println</span><span class='macro'>!</span>(<span class='string'>&quot;We got back the value: {}!&quot;</span>, <span class='ident'>val_back</span>);
}
}</pre>
</div><h4 id='method.offset' class='method'><span class="since">1.0.0</span><code>unsafe fn <a href='#method.offset' class='fnname'>offset</a>(self, count: <a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.isize.html'>isize</a>) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.pointer.html'>*mut T</a></code></h4>
<div class='docblock'><p>Calculates the offset from a pointer. <code>count</code> is in units of T; e.g. a
<code>count</code> of 3 represents a pointer offset of <code>3 * sizeof::&lt;T&gt;()</code> bytes.</p>
<h1 id='safety-2' class='section-header'><a href='#safety-2'>Safety</a></h1>
<p>The offset must be in-bounds of the object, or one-byte-past-the-end.
Otherwise <code>offset</code> invokes Undefined Behavior, regardless of whether
the pointer is used.</p>
<h1 id='examples-2' class='section-header'><a href='#examples-2'>Examples</a></h1>
<p>Basic usage:</p>
<pre class='rust rust-example-rendered'>
<span class='kw'>let</span> <span class='kw-2'>mut</span> <span class='ident'>s</span> <span class='op'>=</span> [<span class='number'>1</span>, <span class='number'>2</span>, <span class='number'>3</span>];
<span class='kw'>let</span> <span class='ident'>ptr</span>: <span class='op'>*</span><span class='kw-2'>mut</span> <span class='ident'>u32</span> <span class='op'>=</span> <span class='ident'>s</span>.<span class='ident'>as_mut_ptr</span>();
<span class='kw'>unsafe</span> {
<span class='macro'>println</span><span class='macro'>!</span>(<span class='string'>&quot;{}&quot;</span>, <span class='op'>*</span><span class='ident'>ptr</span>.<span class='ident'>offset</span>(<span class='number'>1</span>));
<span class='macro'>println</span><span class='macro'>!</span>(<span class='string'>&quot;{}&quot;</span>, <span class='op'>*</span><span class='ident'>ptr</span>.<span class='ident'>offset</span>(<span class='number'>2</span>));
}</pre>
</div><h4 id='method.as_mut' class='method'><span class="since">1.9.0</span><code>unsafe fn <a href='#method.as_mut' class='fnname'>as_mut</a>(self) -&gt; <a class='enum' href='../../../bitflags/__core/option/enum.Option.html' title='bitflags::__core::option::Option'>Option</a>&lt;&amp;'a mut T&gt;</code></h4>
<div class='docblock'><p>Returns <code>None</code> if the pointer is null, or else returns a mutable
reference to the value wrapped in <code>Some</code>.</p>
<h1 id='safety-3' class='section-header'><a href='#safety-3'>Safety</a></h1>
<p>As with <code>as_ref</code>, this is unsafe because it cannot verify the validity
of the returned pointer, nor can it ensure that the lifetime <code>&#39;a</code>
returned is indeed a valid lifetime for the contained data.</p>
<h1 id='examples-3' class='section-header'><a href='#examples-3'>Examples</a></h1>
<p>Basic usage:</p>
<pre class='rust rust-example-rendered'>
<span class='kw'>let</span> <span class='kw-2'>mut</span> <span class='ident'>s</span> <span class='op'>=</span> [<span class='number'>1</span>, <span class='number'>2</span>, <span class='number'>3</span>];
<span class='kw'>let</span> <span class='ident'>ptr</span>: <span class='op'>*</span><span class='kw-2'>mut</span> <span class='ident'>u32</span> <span class='op'>=</span> <span class='ident'>s</span>.<span class='ident'>as_mut_ptr</span>();</pre>
</div></div><div class='impl-items'><h4 id='method.is_null-1' class='method'><span class="since">1.0.0</span><code>fn <a href='#method.is_null' class='fnname'>is_null</a>(self) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.bool.html'>bool</a></code></h4>
<div class='docblock'><p>Returns true if the pointer is null.</p>
<h1 id='examples-4' class='section-header'><a href='#examples-4'>Examples</a></h1>
<p>Basic usage:</p>
<pre class='rust rust-example-rendered'>
<span class='kw'>let</span> <span class='ident'>s</span>: <span class='kw-2'>&amp;</span><span class='ident'>str</span> <span class='op'>=</span> <span class='string'>&quot;Follow the rabbit&quot;</span>;
<span class='kw'>let</span> <span class='ident'>ptr</span>: <span class='op'>*</span><span class='kw'>const</span> <span class='ident'>u8</span> <span class='op'>=</span> <span class='ident'>s</span>.<span class='ident'>as_ptr</span>();
<span class='macro'>assert</span><span class='macro'>!</span>(<span class='op'>!</span><span class='ident'>ptr</span>.<span class='ident'>is_null</span>());</pre>
</div><h4 id='method.as_ref-1' class='method'><span class="since">1.9.0</span><code>unsafe fn <a href='#method.as_ref' class='fnname'>as_ref</a>(self) -&gt; <a class='enum' href='../../../bitflags/__core/option/enum.Option.html' title='bitflags::__core::option::Option'>Option</a>&lt;&amp;'a T&gt;</code></h4>
<div class='docblock'><p>Returns <code>None</code> if the pointer is null, or else returns a reference to
the value wrapped in <code>Some</code>.</p>
<h1 id='safety-4' class='section-header'><a href='#safety-4'>Safety</a></h1>
<p>While this method and its mutable counterpart are useful for
null-safety, it is important to note that this is still an unsafe
operation because the returned value could be pointing to invalid
memory.</p>
<p>Additionally, the lifetime <code>&#39;a</code> returned is arbitrarily chosen and does
not necessarily reflect the actual lifetime of the data.</p>
<h1 id='examples-5' class='section-header'><a href='#examples-5'>Examples</a></h1>
<p>Basic usage:</p>
<pre class='rust rust-example-rendered'>
<span class='kw'>let</span> <span class='ident'>val</span>: <span class='op'>*</span><span class='kw'>const</span> <span class='ident'>u8</span> <span class='op'>=</span> <span class='kw-2'>&amp;</span><span class='number'>10u8</span> <span class='kw'>as</span> <span class='op'>*</span><span class='kw'>const</span> <span class='ident'>u8</span>;
<span class='kw'>unsafe</span> {
<span class='kw'>if</span> <span class='kw'>let</span> <span class='prelude-val'>Some</span>(<span class='ident'>val_back</span>) <span class='op'>=</span> <span class='ident'>val</span>.<span class='ident'>as_ref</span>() {
<span class='macro'>println</span><span class='macro'>!</span>(<span class='string'>&quot;We got back the value: {}!&quot;</span>, <span class='ident'>val_back</span>);
}
}</pre>
</div><h4 id='method.offset-1' class='method'><span class="since">1.0.0</span><code>unsafe fn <a href='#method.offset' class='fnname'>offset</a>(self, count: <a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.isize.html'>isize</a>) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.pointer.html'>*const T</a></code></h4>
<div class='docblock'><p>Calculates the offset from a pointer. <code>count</code> is in units of T; e.g. a
<code>count</code> of 3 represents a pointer offset of <code>3 * sizeof::&lt;T&gt;()</code> bytes.</p>
<h1 id='safety-5' class='section-header'><a href='#safety-5'>Safety</a></h1>
<p>Both the starting and resulting pointer must be either in bounds or one
byte past the end of an allocated object. If either pointer is out of
bounds or arithmetic overflow occurs then
any further use of the returned value will result in undefined behavior.</p>
<h1 id='examples-6' class='section-header'><a href='#examples-6'>Examples</a></h1>
<p>Basic usage:</p>
<pre class='rust rust-example-rendered'>
<span class='kw'>let</span> <span class='ident'>s</span>: <span class='kw-2'>&amp;</span><span class='ident'>str</span> <span class='op'>=</span> <span class='string'>&quot;123&quot;</span>;
<span class='kw'>let</span> <span class='ident'>ptr</span>: <span class='op'>*</span><span class='kw'>const</span> <span class='ident'>u8</span> <span class='op'>=</span> <span class='ident'>s</span>.<span class='ident'>as_ptr</span>();
<span class='kw'>unsafe</span> {
<span class='macro'>println</span><span class='macro'>!</span>(<span class='string'>&quot;{}&quot;</span>, <span class='op'>*</span><span class='ident'>ptr</span>.<span class='ident'>offset</span>(<span class='number'>1</span>) <span class='kw'>as</span> <span class='ident'>char</span>);
<span class='macro'>println</span><span class='macro'>!</span>(<span class='string'>&quot;{}&quot;</span>, <span class='op'>*</span><span class='ident'>ptr</span>.<span class='ident'>offset</span>(<span class='number'>2</span>) <span class='kw'>as</span> <span class='ident'>char</span>);
}</pre>
</div></div><h2 id='implementations'>Trait Implementations</h2><h3 class='impl'><code>impl&lt;T&gt; <a class='trait' href='../../../bitflags/__core/fmt/trait.Pointer.html' title='bitflags::__core::fmt::Pointer'>Pointer</a> for <a class='struct' href='../../../bitflags/__core/ptr/struct.Shared.html' title='bitflags::__core::ptr::Shared'>Shared</a>&lt;T&gt;</code></h3><div class='impl-items'><h4 id='method.fmt' class='method'><code>fn <a href='../../../bitflags/__core/fmt/trait.Pointer.html#tymethod.fmt' class='fnname'>fmt</a>(&amp;self, f: &amp;mut <a class='struct' href='../../../bitflags/__core/fmt/struct.Formatter.html' title='bitflags::__core::fmt::Formatter'>Formatter</a>) -&gt; <a class='enum' href='../../../bitflags/__core/result/enum.Result.html' title='bitflags::__core::result::Result'>Result</a>&lt;<a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.tuple.html'>()</a>, <a class='struct' href='../../../bitflags/__core/fmt/struct.Error.html' title='bitflags::__core::fmt::Error'>Error</a>&gt;</code></h4>
<div class='stability'><em class='stab unstable'>Unstable (<code>shared</code>)</em></div></div><h3 class='impl'><code>impl&lt;T&gt; <a class='trait' href='../../../bitflags/__core/ops/trait.Deref.html' title='bitflags::__core::ops::Deref'>Deref</a> for <a class='struct' href='../../../bitflags/__core/ptr/struct.Shared.html' title='bitflags::__core::ptr::Shared'>Shared</a>&lt;T&gt; <span class='where'>where T: ?<a class='trait' href='../../../bitflags/__core/marker/trait.Sized.html' title='bitflags::__core::marker::Sized'>Sized</a></span></code></h3><div class='impl-items'><h4 id='associatedtype.Target' class='type'><code>type <a href='../../../bitflags/__core/ops/trait.Deref.html#associatedtype.Target' class='type'>Target</a> = <a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.pointer.html'>*mut T</a></code></h4>
<div class='stability'><em class='stab unstable'>Unstable (<code>shared</code>)</em></div><h4 id='method.deref' class='method'><code>fn <a href='../../../bitflags/__core/ops/trait.Deref.html#tymethod.deref' class='fnname'>deref</a>(&amp;self) -&gt; &amp;<a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.pointer.html'>*mut T</a></code></h4>
<div class='stability'><em class='stab unstable'>Unstable (<code>shared</code>)</em></div></div><h3 class='impl'><code>impl&lt;T, U&gt; <a class='trait' href='../../../bitflags/__core/ops/trait.CoerceUnsized.html' title='bitflags::__core::ops::CoerceUnsized'>CoerceUnsized</a>&lt;<a class='struct' href='../../../bitflags/__core/ptr/struct.Shared.html' title='bitflags::__core::ptr::Shared'>Shared</a>&lt;U&gt;&gt; for <a class='struct' href='../../../bitflags/__core/ptr/struct.Shared.html' title='bitflags::__core::ptr::Shared'>Shared</a>&lt;T&gt; <span class='where'>where T: <a class='trait' href='../../../bitflags/__core/marker/trait.Unsize.html' title='bitflags::__core::marker::Unsize'>Unsize</a>&lt;U&gt; + ?<a class='trait' href='../../../bitflags/__core/marker/trait.Sized.html' title='bitflags::__core::marker::Sized'>Sized</a>, U: ?<a class='trait' href='../../../bitflags/__core/marker/trait.Sized.html' title='bitflags::__core::marker::Sized'>Sized</a></span></code></h3><div class='impl-items'></div><h3 class='impl'><code>impl&lt;T&gt; <a class='trait' href='../../../bitflags/__core/marker/trait.Copy.html' title='bitflags::__core::marker::Copy'>Copy</a> for <a class='struct' href='../../../bitflags/__core/ptr/struct.Shared.html' title='bitflags::__core::ptr::Shared'>Shared</a>&lt;T&gt; <span class='where'>where T: ?<a class='trait' href='../../../bitflags/__core/marker/trait.Sized.html' title='bitflags::__core::marker::Sized'>Sized</a></span></code></h3><div class='impl-items'></div><h3 class='impl'><code>impl&lt;T&gt; <a class='trait' href='../../../bitflags/__core/clone/trait.Clone.html' title='bitflags::__core::clone::Clone'>Clone</a> for <a class='struct' href='../../../bitflags/__core/ptr/struct.Shared.html' title='bitflags::__core::ptr::Shared'>Shared</a>&lt;T&gt; <span class='where'>where T: ?<a class='trait' href='../../../bitflags/__core/marker/trait.Sized.html' title='bitflags::__core::marker::Sized'>Sized</a></span></code></h3><div class='impl-items'><h4 id='method.clone' class='method'><code>fn <a href='../../../bitflags/__core/clone/trait.Clone.html#tymethod.clone' class='fnname'>clone</a>(&amp;self) -&gt; <a class='struct' href='../../../bitflags/__core/ptr/struct.Shared.html' title='bitflags::__core::ptr::Shared'>Shared</a>&lt;T&gt;</code></h4>
<div class='stability'><em class='stab unstable'>Unstable (<code>shared</code>)</em></div><h4 id='method.clone_from' class='method'><span class="since">1.0.0</span><code>fn <a href='../../../bitflags/__core/clone/trait.Clone.html#method.clone_from' class='fnname'>clone_from</a>(&amp;mut self, source: &amp;Self)</code></h4>
</div><h3 class='impl'><code>impl&lt;T&gt; !<a class='trait' href='../../../bitflags/__core/marker/trait.Sync.html' title='bitflags::__core::marker::Sync'>Sync</a> for <a class='struct' href='../../../bitflags/__core/ptr/struct.Shared.html' title='bitflags::__core::ptr::Shared'>Shared</a>&lt;T&gt; <span class='where'>where T: ?<a class='trait' href='../../../bitflags/__core/marker/trait.Sized.html' title='bitflags::__core::marker::Sized'>Sized</a></span></code></h3><div class='docblock'><p><code>Shared</code> pointers are not <code>Sync</code> because the data they reference may be aliased.</p>
</div><div class='impl-items'></div><h3 class='impl'><code>impl&lt;T&gt; !<a class='trait' href='../../../bitflags/__core/marker/trait.Send.html' title='bitflags::__core::marker::Send'>Send</a> for <a class='struct' href='../../../bitflags/__core/ptr/struct.Shared.html' title='bitflags::__core::ptr::Shared'>Shared</a>&lt;T&gt; <span class='where'>where T: ?<a class='trait' href='../../../bitflags/__core/marker/trait.Sized.html' title='bitflags::__core::marker::Sized'>Sized</a></span></code></h3><div class='docblock'><p><code>Shared</code> pointers are not <code>Send</code> because the data they reference may be aliased.</p>
</div><div class='impl-items'></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>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt>&larrb;</dt>
<dd>Move up in search results</dd>
<dt>&rarrb;</dt>
<dd>Move down in search results</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "bitflags";
window.playgroundUrl = "";
</script>
<script src="../../../jquery.js"></script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>