Files
phy/wgpu/struct.Queue.html
Orion Kindel 0ce894e6b0 doc
2025-03-18 10:30:23 -05:00

99 lines
37 KiB
HTML
Raw Permalink 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="Handle to a command queue on a device."><title>Queue in wgpu - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.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" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-42caa33d.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wgpu" data-themes="" data-resource-suffix="" data-rustdoc-version="1.84.0 (9fc6b4312 2025-01-07)" data-channel="1.84.0" data-search-js="search-92e6798f.js" data-settings-js="settings-0f613d39.js" ><script src="../static.files/storage-59e33391.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-5f194d8c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc struct"><!--[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" title="show sidebar"></button><a class="logo-container" href="../wgpu/index.html"><img src="https://raw.githubusercontent.com/gfx-rs/wgpu/trunk/logo.png" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../wgpu/index.html"><img src="https://raw.githubusercontent.com/gfx-rs/wgpu/trunk/logo.png" alt="logo"></a><h2><a href="../wgpu/index.html">wgpu</a><span class="version">23.0.1</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Queue</a></h2><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.get_timestamp_period" title="get_timestamp_period">get_timestamp_period</a></li><li><a href="#method.on_submitted_work_done" title="on_submitted_work_done">on_submitted_work_done</a></li><li><a href="#method.submit" title="submit">submit</a></li><li><a href="#method.write_buffer" title="write_buffer">write_buffer</a></li><li><a href="#method.write_buffer_with" title="write_buffer_with">write_buffer_with</a></li><li><a href="#method.write_texture" title="write_texture">write_texture</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Debug-for-Queue" title="Debug">Debug</a></li><li><a href="#impl-Drop-for-Queue" title="Drop">Drop</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-Queue" title="!RefUnwindSafe">!RefUnwindSafe</a></li><li><a href="#impl-UnwindSafe-for-Queue" title="!UnwindSafe">!UnwindSafe</a></li><li><a href="#impl-Freeze-for-Queue" title="Freeze">Freeze</a></li><li><a href="#impl-Send-for-Queue" title="Send">Send</a></li><li><a href="#impl-Sync-for-Queue" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-Queue" title="Unpin">Unpin</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-Downcast%3CT%3E-for-T" title="Downcast&#60;T&#62;">Downcast&#60;T&#62;</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li><li><a href="#impl-Upcast%3CT%3E-for-T" title="Upcast&#60;T&#62;">Upcast&#60;T&#62;</a></li><li><a href="#impl-WasmNotSend-for-T" title="WasmNotSend">WasmNotSend</a></li><li><a href="#impl-WasmNotSendSync-for-T" title="WasmNotSendSync">WasmNotSendSync</a></li><li><a href="#impl-WasmNotSync-for-T" title="WasmNotSync">WasmNotSync</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate wgpu</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">wgpu</a></span><h1>Struct <span class="struct">Queue</span><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/wgpu/api/queue.rs.html#18-21">Source</a> </span></div><pre class="rust item-decl"><code>pub struct Queue { <span class="comment">/* private fields */</span> }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Handle to a command queue on a device.</p>
<p>A <code>Queue</code> executes recorded <a href="struct.CommandBuffer.html" title="struct wgpu::CommandBuffer"><code>CommandBuffer</code></a> objects and provides convenience methods
for writing to <a href="struct.Queue.html#method.write_buffer" title="method wgpu::Queue::write_buffer">buffers</a> and <a href="struct.Queue.html#method.write_texture" title="method wgpu::Queue::write_texture">textures</a>.
It can be created along with a <a href="struct.Device.html" title="struct wgpu::Device"><code>Device</code></a> by calling <a href="struct.Adapter.html#method.request_device" title="method wgpu::Adapter::request_device"><code>Adapter::request_device</code></a>.</p>
<p>Corresponds to <a href="https://gpuweb.github.io/gpuweb/#gpu-queue">WebGPU <code>GPUQueue</code></a>.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Queue" class="impl"><a class="src rightside" href="../src/wgpu/api/queue.rs.html#100-285">Source</a><a href="#impl-Queue" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Queue.html" title="struct wgpu::Queue">Queue</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.write_buffer" class="method"><a class="src rightside" href="../src/wgpu/api/queue.rs.html#121-129">Source</a><h4 class="code-header">pub fn <a href="#method.write_buffer" class="fn">write_buffer</a>(&amp;self, buffer: &amp;<a class="struct" href="struct.Buffer.html" title="struct wgpu::Buffer">Buffer</a>, offset: <a class="type" href="type.BufferAddress.html" title="type wgpu::BufferAddress">BufferAddress</a>, data: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u8.html">u8</a>])</h4></section></summary><div class="docblock"><p>Schedule a data write into <code>buffer</code> starting at <code>offset</code>.</p>
<p>This method fails if <code>data</code> overruns the size of <code>buffer</code> starting at <code>offset</code>.</p>
<p>This does <em>not</em> submit the transfer to the GPU immediately. Calls to
<code>write_buffer</code> begin execution only on the next call to
<a href="struct.Queue.html#method.submit" title="method wgpu::Queue::submit"><code>Queue::submit</code></a>. To get a set of scheduled transfers started
immediately, its fine to call <code>submit</code> with no command buffers at all:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>queue.submit([]);</code></pre></div>
<p>However, <code>data</code> will be immediately copied into staging memory, so the
caller may discard it any time after this call completes.</p>
<p>If possible, consider using <a href="struct.Queue.html#method.write_buffer_with" title="method wgpu::Queue::write_buffer_with"><code>Queue::write_buffer_with</code></a> instead. That
method avoids an intermediate copy and is often able to transfer data
more efficiently than this one.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.write_buffer_with" class="method"><a class="src rightside" href="../src/wgpu/api/queue.rs.html#160-182">Source</a><h4 class="code-header">pub fn <a href="#method.write_buffer_with" class="fn">write_buffer_with</a>&lt;'a&gt;(
&amp;'a self,
buffer: &amp;'a <a class="struct" href="struct.Buffer.html" title="struct wgpu::Buffer">Buffer</a>,
offset: <a class="type" href="type.BufferAddress.html" title="type wgpu::BufferAddress">BufferAddress</a>,
size: <a class="type" href="type.BufferSize.html" title="type wgpu::BufferSize">BufferSize</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.QueueWriteBufferView.html" title="struct wgpu::QueueWriteBufferView">QueueWriteBufferView</a>&lt;'a&gt;&gt;</h4></section></summary><div class="docblock"><p>Write to a buffer via a directly mapped staging buffer.</p>
<p>Return a <a href="struct.QueueWriteBufferView.html" title="struct wgpu::QueueWriteBufferView"><code>QueueWriteBufferView</code></a> which, when dropped, schedules a copy
of its contents into <code>buffer</code> at <code>offset</code>. The returned view
dereferences to a <code>size</code>-byte long <code>&amp;mut [u8]</code>, in which you should
store the data you would like written to <code>buffer</code>.</p>
<p>This method may perform transfers faster than <a href="struct.Queue.html#method.write_buffer" title="method wgpu::Queue::write_buffer"><code>Queue::write_buffer</code></a>,
because the returned <a href="struct.QueueWriteBufferView.html" title="struct wgpu::QueueWriteBufferView"><code>QueueWriteBufferView</code></a> is actually the staging
buffer for the write, mapped into the callers address space. Writing
your data directly into this staging buffer avoids the temporary
CPU-side buffer needed by <code>write_buffer</code>.</p>
<p>Reading from the returned view is slow, and will not yield the current
contents of <code>buffer</code>.</p>
<p>Note that dropping the <a href="struct.QueueWriteBufferView.html" title="struct wgpu::QueueWriteBufferView"><code>QueueWriteBufferView</code></a> does <em>not</em> submit the
transfer to the GPU immediately. The transfer begins only on the next
call to <a href="struct.Queue.html#method.submit" title="method wgpu::Queue::submit"><code>Queue::submit</code></a> after the view is dropped. To get a set of
scheduled transfers started immediately, its fine to call <code>submit</code> with
no command buffers at all:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>queue.submit([]);</code></pre></div>
<p>This method fails if <code>size</code> is greater than the size of <code>buffer</code> starting at <code>offset</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.write_texture" class="method"><a class="src rightside" href="../src/wgpu/api/queue.rs.html#208-223">Source</a><h4 class="code-header">pub fn <a href="#method.write_texture" class="fn">write_texture</a>(
&amp;self,
texture: <a class="type" href="type.ImageCopyTexture.html" title="type wgpu::ImageCopyTexture">ImageCopyTexture</a>&lt;'_&gt;,
data: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u8.html">u8</a>],
data_layout: <a class="struct" href="struct.ImageDataLayout.html" title="struct wgpu::ImageDataLayout">ImageDataLayout</a>,
size: <a class="struct" href="struct.Extent3d.html" title="struct wgpu::Extent3d">Extent3d</a>,
)</h4></section></summary><div class="docblock"><p>Schedule a write of some data into a texture.</p>
<ul>
<li><code>data</code> contains the texels to be written, which must be in
<a href="enum.TextureFormat.html" title="enum wgpu::TextureFormat">the same format as the texture</a>.</li>
<li><code>data_layout</code> describes the memory layout of <code>data</code>, which does not necessarily
have to have tightly packed rows.</li>
<li><code>texture</code> specifies the texture to write into, and the location within the
texture (coordinate offset, mip level) that will be overwritten.</li>
<li><code>size</code> is the size, in texels, of the region to be written.</li>
</ul>
<p>This method fails if <code>size</code> overruns the size of <code>texture</code>, or if <code>data</code> is too short.</p>
<p>This does <em>not</em> submit the transfer to the GPU immediately. Calls to
<code>write_texture</code> begin execution only on the next call to
<a href="struct.Queue.html#method.submit" title="method wgpu::Queue::submit"><code>Queue::submit</code></a>. To get a set of scheduled transfers started
immediately, its fine to call <code>submit</code> with no command buffers at all:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>queue.submit([]);</code></pre></div>
<p>However, <code>data</code> will be immediately copied into staging memory, so the
caller may discard it any time after this call completes.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.submit" class="method"><a class="src rightside" href="../src/wgpu/api/queue.rs.html#243-255">Source</a><h4 class="code-header">pub fn <a href="#method.submit" class="fn">submit</a>&lt;I: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="struct" href="struct.CommandBuffer.html" title="struct wgpu::CommandBuffer">CommandBuffer</a>&gt;&gt;(
&amp;self,
command_buffers: I,
) -&gt; <a class="struct" href="struct.SubmissionIndex.html" title="struct wgpu::SubmissionIndex">SubmissionIndex</a></h4></section></summary><div class="docblock"><p>Submits a series of finished command buffers for execution.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_timestamp_period" class="method"><a class="src rightside" href="../src/wgpu/api/queue.rs.html#263-265">Source</a><h4 class="code-header">pub fn <a href="#method.get_timestamp_period" class="fn">get_timestamp_period</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f32.html">f32</a></h4></section></summary><div class="docblock"><p>Gets the amount of nanoseconds each tick of a timestamp query represents.</p>
<p>Returns zero if timestamp queries are unsupported.</p>
<p>Timestamp values are represented in nanosecond values on WebGPU, see <code>&lt;https://gpuweb.github.io/gpuweb/#timestamp&gt;</code>
Therefore, this is always 1.0 on the web, but on wgpu-core a manual conversion is required.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_submitted_work_done" class="method"><a class="src rightside" href="../src/wgpu/api/queue.rs.html#278-284">Source</a><h4 class="code-header">pub fn <a href="#method.on_submitted_work_done" class="fn">on_submitted_work_done</a>(&amp;self, callback: impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() + <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static)</h4></section></summary><div class="docblock"><p>Registers a callback when the previous call to submit finishes running on the gpu. This callback
being called implies that all mapped buffer callbacks which were registered before this call will
have been called.</p>
<p>For the callback to complete, either <code>queue.submit(..)</code>, <code>instance.poll_all(..)</code>, or <code>device.poll(..)</code>
must be called elsewhere in the runtime, possibly integrated into an event loop or run on a separate thread.</p>
<p>The callback will be called on the thread that first calls the above functions after the gpu work
has completed. There are no restrictions on the code you can run in the callback, however on native the
call to the function will not complete until the callback returns, so prefer keeping callbacks short
and used to set flags, send messages, etc.</p>
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-Queue" class="impl"><a class="src rightside" href="../src/wgpu/api/queue.rs.html#17">Source</a><a href="#impl-Debug-for-Queue" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Queue.html" title="struct wgpu::Queue">Queue</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../src/wgpu/api/queue.rs.html#17">Source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.84.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.84.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.84.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Drop-for-Queue" class="impl"><a class="src rightside" href="../src/wgpu/api/queue.rs.html#25-31">Source</a><a href="#impl-Drop-for-Queue" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/drop/trait.Drop.html" title="trait core::ops::drop::Drop">Drop</a> for <a class="struct" href="struct.Queue.html" title="struct wgpu::Queue">Queue</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.drop" class="method trait-impl"><a class="src rightside" href="../src/wgpu/api/queue.rs.html#26-30">Source</a><a href="#method.drop" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/drop/trait.Drop.html#tymethod.drop" class="fn">drop</a>(&amp;mut self)</h4></section></summary><div class='docblock'>Executes the destructor for this type. <a href="https://doc.rust-lang.org/1.84.0/core/ops/drop/trait.Drop.html#tymethod.drop">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-Queue" class="impl"><a href="#impl-Freeze-for-Queue" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.Queue.html" title="struct wgpu::Queue">Queue</a></h3></section><section id="impl-RefUnwindSafe-for-Queue" class="impl"><a href="#impl-RefUnwindSafe-for-Queue" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.84.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Queue.html" title="struct wgpu::Queue">Queue</a></h3></section><section id="impl-Send-for-Queue" class="impl"><a href="#impl-Send-for-Queue" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Queue.html" title="struct wgpu::Queue">Queue</a></h3></section><section id="impl-Sync-for-Queue" class="impl"><a href="#impl-Sync-for-Queue" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Queue.html" title="struct wgpu::Queue">Queue</a></h3></section><section id="impl-Unpin-for-Queue" class="impl"><a href="#impl-Unpin-for-Queue" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Queue.html" title="struct wgpu::Queue">Queue</a></h3></section><section id="impl-UnwindSafe-for-Queue" class="impl"><a href="#impl-UnwindSafe-for-Queue" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.84.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Queue.html" title="struct wgpu::Queue">Queue</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/any.rs.html#138">Source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.84.0/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.84.0/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/borrow.rs.html#209">Source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/borrow.rs.html#211">Source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/borrow.rs.html#217">Source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/borrow.rs.html#218">Source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Downcast%3CT%3E-for-T" class="impl"><a class="src rightside" href="../src/khronos_egl/lib.rs.html#148">Source</a><a href="#impl-Downcast%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="../khronos_egl/trait.Downcast.html" title="trait khronos_egl::Downcast">Downcast</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><section id="method.downcast" class="method trait-impl"><a class="src rightside" href="../src/khronos_egl/lib.rs.html#149">Source</a><a href="#method.downcast" class="anchor">§</a><h4 class="code-header">fn <a href="../khronos_egl/trait.Downcast.html#tymethod.downcast" class="fn">downcast</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&amp;T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#765">Source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#768">Source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#748-750">Source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#758">Source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#805-807">Source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#809">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#812">Source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#790-792">Source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#794">Source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#797">Source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Upcast%3CT%3E-for-T" class="impl"><a class="src rightside" href="../src/khronos_egl/lib.rs.html#158">Source</a><a href="#impl-Upcast%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="../khronos_egl/trait.Upcast.html" title="trait khronos_egl::Upcast">Upcast</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><section id="method.upcast" class="method trait-impl"><a class="src rightside" href="../src/khronos_egl/lib.rs.html#159">Source</a><a href="#method.upcast" class="anchor">§</a><h4 class="code-header">fn <a href="../khronos_egl/trait.Upcast.html#tymethod.upcast" class="fn">upcast</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&amp;T</a>&gt;</h4></section></div></details><section id="impl-WasmNotSend-for-T" class="impl"><a class="src rightside" href="../src/wgpu_types/lib.rs.html#7477">Source</a><a href="#impl-WasmNotSend-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.WasmNotSend.html" title="trait wgpu::WasmNotSend">WasmNotSend</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-WasmNotSendSync-for-T" class="impl"><a class="src rightside" href="../src/wgpu_types/lib.rs.html#7461">Source</a><a href="#impl-WasmNotSendSync-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.WasmNotSendSync.html" title="trait wgpu::WasmNotSendSync">WasmNotSendSync</a> for T<div class="where">where
T: <a class="trait" href="trait.WasmNotSend.html" title="trait wgpu::WasmNotSend">WasmNotSend</a> + <a class="trait" href="trait.WasmNotSync.html" title="trait wgpu::WasmNotSync">WasmNotSync</a>,</div></h3></section><section id="impl-WasmNotSync-for-T" class="impl"><a class="src rightside" href="../src/wgpu_types/lib.rs.html#7510">Source</a><a href="#impl-WasmNotSync-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.WasmNotSync.html" title="trait wgpu::WasmNotSync">WasmNotSync</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section></div></section></div></main></body></html>