You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Trac3r-rust/doc/vulkano/buffer/immutable/struct.ImmutableBuffer.html

82 lines
64 KiB

5 years ago
<!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 `ImmutableBuffer` struct in crate `vulkano`."><meta name="keywords" content="rust, rustlang, rust-lang, ImmutableBuffer"><title>vulkano::buffer::immutable::ImmutableBuffer - Rust</title><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script src="../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../vulkano/index.html'><div class='logo-container'><img src='https://raw.githubusercontent.com/vulkano-rs/vulkano/master/logo.png' alt='logo'></div></a><p class='location'>Struct ImmutableBuffer</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.device">device</a><a href="#method.from_buffer">from_buffer</a><a href="#method.from_data">from_data</a><a href="#method.from_iter">from_iter</a><a href="#method.queue_families">queue_families</a><a href="#method.raw">raw</a><a href="#method.uninitialized">uninitialized</a><a href="#method.uninitialized_array">uninitialized_array</a></div><a class="sidebar-title" href="#implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-BufferAccess">BufferAccess</a><a href="#impl-DeviceOwned">DeviceOwned</a><a href="#impl-TypedBufferAccess">TypedBufferAccess</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><a class="sidebar-title" href="#blanket-implementations">Blanket Implementations</a><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Content">Content</a><a href="#impl-DeviceOwned">DeviceOwned</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a></div></div><p class='location'><a href='../../index.html'>vulkano</a>::<wbr><a href='../index.html'>buffer</a>::<wbr><a href='index.html'>immutable</a></p><script>window.sidebarCurrent = {name: 'ImmutableBuffer', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../../settings.html"><img src="../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='rende
</div><h2 id='methods' class='small-section-header'>Methods<a href='#methods' class='anchor'></a></h2><h3 id='impl' class='impl'><code class='in-band'>impl&lt;T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>&gt; <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T&gt;</code><a href='#impl' class='anchor'></a><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#81-142' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_data' class="method"><code id='from_data.v'>pub fn <a href='#method.from_data' class='fnname'>from_data</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;data: T, <br>&nbsp;&nbsp;&nbsp;&nbsp;usage: <a class="struct" href="../../../vulkano/buffer/struct.BufferUsage.html" title="struct vulkano::buffer::BufferUsage">BufferUsage</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;queue: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a>&gt;<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T&gt;&gt;, <a class="struct" href="../../../vulkano/command_buffer/struct.CommandBufferExecFuture.html" title="struct vulkano::command_buffer::CommandBufferExecFuture">CommandBufferExecFuture</a>&lt;<a class="struct" href="../../../vulkano/sync/struct.NowFuture.html" title="struct vulkano::sync::NowFuture">NowFuture</a>, <a class="struct" href="../../../vulkano/command_buffer/struct.AutoCommandBuffer.html" title="struct vulkano::command_buffer::AutoCommandBuffer">AutoCommandBuffer</a>&gt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="../../../vulkano/memory/enum.DeviceMemoryAllocError.html" title="enum vulkano::memory::DeviceMemoryAllocError">DeviceMemoryAllocError</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#92-102' title='goto source code'>[src]</a></h4><div class='docblock'><p>Builds an <code>ImmutableBuffer</code> from some data.</p>
<p>This function builds a memory-mapped intermediate buffer, writes the data to it, builds a
command buffer that copies from this intermediate buffer to the final buffer, and finally
submits the command buffer as a future.</p>
<p>This function returns two objects: the newly-created buffer, and a future representing
the initial upload operation. In order to be allowed to use the <code>ImmutableBuffer</code>, you must
either submit your operation after this future, or execute this future and wait for it to
be finished before submitting your own operation.</p>
</div><h4 id='method.from_buffer' class="method"><code id='from_buffer.v'>pub fn <a href='#method.from_buffer' class='fnname'>from_buffer</a>&lt;B&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;source: B, <br>&nbsp;&nbsp;&nbsp;&nbsp;usage: <a class="struct" href="../../../vulkano/buffer/struct.BufferUsage.html" title="struct vulkano::buffer::BufferUsage">BufferUsage</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;queue: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a>&gt;<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T&gt;&gt;, <a class="struct" href="../../../vulkano/command_buffer/struct.CommandBufferExecFuture.html" title="struct vulkano::command_buffer::CommandBufferExecFuture">CommandBufferExecFuture</a>&lt;<a class="struct" href="../../../vulkano/sync/struct.NowFuture.html" title="struct vulkano::sync::NowFuture">NowFuture</a>, <a class="struct" href="../../../vulkano/command_buffer/struct.AutoCommandBuffer.html" title="struct vulkano::command_buffer::AutoCommandBuffer">AutoCommandBuffer</a>&gt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="../../../vulkano/memory/enum.DeviceMemoryAllocError.html" title="enum vulkano::memory::DeviceMemoryAllocError">DeviceMemoryAllocError</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;B: <a class="trait" href="../../../vulkano/buffer/trait.BufferAccess.html" title="trait vulkano::buffer::BufferAccess">BufferAccess</a> + <a class="trait" href="../../../vulkano/buffer/trait.TypedBufferAccess.html" title="trait vulkano::buffer::TypedBufferAccess">TypedBufferAccess</a>&lt;Content = T&gt; + 'static + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,&nbsp;</span></code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#110-141' title='goto source code'>[src]</a></h4><div class='docblock'><p>Builds an <code>ImmutableBuffer</code> that copies its data from another buffer.</p>
<p>This function returns two objects: the newly-created buffer, and a future representing
the initial upload operation. In order to be allowed to use the <code>ImmutableBuffer</code>, you must
either submit your operation after this future, or execute this future and wait for it to
be finished before submitting your own operation.</p>
</div></div><h3 id='impl-1' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T&gt;</code><a href='#impl-1' class='anchor'></a><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#144-171' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.uninitialized' class="method"><code id='uninitialized.v'>pub unsafe fn <a href='#method.uninitialized' class='fnname'>uninitialized</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;device: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../../vulkano/device/struct.Device.html" title="struct vulkano::device::Device">Device</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;usage: <a class="struct" href="../../../vulkano/buffer/struct.BufferUsage.html" title="struct vulkano::buffer::BufferUsage">BufferUsage</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T&gt;&gt;, <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBufferInitialization.html" title="struct vulkano::buffer::immutable::ImmutableBufferInitialization">ImmutableBufferInitialization</a>&lt;T&gt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="../../../vulkano/memory/enum.DeviceMemoryAllocError.html" title="enum vulkano::memory::DeviceMemoryAllocError">DeviceMemoryAllocError</a>&gt;</code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#162-170' title='goto source code'>[src]</a></h4><div class='docblock'><p>Builds a new buffer with uninitialized data. Only allowed for sized data.</p>
<p>Returns two things: the buffer, and a special access that should be used for the initial
upload to the buffer.</p>
<p>You will get an error if you try to use the buffer before using the initial upload access.
However this function doesn't check whether you actually used this initial upload to fill
the buffer like you're supposed to do.</p>
<p>You will also get an error if you try to get exclusive access to the final buffer.</p>
<h1 id="safety" class="section-header"><a href="#safety">Safety</a></h1>
<ul>
<li>The <code>ImmutableBufferInitialization</code> should be used to fill the buffer with some initial
data, otherwise the content is undefined.</li>
</ul>
</div></div><h3 id='impl-2' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;</code><a href='#impl-2' class='anchor'></a><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#173-213' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter' class="method"><code id='from_iter.v'>pub fn <a href='#method.from_iter' class='fnname'>from_iter</a>&lt;D&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;data: D, <br>&nbsp;&nbsp;&nbsp;&nbsp;usage: <a class="struct" href="../../../vulkano/buffer/struct.BufferUsage.html" title="struct vulkano::buffer::BufferUsage">BufferUsage</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;queue: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a>&gt;<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;&gt;, <a class="struct" href="../../../vulkano/command_buffer/struct.CommandBufferExecFuture.html" title="struct vulkano::command_buffer::CommandBufferExecFuture">CommandBufferExecFuture</a>&lt;<a class="struct" href="../../../vulkano/sync/struct.NowFuture.html" title="struct vulkano::sync::NowFuture">NowFuture</a>, <a class="struct" href="../../../vulkano/command_buffer/struct.AutoCommandBuffer.html" title="struct vulkano::command_buffer::AutoCommandBuffer">AutoCommandBuffer</a>&gt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="../../../vulkano/memory/enum.DeviceMemoryAllocError.html" title="enum vulkano::memory::DeviceMemoryAllocError">DeviceMemoryAllocError</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;D: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a>&lt;Item = T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#174-185' title='goto source code'>[src]</a></h4><h4 id='method.uninitialized_array' class="method"><code id='uninitialized_array.v'>pub unsafe fn <a href='#method.uninitialized_array' class='fnname'>uninitialized_array</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;device: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../../vulkano/device/struct.Device.html" title="struct vulkano::device::Device">Device</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: <a class="primitive" href
<p>Returns two things: the buffer, and a special access that should be used for the initial
upload to the buffer.</p>
<p>You will get an error if you try to use the buffer before using the initial upload access.
However this function doesn't check whether you actually used this initial upload to fill
the buffer like you're supposed to do.</p>
<p>You will also get an error if you try to get exclusive access to the final buffer.</p>
<h1 id="safety-1" class="section-header"><a href="#safety-1">Safety</a></h1>
<ul>
<li>The <code>ImmutableBufferInitialization</code> should be used to fill the buffer with some initial
data, otherwise the content is undefined.</li>
</ul>
</div></div><h3 id='impl-3' class='impl'><code class='in-band'>impl&lt;T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>&gt; <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T&gt;</code><a href='#impl-3' class='anchor'></a><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#215-291' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.raw' class="method"><code id='raw.v'>pub unsafe fn <a href='#method.raw' class='fnname'>raw</a>&lt;'a, I&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;device: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../../vulkano/device/struct.Device.html" title="struct vulkano::device::Device">Device</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;usage: <a class="struct" href="../../../vulkano/buffer/struct.BufferUsage.html" title="struct vulkano::buffer::BufferUsage">BufferUsage</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;queue_families: I<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T&gt;&gt;, <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBufferInitialization.html" title="struct vulkano::buffer::immutable::ImmutableBufferInitialization">ImmutableBufferInitialization</a>&lt;T&gt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="../../../vulkano/memory/enum.DeviceMemoryAllocError.html" title="enum vulkano::memory::DeviceMemoryAllocError">DeviceMemoryAllocError</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="struct" href="../../../vulkano/instance/struct.QueueFamily.html" title="struct vulkano::instance::QueueFamily">QueueFamily</a>&lt;'a&gt;&gt;,&nbsp;</span></code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#232-240' title='goto source code'>[src]</a></h4><div class='docblock'><p>Builds a new buffer without checking the size and granting free access for the initial
upload.</p>
<p>Returns two things: the buffer, and a special access that should be used for the initial
upload to the buffer.
You will get an error if you try to use the buffer before using the initial upload access.
However this function doesn't check whether you used this initial upload to fill the buffer.
You will also get an error if you try to get exclusive access to the final buffer.</p>
<h1 id="safety-2" class="section-header"><a href="#safety-2">Safety</a></h1>
<ul>
<li>You must ensure that the size that you pass is correct for <code>T</code>.</li>
<li>The <code>ImmutableBufferInitialization</code> should be used to fill the buffer with some initial
data.</li>
</ul>
</div></div><h3 id='impl-4' class='impl'><code class='in-band'>impl&lt;T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A&gt; <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T, A&gt;</code><a href='#impl-4' class='anchor'></a><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#293-314' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.device' class="method"><code id='device.v'>pub fn <a href='#method.device' class='fnname'>device</a>(&amp;self) -&gt; &amp;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../../vulkano/device/struct.Device.html" title="struct vulkano::device::Device">Device</a>&gt;</code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#296-298' title='goto source code'>[src]</a></h4><div class='docblock'><p>Returns the device used to create this buffer.</p>
</div><h4 id='method.queue_families' class="method"><code id='queue_families.v'>pub fn <a href='#method.queue_families' class='fnname'>queue_families</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../../../vulkano/instance/struct.QueueFamily.html" title="struct vulkano::instance::QueueFamily">QueueFamily</a>&gt;</code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#303-313' title='goto source code'>[src]</a></h4><div class='docblock'><p>Returns the queue families this buffer can be used on.</p>
</div></div><h2 id='implementations' class='small-section-header'>Trait Implementations<a href='#implementations' class='anchor'></a></h2><div id='implementations-list'><h3 id='impl-BufferAccess' class='impl'><code class='in-band'>impl&lt;T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A&gt; <a class="trait" href="../../../vulkano/buffer/trait.BufferAccess.html" title="trait vulkano::buffer::BufferAccess">BufferAccess</a> for <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T, A&gt;</code><a href='#impl-BufferAccess' class='anchor'></a><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#316-365' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.inner' class="method hidden"><code id='inner.v'>fn <a href='../../../vulkano/buffer/trait.BufferAccess.html#tymethod.inner' class='fnname'>inner</a>(&amp;self) -&gt; <a class="struct" href="../../../vulkano/buffer/struct.BufferInner.html" title="struct vulkano::buffer::BufferInner">BufferInner</a></code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#318-323' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Returns the inner information about this buffer.</p>
</div><h4 id='method.size' class="method hidden"><code id='size.v'>fn <a href='../../../vulkano/buffer/trait.BufferAccess.html#tymethod.size' class='fnname'>size</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#326-328' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Returns the size of the buffer in bytes.</p>
</div><h4 id='method.conflicts_buffer' class="method hidden"><code id='conflicts_buffer.v'>fn <a href='../../../vulkano/buffer/trait.BufferAccess.html#tymethod.conflicts_buffer' class='fnname'>conflicts_buffer</a>(&amp;self, other: &amp;dyn <a class="trait" href="../../../vulkano/buffer/trait.BufferAccess.html" title="trait vulkano::buffer::BufferAccess">BufferAccess</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#331-333' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Returns true if an access to <code>self</code> potentially overlaps the same memory as an access to <code>other</code>. <a href="../../../vulkano/buffer/trait.BufferAccess.html#tymethod.conflicts_buffer">Read more</a></p>
</div><h4 id='method.conflicts_image' class="method hidden"><code id='conflicts_image.v'>fn <a href='../../../vulkano/buffer/trait.BufferAccess.html#tymethod.conflicts_image' class='fnname'>conflicts_image</a>(&amp;self, other: &amp;dyn <a class="trait" href="../../../vulkano/image/traits/trait.ImageAccess.html" title="trait vulkano::image::traits::ImageAccess">ImageAccess</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#336-338' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Returns true if an access to <code>self</code> potentially overlaps the same memory as an access to <code>other</code>. <a href="../../../vulkano/buffer/trait.BufferAccess.html#tymethod.conflicts_image">Read more</a></p>
</div><h4 id='method.conflict_key' class="method hidden"><code id='conflict_key.v'>fn <a href='../../../vulkano/buffer/trait.BufferAccess.html#tymethod.conflict_key' class='fnname'>conflict_key</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a></code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#341-343' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Returns a key that uniquely identifies the buffer. Two buffers or images that potentially overlap in memory must return the same key. <a href="../../../vulkano/buffer/trait.BufferAccess.html#tymethod.conflict_key">Read more</a></p>
</div><h4 id='method.try_gpu_lock' class="method hidden"><code id='try_gpu_lock.v'>fn <a href='../../../vulkano/buffer/trait.BufferAccess.html#tymethod.try_gpu_lock' class='fnname'>try_gpu_lock</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;exclusive_access: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;_: &amp;<a class="struct" href="../../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../../../vulkano/sync/enum.AccessError.html" title="enum vulkano::sync::AccessError">AccessError</a>&gt;</code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#346-356' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Locks the resource for usage on the GPU. Returns an error if the lock can't be acquired. <a href="../../../vulkano/buffer/trait.BufferAccess.html#tymethod.try_gpu_lock">Read more</a></p>
</div><h4 id='method.increase_gpu_lock' class="method hidden"><code id='increase_gpu_lock.v'>unsafe fn <a href='../../../vulkano/buffer/trait.BufferAccess.html#tymethod.increase_gpu_lock' class='fnname'>increase_gpu_lock</a>(&amp;self)</code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#359-360' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Locks the resource for usage on the GPU. Supposes that the resource is already locked, and simply increases the lock by one. <a href="../../../vulkano/buffer/trait.BufferAccess.html#tymethod.increase_gpu_lock">Read more</a></p>
</div><h4 id='method.unlock' class="method hidden"><code id='unlock.v'>unsafe fn <a href='../../../vulkano/buffer/trait.BufferAccess.html#tymethod.unlock' class='fnname'>unlock</a>(&amp;self)</code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#363-364' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Unlocks the resource previously acquired with <code>try_gpu_lock</code> or <code>increase_gpu_lock</code>. <a href="../../../vulkano/buffer/trait.BufferAccess.html#tymethod.unlock">Read more</a></p>
</div><h4 id='method.as_buffer_slice' class="method hidden"><code id='as_buffer_slice.v'>fn <a href='../../../vulkano/buffer/trait.BufferAccess.html#method.as_buffer_slice' class='fnname'>as_buffer_slice</a>(&amp;self) -&gt; <a class="struct" href="../../../vulkano/buffer/struct.BufferSlice.html" title="struct vulkano::buffer::BufferSlice">BufferSlice</a>&lt;Self::<a class="type" href="../../../vulkano/buffer/trait.TypedBufferAccess.html#associatedtype.Content" title="type vulkano::buffer::TypedBufferAccess::Content">Content</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../../../vulkano/buffer/trait.TypedBufferAccess.html" title="trait vulkano::buffer::TypedBufferAccess">TypedBufferAccess</a>,&nbsp;</span></code><a class='srclink' href='../../../src/vulkano/buffer/traits.rs.html#35-39' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Builds a <code>BufferSlice</code> object holding the buffer by reference.</p>
</div><h4 id='method.slice' class="method hidden"><code id='slice.v'>fn <a href='../../../vulkano/buffer/trait.BufferAccess.html#method.slice' class='fnname'>slice</a>&lt;T&gt;(&amp;self, range: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../../../vulkano/buffer/struct.BufferSlice.html" title="struct vulkano::buffer::BufferSlice">BufferSlice</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self&gt;&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../../../vulkano/buffer/trait.TypedBufferAccess.html" title="trait vulkano::buffer::TypedBufferAccess">TypedBufferAccess</a>&lt;Content = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;,&nbsp;</span></code><a class='srclink' href='../../../src/vulkano/buffer/traits.rs.html#50-54' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Builds a <code>BufferSlice</code> object holding part of the buffer by reference. <a href="../../../vulkano/buffer/trait.BufferAccess.html#method.slice">Read more</a></p>
</div><h4 id='method.into_buffer_slice' class="method hidden"><code id='into_buffer_slice.v'>fn <a href='../../../vulkano/buffer/trait.BufferAccess.html#method.into_buffer_slice' class='fnname'>into_buffer_slice</a>(self) -&gt; <a class="struct" href="../../../vulkano/buffer/struct.BufferSlice.html" title="struct vulkano::buffer::BufferSlice">BufferSlice</a>&lt;Self::<a class="type" href="../../../vulkano/buffer/trait.TypedBufferAccess.html#associatedtype.Content" title="type vulkano::buffer::TypedBufferAccess::Content">Content</a>, Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../../../vulkano/buffer/trait.TypedBufferAccess.html" title="trait vulkano::buffer::TypedBufferAccess">TypedBufferAccess</a>,&nbsp;</span></code><a class='srclink' href='../../../src/vulkano/buffer/traits.rs.html#58-62' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Builds a <code>BufferSlice</code> object holding the buffer by value.</p>
</div><h4 id='method.index' class="method hidden"><code id='index.v'>fn <a href='../../../vulkano/buffer/trait.BufferAccess.html#method.index' class='fnname'>index</a>&lt;T&gt;(&amp;self, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../../../vulkano/buffer/struct.BufferSlice.html" title="struct vulkano::buffer::BufferSlice">BufferSlice</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self&gt;&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../../../vulkano/buffer/trait.TypedBufferAccess.html" title="trait vulkano::buffer::TypedBufferAccess">TypedBufferAccess</a>&lt;Content = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;,&nbsp;</span></code><a class='srclink' href='../../../src/vulkano/buffer/traits.rs.html#73-77' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Builds a <code>BufferSlice</code> object holding part of the buffer by reference. <a href="../../../vulkano/buffer/trait.BufferAccess.html#method.index">Read more</a></p>
</div></div><h3 id='impl-TypedBufferAccess' class='impl'><code class='in-band'>impl&lt;T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A&gt; <a class="trait" href="../../../vulkano/buffer/trait.TypedBufferAccess.html" title="trait vulkano::buffer::TypedBufferAccess">TypedBufferAccess</a> for <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T, A&gt;</code><a href='#impl-TypedBufferAccess' class='anchor'></a><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#367-369' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Content' class="type"><code id='Content.t'>type <a href='../../../vulkano/buffer/trait.TypedBufferAccess.html#associatedtype.Content' class="type">Content</a> = T</code></h4><div class='docblock'><p>The type of the content.</p>
</div><h4 id='method.len' class="method hidden"><code id='len.v'>fn <a href='../../../vulkano/buffer/trait.TypedBufferAccess.html#method.len' class='fnname'>len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a> <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::<a class="type" href="../../../vulkano/buffer/trait.TypedBufferAccess.html#associatedtype.Content" title="type vulkano::buffer::TypedBufferAccess::Content">Content</a>: <a class="trait" href="../../../vulkano/memory/trait.Content.html" title="trait vulkano::memory::Content">Content</a>,&nbsp;</span></code><a class='srclink' href='../../../src/vulkano/buffer/traits.rs.html#205-207' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Returns the length of the buffer in number of elements. <a href="../../../vulkano/buffer/trait.TypedBufferAccess.html#method.len">Read more</a></p>
</div></div><h3 id='impl-DeviceOwned' class='impl'><code class='in-band'>impl&lt;T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A&gt; <a class="trait" href="../../../vulkano/device/trait.DeviceOwned.html" title="trait vulkano::device::DeviceOwned">DeviceOwned</a> for <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T, A&gt;</code><a href='#impl-DeviceOwned' class='anchor'></a><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#371-376' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.device-1' class="method hidden"><code id='device.v-1'>fn <a href='../../../vulkano/device/trait.DeviceOwned.html#tymethod.device' class='fnname'>device</a>(&amp;self) -&gt; &amp;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../../vulkano/device/struct.Device.html" title="struct vulkano::device::Device">Device</a>&gt;</code><a class='srclink' href='../../../src/vulkano/buffer/immutable.rs.html#373-375' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Returns the device that owns <code>Self</code>.</p>
</div></div></div><h2 id='synthetic-implementations' class='small-section-header'>Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a></h2><div id='synthetic-implementations-list'><h3 id='impl-Send' class='impl'><code class='in-band'>impl&lt;T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T, A&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,&nbsp;</span></code><a href='#impl-Send' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Unpin' class='impl'><code class='in-band'>impl&lt;T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T, A&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,&nbsp;</span></code><a href='#impl-Unpin' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Sync' class='impl'><code class='in-band'>impl&lt;T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T, A&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,&nbsp;</span></code><a href='#impl-Sync' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-UnwindSafe' class='impl'><code class='in-band'>impl&lt;T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="../../../vulkano/buffer/immutable/struct.ImmutableBuffer.html" title="struct vulkano::buffer::immutable::ImmutableBuffer">ImmutableBuffer</a>&lt;T, A&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a>,&nbsp;</span></code><a href='#impl-UnwindSafe' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-RefUnwindSafe' class='impl'><code class='in-band'>impl&lt;T:&nbsp;?<a class="trait" href="htt
</div></div><h3 id='impl-Content' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="../../../vulkano/memory/trait.Content.html" title="trait vulkano::memory::Content">Content</a> for T</code><a href='#impl-Content' class='anchor'></a><a class='srclink' href='../../../src/vulkano/memory/mod.rs.html#171-190' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.ref_from_ptr' class="method hidden"><code id='ref_from_ptr.v'>fn <a href='../../../vulkano/memory/trait.Content.html#tymethod.ref_from_ptr' class='fnname'>ref_from_ptr</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut </a><a class="enum" href="https://doc.rust-lang.org/nightly/core/ffi/enum.c_void.html" title="enum core::ffi::c_void">c_void</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut T</a>&gt;</code><a class='srclink' href='../../../src/vulkano/memory/mod.rs.html#173-179' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Builds a pointer to this type from a raw pointer.</p>
</div><h4 id='method.is_size_suitable' class="method hidden"><code id='is_size_suitable.v'>fn <a href='../../../vulkano/memory/trait.Content.html#tymethod.is_size_suitable' class='fnname'>is_size_suitable</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class='srclink' href='../../../src/vulkano/memory/mod.rs.html#182-184' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Returns true if the size is suitable to store a type like this.</p>
</div><h4 id='method.indiv_size' class="method hidden"><code id='indiv_size.v'>fn <a href='../../../vulkano/memory/trait.Content.html#tymethod.indiv_size' class='fnname'>indiv_size</a>() -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code><a class='srclink' href='../../../src/vulkano/memory/mod.rs.html#187-189' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Returns the size of an individual element.</p>
</div></div><h3 id='impl-Into%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-Into%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#544-549' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.into' class="method hidden"><code id='into.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into' class='fnname'>into</a>(self) -&gt; U</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#546-548' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-From%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</code><a href='#impl-From%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#553-555' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from' class="method hidden"><code id='from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from' class='fnname'>from</a>(t: T) -&gt; T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#554' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-TryFrom%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-TryFrom%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#572-578' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error' class="type"><code id='Error.t'>type <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error' class="type">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id='method.try_from' class="method hidden"><code id='try_from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from' class='fnname'>try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/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/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#575-577' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-TryInto%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-TryInto%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#560-567' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error-1' class="type"><code id='Error.t-1'>type <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error' class="type">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id='method.try_into' class="method hidden"><code id='try_into.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into' class='fnname'>try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/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/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#564-566' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-BorrowMut%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-BorrowMut%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218-220' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow_mut' class="method hidden"><code id='borrow_mut.v'>fn <a href='https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut' class='fnname'>borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#219' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></div><h3 id='impl-Borrow%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-Borrow%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213-215' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow' class="method hidden"><code id='borrow.v'>fn <a href='https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow' class='fnname'>borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#214' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></div><h3 id='impl-Any' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-Any' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#100-102' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.type_id' class="method hidden"><code id='type_id.v'>fn <a href='https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id' class='fnname'>type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#101' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></div></div></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../";window.currentCrate = "vulkano";</script><script src="../../../aliases.js"></script><script src="../../../main.js"></script><script defer src="../../../search-index.js"></script></body></html>