struct.BufferMapCmd.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `BufferMapCmd` struct in crate `ocl`."><meta name="keywords" content="rust, rustlang, rust-lang, BufferMapCmd"><title>ocl::builders::BufferMapCmd - 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></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><p class='location'>Struct BufferMapCmd</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.flags">flags</a><a href="#method.read">read</a><a href="#method.write">write</a><a href="#method.write_invalidate">write_invalidate</a><a href="#method.len">len</a><a href="#method.queue">queue</a><a href="#method.offset">offset</a><a href="#method.ewait">ewait</a><a href="#method.enew">enew</a><a href="#method.enq">enq</a><a href="#method.enq_async">enq_async</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">!Send</a><a href="#impl-Sync">!Sync</a></div></div><p class='location'><a href='../index.html'>ocl</a>::<wbr><a href='index.html'>builders</a></p><script>window.sidebarCurrent = {name: 'BufferMapCmd', 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"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><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='in-band'>Struct <a href='../index.html'>ocl</a>::<wbr><a href='index.html'>builders</a>::<wbr><a class="struct" href=''>BufferMapCmd</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/ocl/standard/buffer.rs.html#1393-1397' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'><div class="docblock attributes">#[must_use = "commands do nothing unless enqueued"]
  2. </div>pub struct BufferMapCmd&lt;'c, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'c + <a class="trait" href="../../ocl/traits/trait.OclPrm.html" title="trait ocl::traits::OclPrm">OclPrm</a>,&nbsp;</span> { /* fields omitted */ }</pre></div><div class='docblock'><p>A command builder used to enqueue a map command.</p>
  3. <p>Enqueuing a map command will map a region of a buffer into the host
  4. address space and return a <a href="struct.MemMap.html"><code>MemMap</code></a> or <a href="async/struct.FutureMemMap.html"><code>FutureMemMap</code></a>, allowing access
  5. to this mapped region. Accessing memory via a <a href="struct.MemMap.html"><code>MemMap</code></a> is exactly like
  6. using a <a href="https://doc.rust-lang.org/std/primitive.slice.html">slice</a>.</p>
  7. <p>See <a href="https://www.khronos.org/registry/OpenCL/sdk/1.2/docs/man/xhtml/clEnqueueMapBuffer.html">SDK</a> docs for more details.</p>
  8. </div>
  9. <h2 id='methods' class='small-section-header'>
  10. Methods<a href='#methods' class='anchor'></a>
  11. </h2>
  12. <h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl&lt;'c, T&gt; <a class="struct" href="../../ocl/builders/struct.BufferMapCmd.html" title="struct ocl::builders::BufferMapCmd">BufferMapCmd</a>&lt;'c, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../ocl/traits/trait.OclPrm.html" title="trait ocl::traits::OclPrm">OclPrm</a>,&nbsp;</span></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/buffer.rs.html#1399-1649' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.flags' class="method"><span id='flags.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.flags' class='fnname'>flags</a>(self, flags: <a class="struct" href="../../ocl/flags/struct.MapFlags.html" title="struct ocl::flags::MapFlags">MapFlags</a>) -&gt; <a class="struct" href="../../ocl/builders/struct.BufferMapCmd.html" title="struct ocl::builders::BufferMapCmd">BufferMapCmd</a>&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/buffer.rs.html#1413-1416' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies the flags to be used for this map command.</p>
  13. <p>Flags can also be specified using the <code>::read</code>, <code>::write</code>, and
  14. <code>::write_invalidate</code> methods instead.</p>
  15. <p>See <a href="https://www.khronos.org/registry/OpenCL/sdk/1.2/docs/man/xhtml/clEnqueueMapBuffer.html">SDK</a> docs for more details.</p>
  16. </div><h4 id='method.read' class="method"><span id='read.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.read' class='fnname'>read</a>(self) -&gt; <a class="struct" href="../../ocl/builders/struct.BufferMapCmd.html" title="struct ocl::builders::BufferMapCmd">BufferMapCmd</a>&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/buffer.rs.html#1425-1428' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies that the memory object is being mapped for reading.</p>
  17. <p>Sets the flag to be used for this map command to <code>[CL_]MAP_READ</code>.</p>
  18. <p>This is the fastest way to move data from device to host for many use
  19. cases when used with buffers created with the <code>MEM_ALLOC_HOST_PTR</code> or
  20. <code>MEM_USE_HOST_PTR</code> flags.</p>
  21. </div><h4 id='method.write' class="method"><span id='write.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.write' class='fnname'>write</a>(self) -&gt; <a class="struct" href="../../ocl/builders/struct.BufferMapCmd.html" title="struct ocl::builders::BufferMapCmd">BufferMapCmd</a>&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/buffer.rs.html#1441-1444' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies that the memory object is being mapped for writing.</p>
  22. <p>Sets the flag to be used for this map command to <code>[CL_]MAP_WRITE</code>.</p>
  23. <p>This is not the most efficient method of transferring data from host
  24. to device due to the memory being synchronized beforehand. Prefer
  25. <code>::write_invalidate</code> unless you need the memory region to be updated
  26. (e.g. if you are only writing to particular portions of the data, and
  27. will not be overwriting the entire contents, etc.). Use this with
  28. buffers created with the <code>MEM_ALLOC_HOST_PTR</code> or <code>MEM_USE_HOST_PTR</code>
  29. flags for best performance.</p>
  30. </div><h4 id='method.write_invalidate' class="method"><span id='write_invalidate.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.write_invalidate' class='fnname'>write_invalidate</a>(self) -&gt; <a class="struct" href="../../ocl/builders/struct.BufferMapCmd.html" title="struct ocl::builders::BufferMapCmd">BufferMapCmd</a>&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/buffer.rs.html#1459-1462' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies that the memory object is being mapped for writing and that
  31. the local (host) memory region may contain stale data that must be
  32. completely overwritten before unmapping.</p>
  33. <p>Sets the flag to be used for this map command to
  34. <code>[CL_]MAP_WRITE_INVALIDATE_REGION</code>.</p>
  35. <p>This option may provide a substantial performance improvement when
  36. writing and is the fastest method for moving data in bulk from host to
  37. device memory when used with buffers created with the
  38. <code>MEM_ALLOC_HOST_PTR</code> or <code>MEM_USE_HOST_PTR</code> flags. Only use this when
  39. you will be overwriting the entire contents of the mapped region
  40. otherwise you will send stale or junk data to the device.</p>
  41. </div><h4 id='method.len' class="method"><span id='len.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.len' class='fnname'>len</a>(self, len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="../../ocl/builders/struct.BufferMapCmd.html" title="struct ocl::builders::BufferMapCmd">BufferMapCmd</a>&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/buffer.rs.html#1470-1473' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies the length of the region to map.</p>
  42. <p>If unspecified the entire buffer will be mapped.</p>
  43. </div><h4 id='method.queue' class="method"><span id='queue.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.queue' class='fnname'>queue</a>(self, queue: &amp;'c <a class="struct" href="../../ocl/struct.Queue.html" title="struct ocl::Queue">Queue</a>) -&gt; <a class="struct" href="../../ocl/builders/struct.BufferMapCmd.html" title="struct ocl::builders::BufferMapCmd">BufferMapCmd</a>&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/buffer.rs.html#1480-1483' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies a queue to use for this call only.</p>
  44. <p>Overrides the buffer's default queue if one is set. If no default
  45. queue is set, this method <strong>must</strong> be called before enqueuing the
  46. command.</p>
  47. </div><h4 id='method.offset' class="method"><span id='offset.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.offset' class='fnname'>offset</a>(self, offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="../../ocl/builders/struct.BufferMapCmd.html" title="struct ocl::builders::BufferMapCmd">BufferMapCmd</a>&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/buffer.rs.html#1491-1493' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Sets the linear offset for an operation.</p>
  48. <h2 id="panics" class="section-header"><a href="#panics">Panics</a></h2>
  49. <p>The 'shape' may not have already been set to rectangular by the
  50. <code>::rect</code> function.</p>
  51. </div><h4 id='method.ewait' class="method"><span id='ewait.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.ewait' class='fnname'>ewait</a>&lt;'e, Ewl&gt;(self, ewait: Ewl) -&gt; <a class="struct" href="../../ocl/builders/struct.BufferMapCmd.html" title="struct ocl::builders::BufferMapCmd">BufferMapCmd</a>&lt;'c, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;'e: 'c,<br>&nbsp;&nbsp;&nbsp;&nbsp;Ewl: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../../ocl/builders/enum.ClWaitListPtrEnum.html" title="enum ocl::builders::ClWaitListPtrEnum">ClWaitListPtrEnum</a>&lt;'e&gt;&gt;,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/buffer.rs.html#1523-1527' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies an event or list of events to wait on before the command
  52. will run.</p>
  53. <p>When events generated using the <code>::enew</code> method of <strong>other</strong>,
  54. previously enqueued commands are passed here (either individually or
  55. as part of an <a href="struct.EventList.html"><code>EventList</code></a>), this command will not execute until
  56. those commands have completed.</p>
  57. <p>Using events can compliment the use of queues to order commands by
  58. creating temporal dependencies between them (where commands in one
  59. queue must wait for the completion of commands in another). Events can
  60. also supplant queues altogether when, for example, using out-of-order
  61. queues.</p>
  62. <h1 id="example" class="section-header"><a href="#example">Example</a></h1>
  63. <div class='information'><div class='tooltip ignore'>ⓘ<span class='tooltiptext'>This example is not tested</span></div></div><pre class="rust rust-example-rendered ignore">
  64. <span class="comment">// Create an event list:</span>
  65. <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">event_list</span> <span class="op">=</span> <span class="ident">EventList</span>::<span class="ident">new</span>();
  66. <span class="comment">// Enqueue a kernel on `queue_1`, creating an event representing the kernel</span>
  67. <span class="comment">// command in our list:</span>
  68. <span class="ident">kernel</span>.<span class="ident">cmd</span>().<span class="ident">queue</span>(<span class="kw-2">&amp;</span><span class="ident">queue_1</span>).<span class="ident">enew</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">event_list</span>).<span class="ident">enq</span>()<span class="question-mark">?</span>;
  69. <span class="comment">// Map a buffer using `queue_2`, ensuring the map does not begin until</span>
  70. <span class="comment">// after the kernel command has completed:</span>
  71. <span class="ident">buffer</span>.<span class="ident">map</span>().<span class="ident">queue</span>(<span class="kw-2">&amp;</span><span class="ident">queue_2</span>).<span class="ident">ewait</span>(<span class="kw-2">&amp;</span><span class="ident">event_list</span>).<span class="ident">enq_async</span>()<span class="question-mark">?</span>;</pre>
  72. </div><h4 id='method.enew' class="method"><span id='enew.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.enew' class='fnname'>enew</a>&lt;'e, En&gt;(self, enew: En) -&gt; <a class="struct" href="../../ocl/builders/struct.BufferMapCmd.html" title="struct ocl::builders::BufferMapCmd">BufferMapCmd</a>&lt;'c, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;'e: 'c,<br>&nbsp;&nbsp;&nbsp;&nbsp;En: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../../ocl/builders/enum.ClNullEventPtrEnum.html" title="enum ocl::builders::ClNullEventPtrEnum">ClNullEventPtrEnum</a>&lt;'e&gt;&gt;,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/buffer.rs.html#1560-1564' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies the destination to store a new, optionally created event
  73. associated with this command.</p>
  74. <p>The destination can be a mutable reference to an empty event (created
  75. using <a href="struct.Event.html#method.empty"><code>Event::empty</code></a>) or a mutable reference to an event list.</p>
  76. <p>After this command is enqueued, the event in the destination can be
  77. passed to the <code>::ewait</code> method of another command. Doing so will cause
  78. the other command to wait until this command has completed before
  79. executing.</p>
  80. <p>Using events can compliment the use of queues to order commands by
  81. creating temporal dependencies between them (where commands in one
  82. queue must wait for the completion of commands in another). Events can
  83. also supplant queues altogether when, for example, using out-of-order
  84. queues.</p>
  85. <h1 id="example-1" class="section-header"><a href="#example-1">Example</a></h1>
  86. <div class='information'><div class='tooltip ignore'>ⓘ<span class='tooltiptext'>This example is not tested</span></div></div><pre class="rust rust-example-rendered ignore">
  87. <span class="comment">// Create an event list:</span>
  88. <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">event</span> <span class="op">=</span> <span class="ident">Event</span>::<span class="ident">empty</span>();
  89. <span class="comment">// Enqueue a kernel on `queue_1`, creating an event representing the kernel</span>
  90. <span class="comment">// command in our list:</span>
  91. <span class="ident">kernel</span>.<span class="ident">cmd</span>().<span class="ident">queue</span>(<span class="kw-2">&amp;</span><span class="ident">queue_1</span>).<span class="ident">enew</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">event</span>).<span class="ident">enq</span>()<span class="question-mark">?</span>;
  92. <span class="comment">// Map a buffer using `queue_2`, ensuring the map does not begin until</span>
  93. <span class="comment">// after the kernel command has completed:</span>
  94. <span class="ident">buffer</span>.<span class="ident">map</span>().<span class="ident">queue</span>(<span class="kw-2">&amp;</span><span class="ident">queue_2</span>).<span class="ident">ewait</span>(<span class="kw-2">&amp;</span><span class="ident">event</span>).<span class="ident">enq_async</span>()<span class="question-mark">?</span>;</pre>
  95. </div><h4 id='method.enq' class="method"><span id='enq.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub unsafe fn <a href='#method.enq' class='fnname'>enq</a>(self) -&gt; <a class="type" href="../../ocl/error/type.Result.html" title="type ocl::error::Result">OclResult</a>&lt;<a class="struct" href="../../ocl/struct.MemMap.html" title="struct ocl::MemMap">MemMap</a>&lt;T&gt;&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/buffer.rs.html#1605-1615' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Enqueues a map command, blocking the current thread until it
  96. completes and returns a reference to the mapped memory.</p>
  97. <h2 id="safety" class="section-header"><a href="#safety">Safety</a></h2>
  98. <p>The caller must ensure that either only one mapping of a buffer exists
  99. at a time or that, if simultaneously mapping for the purposes of
  100. sub-region access or whole-buffer aliasing, no two mappings will allow
  101. writes to the same memory region at the same time. Use atomics or some
  102. other synchronization mechanism to ensure this.</p>
  103. </div><h4 id='method.enq_async' class="method"><span id='enq_async.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub unsafe fn <a href='#method.enq_async' class='fnname'>enq_async</a>(self) -&gt; <a class="type" href="../../ocl/error/type.Result.html" title="type ocl::error::Result">OclResult</a>&lt;<a class="struct" href="../../ocl/struct.FutureMemMap.html" title="struct ocl::FutureMemMap">FutureMemMap</a>&lt;T&gt;&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/buffer.rs.html#1629-1648' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Enqueues a map command and returns a future representing the
  104. completion of that map command.</p>
  105. <p>The returned future will resolve to a reference to the mapped memory.</p>
  106. <h2 id="safety-1" class="section-header"><a href="#safety-1">Safety</a></h2>
  107. <p>The caller must ensure that either only one mapping of a buffer exists
  108. at a time or that, if simultaneously mapping for the purposes of
  109. sub-region access or whole-buffer aliasing, no two mappings will allow
  110. writes to the same memory region at the same time. Use atomics or some
  111. other synchronization mechanism to ensure this.</p>
  112. </div></div>
  113. <h2 id='synthetic-implementations' class='small-section-header'>
  114. Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a>
  115. </h2>
  116. <div id='synthetic-implementations-list'>
  117. <h3 id='impl-Send' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl&lt;'c, T&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="../../ocl/builders/struct.BufferMapCmd.html" title="struct ocl::builders::BufferMapCmd">BufferMapCmd</a>&lt;'c, T&gt;</code><a href='#impl-Send' class='anchor'></a></span></td><td><span class='out-of-band'></span></td></tr></tbody></table></h3><div class='impl-items'></div><h3 id='impl-Sync' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl&lt;'c, T&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="../../ocl/builders/struct.BufferMapCmd.html" title="struct ocl::builders::BufferMapCmd">BufferMapCmd</a>&lt;'c, T&gt;</code><a href='#impl-Sync' class='anchor'></a></span></td><td><span class='out-of-band'></span></td></tr></tbody></table></h3><div class='impl-items'></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 = "ocl";</script><script src="../../aliases.js"></script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>