rusty_snek_gaem/target/doc/wayland_client/struct.NewProxy.html
2018-10-28 21:14:05 -05:00

31 lines
12 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="API documentation for the Rust `NewProxy` struct in crate `wayland_client`."><meta name="keywords" content="rust, rustlang, rust-lang, NewProxy"><title>wayland_client::NewProxy - 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 NewProxy</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.implement">implement</a><a href="#method.implement_nonsend">implement_nonsend</a><a href="#method.c_ptr">c_ptr</a><a href="#method.from_c_ptr">from_c_ptr</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'>wayland_client</a></p><script>window.sidebarCurrent = {name: 'NewProxy', 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'>wayland_client</a>::<wbr><a class="struct" href=''>NewProxy</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/wayland_client/proxy.rs.html#429-433' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct NewProxy&lt;I:&nbsp;<a class="trait" href="../wayland_client/commons/trait.Interface.html" title="trait wayland_client::commons::Interface">Interface</a>&gt; { /* fields omitted */ }</pre></div><div class='docblock'><p>A newly-created proxy that needs implementation</p>
<p>Whenever a new wayland object is created, you will
receive it as a <code>NewProxy</code>. You then have to provide an
implementation for it, in order to process the incoming
events it may receive. Once this done you will be able
to use it as a regular <code>Proxy</code>.</p>
<p>Implementations are structs implementing the appropriate
variant of the <code>Implementation</code> trait. They can also be
closures.</p>
</div><h2 id='methods' class='small-section-header'>Methods<a href='#methods' class='anchor'></a></h2><h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl&lt;I:&nbsp;<a class="trait" href="../wayland_client/commons/trait.Interface.html" title="trait wayland_client::commons::Interface">Interface</a> + 'static&gt; <a class="struct" href="../wayland_client/struct.NewProxy.html" title="struct wayland_client::NewProxy">NewProxy</a>&lt;I&gt;</code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/wayland_client/proxy.rs.html#435-529' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.implement' class="method"><span id='implement.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.implement' class='fnname'>implement</a>&lt;Impl&gt;(self, implementation: Impl) -&gt; <a class="struct" href="../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a>&lt;I&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Impl: <a class="trait" href="../wayland_client/commons/trait.Implementation.html" title="trait wayland_client::commons::Implementation">Implementation</a>&lt;<a class="struct" href="../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a>&lt;I&gt;, I::<a class="type" href="../wayland_client/commons/trait.Interface.html#associatedtype.Event" title="type wayland_client::commons::Interface::Event">Event</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/wayland_client/proxy.rs.html#437-442' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Implement this proxy using given function and implementation data.</p>
</div><h4 id='method.implement_nonsend' class="method"><span id='implement_nonsend.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub unsafe fn <a href='#method.implement_nonsend' class='fnname'>implement_nonsend</a>&lt;Impl&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;implementation: Impl, <br>&nbsp;&nbsp;&nbsp;&nbsp;queue: &amp;<a class="struct" href="../wayland_client/struct.QueueToken.html" title="struct wayland_client::QueueToken">QueueToken</a><br>) -&gt; <a class="struct" href="../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a>&lt;I&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Impl: <a class="trait" href="../wayland_client/commons/trait.Implementation.html" title="trait wayland_client::commons::Implementation">Implementation</a>&lt;<a class="struct" href="../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a>&lt;I&gt;, I::<a class="type" href="../wayland_client/commons/trait.Interface.html#associatedtype.Event" title="type wayland_client::commons::Interface::Event">Event</a>&gt; + 'static,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/wayland_client/proxy.rs.html#457-468' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Implement this proxy using given function and implementation data.</p>
<p>This method allows the implementation to not be <code>Send</code>, but requires for
safety that you provide a token to the event queue this proxy will be implemented
on. This method will then ensure that this proxy is registered on this event queue,
so that it cannot be dispatched from an other thread.</p>
<p><strong>Unsafety:</strong></p>
<p>This call can be racy if the proxy is not already registered on this event queue and its
old queue is being dispatched from an other thread.</p>
<p>To ensure safety, see <code>Proxy::make_wrapper</code>.</p>
</div><h4 id='method.c_ptr' class="method"><span id='c_ptr.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.c_ptr' class='fnname'>c_ptr</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut </a><a class="enum" href="../wayland_client/sys/client/enum.wl_proxy.html" title="enum wayland_client::sys::client::wl_proxy">wl_proxy</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/wayland_client/proxy.rs.html#512-514' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Get a raw pointer to the underlying wayland object</p>
<p>Retrieve a pointer to the object from the <code>libwayland-client.so</code> library.
You will mostly need it to interface with C libraries needing access
to wayland objects (to initialize an opengl context for example).</p>
<p>Use this if you need to pass an unimplemented object to the C library
you are interfacing with.</p>
</div><h4 id='method.from_c_ptr' class="method"><span id='from_c_ptr.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub unsafe fn <a href='#method.from_c_ptr' class='fnname'>from_c_ptr</a>(ptr: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut </a><a class="enum" href="../wayland_client/sys/client/enum.wl_proxy.html" title="enum wayland_client::sys::client::wl_proxy">wl_proxy</a>) -&gt; Self</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/wayland_client/proxy.rs.html#523-528' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Create a <code>NewProxy</code> instance from a C pointer.</p>
<p>By doing so, you assert that this wayland object was newly created and
can be safely implemented. As implementing it will overwrite any previously
associated data or implementation, this can cause weird errors akin to
memory corruption if it was not the case.</p>
</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'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl&lt;I&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="../wayland_client/struct.NewProxy.html" title="struct wayland_client::NewProxy">NewProxy</a>&lt;I&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;I&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="../wayland_client/struct.NewProxy.html" title="struct wayland_client::NewProxy">NewProxy</a>&lt;I&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 = "wayland_client";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>